summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Merge branch 'drm-intel-fixes' into drm-intel-nextChris Wilson2010-12-051-0/+3
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Immediate merge for the conflicting introduction of HAS_COHERENT_RINGS. Conflicts: drivers/gpu/drm/i915/i915_dma.c include/drm/i915_drm.h
| | * | drm/i915: announce to userspace that the bsd ring is coherentDaniel Vetter2010-12-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we can't really fix the abi-braindeadness of forcing libva to manually wait for rendering when switching rings. Which in turn makes implementing hw semaphores a pointless exercise (at least for ironlake). [Also added the relaxed fencing param to explain the jump in numbering - relaxed fencing is in -next.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | Merge branch 'drm-intel-fixes' into drm-intel-nextChris Wilson2010-12-051-13/+59
| |\ \ \ | | |/ /
| | * | drm/i915: Factor in pixel-repeat in FDI M/N calculationChris Wilson2010-12-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the modesetting on the secondary panel of the Libretto W100 and presumably many more Ironlake laptops with SDVO LVDS displays. Reported-and-tested-by: Matthew Willoughby <mattfredwill@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| | * | drm/i915: Death to the unnecessary 64bit divideChris Wilson2010-12-031-13/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the hardware DDA to calculate the ratio with as much accuracy as is possible. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| | * | drm/i915: Clean conflicting modesetting registers upon initChris Wilson2010-12-031-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we leave the registers in a conflicting state then when we attempt to teardown the active mode, we will not disable the pipes and planes in the correct order -- leaving a plane reading from a disabled pipe and possibly leading to undefined behaviour. Reported-and-tested-by: Andy Whitcroft <apw@canonical.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32078 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| * | | drm/i915: Enable self-refresh for IronlakeChris Wilson2010-12-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We disabled this a while ago as it was inexplicably broken. However, it now appears to work... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNBChris Wilson2010-12-0514-439/+648
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bulk of the change is to convert the growing list of rings into an array so that the relationship between the rings and the semaphore sync registers can be easily computed. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915: Be paranoid and bail on resetting if we can't take the lock.Chris Wilson2010-12-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This will declare the machine wedged, but is better than truly wedging the machine. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915: Allow LVDS to be on pipe A for Ironlake+Chris Wilson2010-12-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we enabled this for gen4, only to have to revert it due to it causing a large number of spurious wakeups. Try again hoping that the hardware has become more sane in the mean time... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915: Re-enable RC6 for power-savings.Chris Wilson2010-12-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's see if we've successfully cleared up all the bugs from last time... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915: Enable CB tuning of the Display PLLChris Wilson2010-12-052-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Magic numbers from the specs. This is supposed to allow the PLL some variance to improve jitter performance and VCO headroom across manufacturing and environmental variations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915: Explain why we need to write DPLL twiceChris Wilson2010-12-051-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... it's because setting the Pixel Multiply bits only takes effect once the PLL is enabled and stable. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | drm/i915/lvds: Connect the PWM to the LVDS pipeChris Wilson2010-12-051-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | ... and do not just assume to always use pipe B. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | Merge branch 'drm-intel-fixes' into drm-intel-nextChris Wilson2010-12-0213-112/+171
| |\ \ \ | | |/ / | | | | | | | | | | | | Conflicts: drivers/gpu/drm/i915/intel_drv.h
| | * | drm/i915: Apply a workaround for transitioning from DP on pipe B to HDMI.Eric Anholt2010-12-021-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This workaround only applies to Ironlake. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| | * | drm/i915: Always set the DP transcoder config to 8BPC.Eric Anholt2010-12-022-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pipe is always set to 8BPC, but here we were leaving whatever previous bits were set by the BIOS in place. Signed-off-by: Eric Anholt <eric@anholt.net> Tested-by: Keith Packard <keithp@keithp.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| | * | drm/radeon/kms: add workaround for dce3 ddc line vbios bugAlex Deucher2010-12-011-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes: https://bugzilla.kernel.org/show_bug.cgi?id=23752 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc:stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: fix interlaced and doublescan handlingAlex Deucher2010-12-011-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: fix typos in disabled vbios codeAlex Deucher2010-12-012-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6xx/7xx was hitting the wrong BUS_CNTL reg and bits. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | Merge remote branch 'intel/drm-intel-fixes' of /ssd/git/drm-next into drm-fixesDave Airlie2010-12-015-125/+92
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'intel/drm-intel-fixes' of /ssd/git/drm-next: Revert "drm/i915/dp: use VBT provided eDP params if available" drm/i915: Clear pfit registers when not used by any outputs drm/i915: fix regression due to ba3d8d749b01548b9
| | | * | Revert "drm/i915/dp: use VBT provided eDP params if available"Chris Wilson2010-11-301-89/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 869184a675662bddcdf76c5b95665272facff2b8. This is required for the Sony Vaio Jesse was working on at the time, but breaks most other eDP machines - machines that were working in earlier kernels. Reported-and-tested-by: Dave Airlie <airlied@redhat.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=31188 Tested-by: Zhao Jian <jian.j.zhao@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| | | * | drm/i915: Clear pfit registers when not used by any outputsChris Wilson2010-11-293-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... otherwise the panel-fitter may be left enabled with random settings and cause unintended filtering (i.e. blurring of native modes on external panels). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=31942 Reported-and-tested-by: Ben Kohler <bkohler@gmail.com> Tested-by: Ciprian Docan <docan@eden.rutgers.edu> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| | * | | drm: record monitor status in output_poll_executeKeith Packard2010-11-291-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to correctly report monitor connected status changes, the previous monitor status must be recorded in the connector->status value instead of being discarded. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | | drm: Set connector DPMS status to ON in drm_crtc_helper_set_configKeith Packard2010-11-291-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting a new crtc configuration, force the DPMS state of all connectors to ON. Otherwise, they'll be left at OFF and a future mode set that disables the specified connector will not turn the connector off. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | | Merge remote branch 'intel/drm-intel-fixes' of /ssd/git/drm-next into drm-fixesDave Airlie2010-11-263-248/+346
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'intel/drm-intel-fixes' of /ssd/git/drm-next: drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection reliable MAINTAINERS: INTEL DRM DRIVERS list (intel-gfx) is subscribers-only drm/i915/sdvo: Always fallback to querying the shared DDC line drm/i915: Handle pagefaults in execbuffer user relocations drm/i915/sdvo: Only enable HDMI encodings only if the commandset is supported drm/i915: Only save/restore cursor regs if !KMS drm/i915: Prevent integer overflow when validating the execbuffer
| | * | | | Revert "drm/radeon/kms: fix typo in r600 cs checker"Alex Deucher2010-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d33ef52d9db8a36900dd53f2e32db9a521ace259. This change seems to expose a bug in the 3D driver tiggered by certain apps, so revert it to keep userspace working. Reported-by: Rafael J. Wysocki <rjw@sisk.pl> Cc: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | | | drm/radeon/kms: fix resume regression for some r5xx laptopsAlex Deucher2010-11-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I had removed this when I switched the atom indirect io methods to use the io bar rather than the mmio bar, but it appears it's still needed. Reported-by: Mark Lord <kernel@teksavvy.com> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | | | drm/radeon/kms: fix regression in rs4xx i2c setupAlex Deucher2010-11-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | typo in my last i2c rework. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=23222 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | | | drm/i915: Kill the get_fence tracepointChris Wilson2010-12-022-25/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the tracepoint is now decoupled from when the actual register is assigned and was never complemented by detailing when the object lost its fence, it has outlived its limited usefulness. Profiling the actual stalls is a far more profitable venture anyway. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | drm/i915: Remove inactive LRU tracking from set_domain_ioctlChris Wilson2010-12-021-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the userspace mappings are torn down on every GPU write, we prefer to track when the buffer is activated (via a fresh i915_gem_fault). This makes the LRU conceptually simpler. With coherent mappings, the remaining use-case for set_domain_ioctl is GPU synchronisation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | drm/i915: Pipelined fencing [infrastructure]Chris Wilson2010-12-026-166/+274
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, every batchbuffer can use all available fences (save pinned and scanout, of course) without ever stalling the gpu! In theory. Currently the actual pipelined update of the register is disabled due to some stability issues. However, just the deferred update is a significant win. Based on a series of patches by Daniel Vetter. The premise is that before every access to a buffer through the GTT we have to declare whether we need a register or not. If the access is by the GPU, a pipelined update to the register is made via the ringbuffer, and we track the last seqno of the batches that access it. If by the CPU we wait for the last GPU access and update the register (either to clear or to set it for the current buffer). One advantage of being able to pipeline changes is that we can defer the actual updating of the fence register until we first need to access the object through the GTT, i.e. we can eliminate the stall on set_tiling. This is important as the userspace bo cache does not track the tiling status of active buffers which generate frequent stalls on gen3 when enabling tiling for an already bound buffer. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * | | | | drm/i915: Prevent stalling for a GTT read back from a read-only GPU targetChris Wilson2010-12-023-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | drm/i915/lvds: Disable panel-fitter on gen4 for 1:1 scale factorsChris Wilson2010-12-011-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | drm/i915/ringbuffer: Handle cliprects in the callerChris Wilson2010-11-305-79/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the various rings more consistent by removing the anomalous handing of the rendering ring execbuffer dispatch. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | drm/i915: Move instruction state invalidation from execbuffer to flushChris Wilson2010-11-301-11/+4
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | drm/i915: Release fenced GTT mapping on suspendChris Wilson2010-11-281-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... so that upon first use after resume we will reacquire the fence reg. Reported-by: Keith Packard <keithp@keithp.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | | Merge branch 'drm-intel-fixes' into drm-intel-nextChris Wilson2010-11-282-84/+27
| |\ \ \ \ \ | | | |_|/ / | | |/| | | | | | | | | | | | | | | Conflicts: drivers/gpu/drm/i915/i915_gem.c
| | * | | | drm/i915: fix regression due to ba3d8d749b01548b9Daniel Vetter2010-11-281-25/+18
| | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't track gpu flush request in any special way. So even with obj->write_domain == 0, a gpu flush might be outstanding but no yet executed. Even worse, the latest request might use the object only for reading. So and unconditional call to object_wait_rendering is needed for !pipelined. Hence revert that patch fully and untangle the flushing from the synchronization again. Reported-by: Keith Packard <keithp@keithp.com> Tested-by: Keith Packard <keithp@keithp.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| | * | | drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection reliableChris Wilson2010-11-241-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit d09c23de intended to add a 30ms delay to give the ADD time to detect any TVs connected. However, it used the sdvo->is_tv flag to do so which is dependent upon the previous detection result and not whether the output supports TVs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| | * | | drm/i915/sdvo: Always fallback to querying the shared DDC lineChris Wilson2010-11-231-45/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On a few devices, like the Mac Mini, the CRT DDC pins are shared between the analog connector and the digital connector. In this scenario, rely on the EDID to determine if a digital panel is connected to the digital connector. Reported-and-tested-by: Tino Keitel <tino.keitel@tikei.de> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915/execbuffer: On error, starting unwinding from the previous objectChris Wilson2010-11-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the error occurred on the current object, it means that its state was not changed and so it should be excluded from the unwind. Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Avoid allocation for execbuffer object listChris Wilson2010-11-254-229/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Besides the minimal improvement in reducing the execbuffer overhead, the real benefit is clarifying a few routines. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Split i915_gem_execbuffer into its own file.Chris Wilson2010-11-254-1152/+1188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A number of dragons have been seen lurking within the execbuffer code. The first step is then to isolate them from the rest and begin to scrutinise them in depth. Suggested by Daniel Vetter. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Defer accounting until read from debugfsChris Wilson2010-11-253-128/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simply remove our accounting of objects inside the aperture, keeping only track of what is in the aperture and its current usage. This removes the over-complication of BUGs that were attempting to keep the accounting correct and also removes the overhead of the accounting on the hot-paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Mark a few functions as __must_checkChris Wilson2010-11-252-56/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... to benefit from the compiler checking that we remember to handle and propagate errors. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Tweak on-error bbaddr parsing for clarityChris Wilson2010-11-251-11/+8
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Only save and restore fences for UMSChris Wilson2010-11-252-53/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With KMS, we can simply relinquish the fence when we idle the GPU and reassign it upon first use. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: Add a mechanism for pipelining fence register updatesDaniel Vetter2010-11-252-43/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not employed just yet... Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * | | | drm/i915: More accurately track last fence usage by the GPUChris Wilson2010-11-243-52/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on a patch by Daniel Vetter. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
OpenPOWER on IntegriCloud