summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* drm: Move the GTT accounting to i915Chris Wilson2010-10-018-72/+111
| | | | | | | | | Only drm/i915 does the bookkeeping that makes the information useful, and the information maintained is driver specific, so move it out of the core and into its single user. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Dave Airlie <airlied@redhat.com>
* i915: Added function to initialize VBT settingsSimon Que2010-09-301-13/+23
| | | | | | | | | | | | | | | | | | Added a function that sets the LVDS values to default settings. This will be called by intel_init_bios before checking for the VBT (video BIOS table). The default values are thus loaded regardless of whether a VBT is found. The default settings in each parse function have been moved to the new function. This consolidates all the default settings into one place. The default dither bit value has been changed from 0 to 1. We can assume that display devices will want dithering enabled. Signed-off-by: Simon Que <sque@chromium.org> Acked-by: Olof Johansson <olof@lixom.net> [ickle: fixup for -next] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915: Remove redundant deletion of obj->gpu_write_listChris Wilson2010-09-301-2/+0
| | | | | | | At that point as the object is no longer in any GPU write domain it must not be on the list, so the list_del() is redundant. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915: Make get/put pages staticChris Wilson2010-09-303-20/+21
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915/debugfs: Include list totalsChris Wilson2010-09-301-2/+9
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915: Report the deferred free list in debugfsChris Wilson2010-09-301-1/+7
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915/debug: Convert i915_verify_active() to scan all listsChris Wilson2010-09-304-39/+113
| | | | | | ... and check more regularly. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915: Avoid blocking the kworker thread on a stuck mutexChris Wilson2010-09-291-1/+6
| | | | | | | | Just reschedule the retire requests again if the device is currently busy. The request list will be pruned along other paths so will never grow unbounded and so we can afford to miss the occasional pruning. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915/debug: Remove default WATCH_BUFChris Wilson2010-09-293-53/+3
| | | | | | Replaced by tracepoints. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915/debug: Remove defunct WATCH_LRUChris Wilson2010-09-294-56/+0
| | | | | | This has bitrotted through inuse and superseded by tracing and debugfs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915/dvo: Fix panel and DDC i2c pinsChris Wilson2010-09-281-9/+3
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915: Tidy dvo_ch7017 and print out which chip we detectChris Wilson2010-09-281-36/+27
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* drm/i915: Disable LVDS i2c probing when using GPIO bit bangingChris Wilson2010-09-282-0/+7
| | | | | | | This check only appears to succeed when using GMBUS, so we need to skip it if we have fallen back to using GPIO bit banging. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Merge branch 'drm-intel-fixes' into drm-intel-nextChris Wilson2010-09-283-13/+10
|\
| * drm/i915: fix GMCH power reportingJesse Barnes2010-09-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The IPS driver needs to know the current power consumption of the GMCH in order to make decisions about when to increase or decrease the CPU and/or GPU power envelope. So fix up the divisions to save the results so the numbers are actually correct (contrary to some earlier comments and code, these functions do not modify the first argument and use it for the result). Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
| * drm/i915/sdvo: Handle unsupported GET_SUPPORTED_ENHANCEMENTS gracefullyChris Wilson2010-09-231-5/+4
| | | | | | | | | | | | | | | | | | | | In the event that the external chipset doesn't implement the GET_SUPPORTED_ENHANCEMENTS commands, gracefully treat it as having no enhancments rather than bailing. Reported-and-tested-by: Woody Suwalski <terraluna977@gmail.com> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18342 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * drm/i915/sdvo: Cleanup connector on error pathChris Wilson2010-09-231-4/+2
| | | | | | | | | | | | | | | | | | We weren't unlinking the freed connector from the drm lists, and so hit some use-after-free if we failed to initialise the connector. Reported-and-tested-by: Woody Suwalski <terraluna977@gmail.com> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18342 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
| * drm/i915: Fix 945GM regression in e259befdChris Wilson2010-09-231-1/+1
| | | | | | | | | | | | | | | | | | | | A minor typo caused a single fence register to be incorrectly programmed, resulting in occassional tiling corruption. Reported-and-tested-by: Hans de Bruin <bruinjm@xs4all.nl> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18962 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
* | MAINTAINERS: Add contact details for drm/i915Chris Wilson2010-09-281-0/+9
| | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Use i2c bit banging instead of GMBUSChris Wilson2010-09-281-0/+3
| | | | | | | | | | | | | | | | | | There are several reported instances of GMBUS failing to successfully read the EDID, so revert back to bit banging until the issue is resolved. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30371 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/sdvo: Fix GMBUSificationChris Wilson2010-09-285-196/+339
| | | | | | | | | | | | | | | | Besides a couple of bugs when writing more than a single byte along the GMBUS, SDVO was completely failing whilst trying to use GMBUS, so use bit banging instead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | Revert "drm/i915: Drop ring->lazy_request"Chris Wilson2010-09-282-13/+35
| | | | | | | | | | | | | | | | | | With multiple rings generating requests independently, the outstanding requests must also be track independently. Reported-by: Wang Jinjin <jinjin.wang@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30380 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Ensure that the mode change flushing is currently uninterruptibleChris Wilson2010-09-261-1/+8
| | | | | | | | | | | | | | Introduced by 48b956c5, I had thought I had already fixed this. Oh well. Reported-by: Sitsofe Wheeler <sitsofe@yahoo.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: fix debugging compilation error from previous commitChris Wilson2010-09-261-1/+0
| | | | | | | | | | | | | | There is no equivalent to mutex_destroy() for spinlocks so just delete the code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Convert the file mutex into a spinlockChris Wilson2010-09-263-15/+17
| | | | | | | | | | | | | | | | Daniel Vetter pointed out that in this case is would be clearer and cleaner to use a spinlock instead of a mutex to protect the per-file request list manipulation. Make it so. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: kill ring->setup_status_pageDaniel Vetter2010-09-253-25/+6
| | | | | | | | | | | | | | | | It's the same code, essentially, so kill all copies safe one unified version. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: kill ring->get_active_headDaniel Vetter2010-09-252-21/+5
| | | | | | | | | | | | | | | | | | | | | | All functions are extremely similar, so fold them into one generic implementation. This function isn't used anyway, because there's not yet a bsd ring error state dumper. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: kill per-ring macrosDaniel Vetter2010-09-252-39/+21
| | | | | | | | | | | | | | | | | | | | Two macros that use a base address for HWS_PGA were missing, add them. Also switch the remaining users of *_ACTHD to the ring-base one. Kill the other ring-specific macros because they're now unused. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> [ickle: And silence checkpatch whilst in the vicinity] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: fix ACTHD for gen <= 3Daniel Vetter2010-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This was mixed up in the following patch: commit a6c45cf013a57e32ddae43dd4ac911eb4a3919fd Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Sep 17 00:32:17 2010 +0100 drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: kill now unnecessary gtt defines from i915_reg.hDaniel Vetter2010-09-251-40/+2
| | | | | | | | | | | | | | | | Everything is now handled in intel-gtt.h so these defines are only confusing. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Make the mutex_lock interruptible on ioctl pathsChris Wilson2010-09-251-42/+84
| | | | | | | | | | | | ... and combine it with the wedged completion handler. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Adjust hangcheck EIO semanticsChris Wilson2010-09-254-8/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Owain Ainsworth reported an issue between the interaction of the hangcheck and userspace immediately (and permanently) falling back to s/w rasterisation. In order to break the mutex and begin resetting the GPU, we must abort the current operation (usually within the wait) and climb sufficiently far back up the call chain to drop the mutex. In his implementation, Owain has a loop within the ioctl handler to detect the hang and then sleep until the error handler has run. I've chosen to return to userspace and report an EAGAIN which should trigger the userspace ioctl handler to repeat the call (simply because it felt less invasive...). Before hitting a wedged GPU, we then wait upon completion of the error handler. Reported-by: Owain G. Ainsworth <zerooa@googlemail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Only hold a process-local lock whilst throttling.Chris Wilson2010-09-248-92/+123
| | | | | | | | | | | | | | | | | | Avoid cause latencies in other clients by not taking the global struct mutex and moving the per-client request manipulation a local per-client mutex. For example, this allows a compositor to schedule a page-flip (through X) whilst an OpenGL application is monopolising the GPU. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/dp: Wait for PP_CONTROL to take effect.Hette Visser2010-09-241-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the black screen bug on Dell e6510, by adding two delays to give the eDP panel time to turn on before we continue with the next write. 300ms is rather arbitray and a rather long sleep, we need to find a way of refining this value. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29278 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
* | some clean up to intel-gtt.cJan Beulich2010-09-241-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit e517a5e97080bbe52857bd0d7df9b66602d53c4d the call to map_page_into_agp() got removed from intel_i830_setup_flush(), but the counterpart call from intel_i830_fini_flush() to unmap_page_from_agp() was left in place. Additionally, the page allocated here never gets its physical address used for sending to hardware, so there's no need to allocate it with GFP_DMA32. Nor is __GFP_ZERO really necessary, as the page is used only to store data to force flushing of some internal processor state. Signed-off-by: Jan Beulich <jbeulich@novell.com> Cc: Eric Anholt <eric@anholt.net> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Parse the eDP link configuration from the vBIOSChris Wilson2010-09-245-20/+42
| | | | | | | | | | | | | | First step, lets have a look at the values for troublesome panels and see if they may be used to improve our link training. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/lvds: Use the GMBUS pin if specified in VBTChris Wilson2010-09-241-8/+13
| | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Use an uninterruptible wait for page-flips during modesetChris Wilson2010-09-243-13/+21
| | | | | | | | | | | | | | We need to drain the pending flips prior to disabling the pipe during modeset, and these need to be done in an uninterruptible fashion. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Remove unused dev_priv->panel_wants_ditherChris Wilson2010-09-242-2/+1
| | | | | | | | | | | | | | This is now private to the DVO connector, remove it from the main device private. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/ringbuffer: Fix sign of ring space.Chris Wilson2010-09-241-1/+1
| | | | | | | | | | | | | | | | As we presume space is signed when computing and looking for wrap along, make it so. Reported-by: Owain G. Ainsworth <zerooa@googlemail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Remove idle timer debugging messagesChris Wilson2010-09-241-4/+0
| | | | | | | | | | | | | | These have served their purpose and are now just noise in the debug stream. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/lvds: Probe DDC on creationChris Wilson2010-09-241-0/+21
| | | | | | | | | | | | | | Try to validate the panel's connection by writing to address 0xA0. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18072 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/tv: Sleep before checking for state changes.Chris Wilson2010-09-231-2/+5
| | | | | | | | | | | | | | | | We need to wait for the PLLs to settle prior to detecting the state changes. The BIOS writers guide suggests waiting for the next vblank. Reported-by: Carlos R. Mafra <crmafra2@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Remove the broken flush_ring from page-flipChris Wilson2010-09-233-12/+2
| | | | | | | | | | | | | | | | | | This is already performed with the pipelined flush, so by the time we schedule the flush in the page-flip, the ring is NULL and we OOPs instead. Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915/crt: Use a DDC probe on 0xA0 before load-detectChris Wilson2010-09-221-4/+35
| | | | | | | | | | | | | | | | | | The BIOS writer's guide suggests that a VGA connection will ACK a write to address 0xA0 and that this should be used before doing legacy load-detection. Considering the extreme cost of load-detection, performing an extra DDC seems a risk worth taking. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Disable "disabled FBC" message when a no-opChris Wilson2010-09-221-0/+3
| | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Drop ring->lazy_requestChris Wilson2010-09-222-36/+6
| | | | | | | | | | | | We are not currently using it as intended, so remove the complication. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Don't offset the pin used for crt_ddcChris Wilson2010-09-221-1/+1
| | | | | | | | | | | | | | | | | | | | Previously when converting the GMBUS pin to the GPIO reg, we would offset the pin by one and then use the look-up table. Now that we first try to use the GMBUS pin, we no longer need the offset and can use the value from the VBIOS directly. Reported-by: Carlos R. Mafra <crmafra2@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Clear the gpu_write_list on resetting write_domain upon hangChris Wilson2010-09-223-28/+42
| | | | | | | | | | | | | | Otherwise we will hit a list handling assertion when moving the object to the inactive list. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* | drm/i915: Don't overwrite the returned error-codeChris Wilson2010-09-211-3/+3
| | | | | | | | | | | | | | During i915_gem_create_mmap_offset() if the subsystem reports an error code, use it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>