aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-12-03drm/nouveau: fabricate DCB encoder table for iMac G4Francisco Jerez1-64/+38
In typical Apple fashion there's no standard information about what encoders are present on this machine, this patch adds a quirk to provide it. Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: tidy up and extend dma object creation interfacesBen Skeggs8-160/+184
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: remove some useless GETPARAMsBen Skeggs2-19/+1
These have been unused since UMS support was ripped out, so lets remove them completely. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv84: fix minor issues in PCRYPT implementationBen Skeggs2-1/+2
Fix running of destroy_context() when create_context() has never been called for the channel, and fill in engine's tlb_flush() function pointer. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: remove dummy page use from PCI(E)GART, use PTE present insteadBen Skeggs2-37/+3
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: fix 0x100c90 init for NVAFBen Skeggs1-3/+6
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: allocate page for unknown PFB object in nv50_fb.cBen Skeggs2-1/+56
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: rework gpu-specific instmem interfacesBen Skeggs6-243/+270
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: simplify gpuobj suspend/resumeBen Skeggs4-73/+21
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: rework PGPIO IRQ handling and hotplug detectionBen Skeggs7-104/+234
Allows callers to install their own handlers for when a GPIO line changes state (such as for hotplug detect). This also fixes a bug where we weren't acknowledging the GPIO IRQ until after the bottom half had run, causing a severe IRQ storm in some cases. Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv04-nv40: unregister irq handler on destroyBen Skeggs1-0/+3
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: tidy+move PGRAPH ISRs to their respective *_graph.c filesBen Skeggs8-894/+809
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: move PFIFO ISR into nv04_fifo.cBen Skeggs7-208/+219
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv04-nv40: register vblank isrBen Skeggs2-19/+18
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: move bitfield/enum helpers to nouveau_util.cBen Skeggs3-68/+63
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: use register/unregister functionality for PDISPLAY ISRBen Skeggs4-18/+13
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: move GPIO ISR to nv50_gpio.cBen Skeggs5-24/+40
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv84: move PCRYPT ISR out of nouveau_irq.cBen Skeggs5-25/+98
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: allow irq handlers to be installed by engine-specific codeBen Skeggs2-1/+37
Lets start to clean up this mess! Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: 0x50c0 apparently works on NVA3+ too, so lets allow itBen Skeggs1-5/+4
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: fix compute object classBen Skeggs1-2/+8
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Fix sleep while atomic in nouveau_bo_fence().Francisco Jerez1-3/+7
Reported-by: Pekka Paalanen <[email protected]> Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv20: Add Z compression support.Francisco Jerez4-14/+106
Signed-off-by: Francisco Jerez <[email protected]> Tested-by: Xavier Chantry <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Rework tile region handling.Francisco Jerez10-160/+221
The point is to share more code between the PFB/PGRAPH tile region hooks, and give the hardware specific functions a chance to allocate per-region resources. Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Add a separate class for the kernel channel mutex.Francisco Jerez2-1/+6
nouveau_bo_move_m2mf() needs to lock the kernel channel, and it may be called from the pushbuf IOCTL with an user channel already locked. Use a separate subclass for the kernel channel mutex because this is legitimate mutex nesting. Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: Keep track of the head a channel is vsync'ing to.Francisco Jerez3-0/+7
In a multihead setup vblank interrupts may end up enabled in both heads. In that case we want to ignore the vblank interrupts coming from the wrong CRTC to avoid tearing and unbalanced calls to drm_vblank_get/put (fdo bug 31074). Reported-by: Felix Leimbach <[email protected]> Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Call drm_vblank_pre/post_modeset() around mode setting.Francisco Jerez2-0/+4
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Implement the pageflip ioctl.Francisco Jerez14-9/+265
nv0x-nv4x should be mostly fine, nv50 doesn't work yet. Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Implement the vblank DRM hooks.Francisco Jerez8-26/+59
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv04: Make CRTC base changes effective in the next hsync.Francisco Jerez3-3/+7
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: fix annoying nouveau_fence type issueMarcin Slusarz7-30/+53
nouveau_fence_* functions are not type safe, which could lead to bugs. Additionally every use of nouveau_fence_unref had to cast struct nouveau_fence to void **. Fix it by renaming old functions and creating static inline functions with new prototypes. We still need old functions, because we pass function pointers to ttm. As we are wrapping functions, drop unused "void *arg" parameter where possible. Signed-off-by: Marcin Slusarz <[email protected]> Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: regression fix, point NVAA/NVAC at correct PM functionsBen Skeggs1-0/+2
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: add support for MSIBen Skeggs4-6/+47
Only supported on NV50+ so far, and disabled by default currently. The module parameter "msi=1" will enable it. There's a kernel bug which will cause this to fail if the module (or the NVIDIA binary driver) has ever been loaded before loading nouveau with MSI enabled. As such, this is only safe to enable if you have nouveau load on boot, and don't wish to ever reload it. The workaround is to "echo 0 > /sys/bus/pci/devices/<device>/enable" until the enable count reads 0. Then you should be able to load nouveau with MSI enabled. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv10: fix thinko and let nv17 do 3d again :)Ben Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: fix evo instmem alignmentBen Skeggs1-1/+1
Not an issue right now, we're forced to 64k size/alignment by the BO allocator anyway. This won't be the case soon. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: improve evo error handler when more than just channel 0 activeBen Skeggs3-33/+39
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: rework evo init to match nvidia more closelyBen Skeggs1-47/+26
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: initial work to allow multiple evo channelsBen Skeggs3-102/+147
This doesn't work yet for unknown reasons. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: move evo handling to nv50_evo.cBen Skeggs5-245/+322
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: clearer separation of the stages of evo initBen Skeggs2-52/+55
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: create graph and crypt contexts on demandBen Skeggs2-9/+25
This really needs cleaning up somehow, and probably investigate what's needed to do this on earlier generations. NVIDIA do something similar there too. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv50: remove excessive alignment of graph/crypt contextsBen Skeggs2-2/+2
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv84: add support for the PCRYPT engineBen Skeggs8-11/+218
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: only expose the object classes that are supported by the chipsetBen Skeggs9-433/+667
We previously added all the available classes for the entire generation, even though the objects wouldn't work on the hardware. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: use object class structs more extensivelyBen Skeggs6-52/+53
The structs themselves, as well as the non-sw object creation function are probably very misnamed now. That's a problem for later :) Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: store engine type in gpuobj class structsBen Skeggs7-127/+127
We will eventually want to address hw engines other than PGRAPH. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: pass gpuobj alignment request down into backing allocatorBen Skeggs5-14/+14
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nv40: Ignore sync-to-vblank active when waiting for idle.Francisco Jerez2-1/+8
Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Take fence spinlock in nouveau_fence_channel_fini().Francisco Jerez1-0/+4
Without it there's a potential race with nouveau_fence_update(). Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-03drm/nouveau: Avoid race in the interchannel sync code.Francisco Jerez1-9/+15
It needs a "strong" channel reference because it actually writes to the channel pushbuf, otherwise the corresponding FIFO context could get kicked off in the middle of nouveau_fence_sync(). Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>