aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu
AgeCommit message (Collapse)AuthorFilesLines
2010-12-22drm/radeon/kms: fix bug in r600_gpu_is_lockupAlex Deucher1-2/+8
We were using the lockup struct from the wrong union. Signed-off-by: Alex Deucher <[email protected]> Cc: Jerome Glisse <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/nvc0: accelerate ttm buffer movesBen Skeggs1-1/+56
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: initial support for tiled buffer objectsBen Skeggs5-25/+62
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: implement fbcon accelerationBen Skeggs4-6/+300
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: implement pgraph engine hooksBen Skeggs6-3/+3631
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: implement pfifo engine hooksBen Skeggs2-0/+361
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: implement fencingBen Skeggs1-8/+20
Just simple REF_CNT fencing for the moment. Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: fix channel dma init pathsBen Skeggs3-10/+38
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: skip dma object creation for drm channelBen Skeggs1-0/+5
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: implement channel structure initialisationBen Skeggs1-4/+20
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: gpuobj_new need only check validity and init the relevant engineBen Skeggs1-4/+11
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: reject the notifier_alloc ioctlBen Skeggs1-0/+5
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: create shared channel vmBen Skeggs1-0/+16
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: initial vm implementation, use for bar1/bar3 managementBen Skeggs8-204/+266
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nvc0: import initial vm backendBen Skeggs7-7/+169
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nouveau: modify vm to accomodate dual page tables for nvc0Ben Skeggs4-75/+65
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/radeon/kms: parse the extended LCD info blockAlex Deucher4-5/+67
This block may contain various additional LCD info such as physical size and a stored EDID. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms: use LCD physical size from vbios tables if availableAlex Deucher2-0/+6
Some systems have the LCD width and height in mm available in the LCD info table. Use this info if there is no EDID to provide it. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm-vblank: Always return true vblank count of scheduled vblank event.Mario Kleiner1-0/+3
This patch tries to make sure that the vbl.reply.sequence vblank count for a queued or emitted vblank event always corresponds to the true vblank count of queueing/emission, so the ddx can rely on the returned target_msc for consistency checks and implementation of swap_intervals in glXSwapBuffers(). Without this there is a small race-condition between the userspace ddx queueing a vblank event and the vblank counter incrementing before the event gets queued in the kernel. Signed-off-by: Mario Kleiner <[email protected]> Acked-by: Jesse Barnes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/kms: load fbcon from drm_kms_helperDavid Fries1-0/+21
Kconfig says fbcon is required by drm_kms_helper. If radeon, fbcon, and drm_kms_helper are all modules, radeon is auto loaded (by PCI id?), drm_kms_helper is loaded because of the module dependency, but fbcon isn't loaded leaving the console unusable. Since fbcon is required and there isn't an explicit module dependency, request the module to be loaded from drm_kms_helper. Signed-off-by: David Fries <[email protected]> Cc: David Airlie <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms/atom: clean up op_mask handlerAlex Deucher1-7/+7
Readability cleanup and fix debugging output, no functional change. Reported-by: Frank Huang <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms: fix DCE4.1 dig routing (v2)Alex Deucher1-29/+25
Works more like DCE4.0 despite what the docs say. This fixes blank screen issues when changing crtc routing due to incorrect crtc to dig mapping. v2: only two DIGx blocks, routing is hardcoded based on link. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms: allow r500 US_FORMAT regs in the CS checkerMarek Olšák2-1/+17
add to the 2.8 bump for pageflip The purpose of these regs is to work around a TX hw bug in R520. Signed-off-by: Marek Olšák <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon: Definition of R_0003C2_GENMO_WT seems wrongTijl Coosemans1-1/+1
In drivers/gpu/drm/radeon/r100d.h R_0003C2_GENMO_WT is defined as 0x3C0. I think this should be 0x3C2. Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms: reorder display resume to avoid problemsAlex Deucher2-6/+6
On resume, we were attemping to unblank the displays before the timing and plls had be reprogrammed which led to atom timeouts waiting for things that are not yet programmed. Re-program the mode first, then reset the dpms state. This fixes the infamous atombios timeouts on resume. Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms/evergreen: reset the grbm blocks at resume and initAlex Deucher1-0/+10
This fixes module reloading and resume as the gfx block seems to be left in a bad state in some cases. Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon/kms: fix evergreen asic resetAlex Deucher1-15/+0
Only reset the grbm blocks, srbm tends to lock the GPU if not done properly and in most cases is not necessary. Also, no need to call asic init after reset the grbm blocks. Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Reviewed-by: Jerome Glisse <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/fb: Don't expose mmio for fbdev emulation layerJames Simmons5-14/+4
For the fbdev api if the struct fb_var_screeninfo accel_flags field is set to FB_ACCELF_TEXT then userland applications can not mmap the mmio region. Since it is a bad idea for DRM drivers to expose the mmio region via the fbdev layer we always set the accel_flags to prevent this. Please apply. Signed-off-by: James Simmons <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-21Revert "drm: Don't try and disable an encoder that was never enabled"Dave Airlie1-1/+1
This reverts commit 541cc966915b6756e54c20eebe60ae957afdb537. Wei Yonjun reported this caused a regression against Intel VGA hotplug on his G33 hw. Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/radeon: Add early unregister of firmware fb'sBenjamin Herrenschmidt1-0/+19
Without this, we attempt the handover too late, the firmware fb might be accessing the chip simultaneously to us re-initializing various parts of it, which might frighten babies or cause all sort of nasty psychologic trauma to kitten. Signed-off-by: Benjamin Herrenschmidt <[email protected]> [danvet: add cc: stable, forward ported and compile-fixed for X86] Signed-off-by: Daniel Vetter <[email protected]> [airlied: move to even earlier in module load.] Signed-off-by: Dave Airlie <[email protected]>
2010-12-21drm/nv50: add missing license header to nv50_fbcon.cBen Skeggs1-0/+24
Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nv50: fix smatch warning in nv50_vram.cBen Skeggs1-1/+2
Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-21drm/nouveau: sizeof() vs ARRAY_SIZE()Dan Carpenter1-1/+1
ARRAY_SIZE() was intended here, sizeof() is too large. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-20drm/i915: Undo "Uncouple render/power ctx before suspending"Chris Wilson1-0/+2
Manaul revert of 0cdab21f9a1fca50dd27e488839f5a6578e333b2, just to remove the call to disable the clock gatings and powerctx before suspend. Peter Clifton bisected a suspend failure on his gme45 and found this to be the culprit. As this was intended to be a fix for a similar suspend failure for Ironlake (it didn't work), undoing this patch should have no other side-effects. Reported-and-tested-by: Peter Clifton <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2010-12-20drm/i915: Allow the application to choose the constant addressing modeChris Wilson4-1/+40
The relative-to-general state default is useless as it means having to rewrite the streaming kernels for each batch. Relative-to-surface is more useful, as that stream usually needs to be rewritten for each batch. And absolute addressing mode, vital if you start streaming state, is also only available by adjusting the register... Signed-off-by: Chris Wilson <[email protected]>
2010-12-20drm/radeon: use aperture size not vram size for overlap testsDave Airlie1-1/+1
This fixes a problem where the wrong card conflicts with vesafb in my x2 system. Signed-off-by: Dave Airlie <[email protected]>
2010-12-18drm/i915: dynamic render p-state support for Sandy BridgeJesse Barnes7-20/+137
Add an interrupt handler for switching graphics frequencies and handling PM interrupts. This should allow for increased performance when busy and lower power consumption when idle. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2010-12-17drm/i915: Enable EI mode for RCx decision making on SandybridgeChris Wilson1-0/+1
And no I have no idea what the difference is either, just that is the recommendation. Signed-off-by: Chris Wilson <[email protected]>
2010-12-16drm/i915/sdvo: Border and stall select became test bits in gen5Chris Wilson1-2/+5
This is even more important as those bits will be moved in future. Signed-off-by: Chris Wilson <[email protected]>
2010-12-16drm/i915: Add Guess-o-matic for pageflip timestamping.Mario Kleiner1-14/+20
This patch changes the strategy for pageflip completion timestamping. It detects if the pageflip completion routine gets executed before or after drm_handle_vblank, and thereby decides if the returned vblank count and timestamp must be incremented by 1 frame(duration) or not. It compares the current system time at invocation against the current vblank timestamp. If the difference is more than 0.9 video refresh interval durations then it assumes the vblank timestamp and count are outdated and need to be incremented and does so. Otherwise it assumes a delayed pageflip irq and doesn't correct the timestamp and count. Advantage of this patch: Pageflip timestamping becomes more robust against implementation errors and is maintenance free for future GPU's. Disadvantage: A few dozen (hundred?) nsecs extra time spent in pageflip irq handler for each flip, compared to hard-coded per-gpu settings? Signed-off-by: Mario Kleiner <[email protected]> Acked-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2010-12-16drm/i915: Add support for precise vblank timestamping (v2)Mario Kleiner5-6/+119
v2: Change IS_IRONLAKE to IS_GEN5 to adapt to 2.6.37 This patch adds new functions for use by the drm core: .get_vblank_timestamp() provides a precise timestamp for the end of the most recent (or current) vblank interval of a given crtc, as needed for the DRI2 implementation of the OML_sync_control extension. It is a thin wrapper around the drm function drm_calc_vbltimestamp_from_scanoutpos() which does almost all the work. .get_scanout_position() provides the current horizontal and vertical video scanout position and "in vblank" status of a given crtc, as needed by the drm for use by drm_calc_vbltimestamp_from_scanoutpos(). The patch modifies the pageflip completion routine to use these precise vblank timestamps as the timestamps for pageflip completion events. This code has been only tested on a HP-Mini Netbook with Atom processor and Intel 945GME gpu. The codepath for (IS_G4X(dev) || IS_GEN5(dev) || IS_GEN6(dev)) gpu's has not been tested so far due to lack of hardware. Signed-off-by: Mario Kleiner <[email protected]> Acked-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2010-12-16Merge remote branch 'airlied/drm-core-next' into drm-intel-nextChris Wilson105-5084/+10693
2010-12-16drm/radeon/kms: properly print ontario chip idAlex Deucher1-0/+1
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-16drm/radeon/kms: fix vram start calculation on ontario (v2)Alex Deucher4-13/+8
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-16Merge remote branch 'nouveau/drm-nouveau-next' of ../drm-nouveau-next into ↵Dave Airlie62-4014/+6599
drm-core-next * 'nouveau/drm-nouveau-next' of ../drm-nouveau-next: (93 commits) drm/nv50: fix a couple of vm init issues drm/nv04-nv40: Fix up PCI(E) GART DMA object bus address calculation. drm/nouveau: kick vram functions out into an "engine" drm/nouveau: allow gpuobj vinst to be a virtual address when necessary drm/nv50: tidy up PCIEGART implementation drm/nv50: enable non-contig vram allocations where requested drm/nv50: enable 4KiB pages for small vram allocations drm/nv50: implement global channel address space on new VM code drm/nv50: implement BAR1/BAR3 management on top of new VM code drm/nv50: import new vm code drm/nv50: implement custom vram mm drm/nouveau: Avoid potential race between nouveau_fence_update() and context takedown. drm/nouveau: fix use of drm_mm_node in semaphore object drm/nouveau: wrap calls to ttm_bo_validate() drm/nouveau: no need to zero dma objects, we fill them completely anyway drm/nouveau: introduce a util function to wait on reg != val drm/nouveau: implicitly insert non-DMA objects into RAMHT drm/nouveau: make fifo.create_context() responsible for mapping control regs drm/nouveau: Spin for a bit in nouveau_fence_wait() before yielding the CPU. drm/nouveau: Use WC memory on the AGP GART. ...
2010-12-16drm/ttm: delay freeing of old node during move_memcpy until after iounmapBen Skeggs1-1/+1
Drivers using their own implementation of io_mem_reserve/io_mem_free are likely to store the tracking information for the map in mem.mm_node, so it can't be freed while still mapped. Signed-off-by: Ben Skeggs<[email protected]> Reviewed-by: Thomas Hellstrom <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-16drm/radeon: add initial tracepoint support.Dave Airlie5-1/+101
this adds a bo create, and fence seq tracking tracepoints. This is just an initial set to play around with, we should investigate what others we need would be useful. Signed-off-by: Dave Airlie <[email protected]>
2010-12-16drm/nv50: fix a couple of vm init issuesFrancisco Jerez1-6/+7
Fixes overwriting the first page table entry when testing that the PRAMIN BAR can be correctly read/written, and adds an additional bar flush after poking the BAR3 control regs. Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2010-12-16drm/radeon/kms/evergreen: flush hdp cache when flushing gart tlbAlex Deucher2-0/+3
Make sure vram changes hit memory. This mirrors the 6xx/7xx behavior. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-12-16drm/radeon/kms: disable the r600 cb offset checker for linear surfacesAlex Deucher1-5/+4
There are too many strange corner cases triggered in old userspace drivers out there to that it's nearly impossible to not break some obscure app. Cc: Jean Delvare <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>