aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
AgeCommit message (Collapse)AuthorFilesLines
2011-01-19drm/i915: assert panel is unlocked before writing transcoder timing regsJesse Barnes1-1/+2
Otherwise our writes will be silently ignored. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-19drm/i915: add PCH DPLL enable/disable functionsJesse Barnes2-11/+75
With assertions to check transcoder and reference clock state. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-19drm/i915: add PLL enable/disable functionsJesse Barnes1-46/+78
For pre-ILK only. Saves some code in the CRTC enable/disable functions and allows us to check for pipe and panel status at enable/disable time. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-19drm/i915: add panel lock assertion functionJesse Barnes1-0/+29
When PLLs or timing regs are changed, we need to make sure the panel lock will allow it. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-19drm/i915: add pipe/plane enable/disable functionsJesse Barnes2-97/+216
Add plane enable/disable functions to prevent duplicated code and allow us to easily check for plane enable/disable requirements (such as pipe enable, plane status, pll status etc). Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-19drm/i915: don't enable plane, pipe and PLL prematurelyJesse Barnes1-3/+5
On Ironlake+ we need to enable these in a specific order. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-19drm/i915: Use ACPI OpRegion to determine lid statusChris Wilson3-0/+10
Admittedly, trusting ACPI or the BIOS at all to be correct is littered with numerous examples where it is wrong. Maybe, just maybe, we will have better luck using the ACPI OpRegion lid status... Signed-off-by: Chris Wilson <[email protected]>
2011-01-18drm/i915: make the blitter report buffer modifications to the FBC unitJesse Barnes2-0/+25
Without this change, blits to the front buffer won't invalidate FBC state, causing us to scan out stale data. Make sure we update these bits on every FBC enable, since they may get clobbered if we shut off the display. References: https://bugzilla.kernel.org/show_bug.cgi?id=26932 Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-18drm/i915: set more FBC chicken bitsJesse Barnes2-1/+5
Add a couple of missing workaround bits for ILK & SNB. These disable clock gating on a couple of units that would otherwise prevent FBC from working. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-17drm/radeon/kms: balance asic_reset functionsAlex Deucher3-18/+20
First, we were calling mc_stop() at the top of the function which turns off all MC (memory controller) clients, then checking if the GPU is idle. If it was idle we returned without re-enabling the MC clients which would lead to a blank screen, etc. This patch checks if the GPU is idle before calling mc_stop(). Second, if the reset failed, we were returning without re-enabling the MC clients. This patch re-enables the MC clients before returning regardless of whether the reset was successful or not. Signed-off-by: Alex Deucher <[email protected]> Cc: Jerome Glisse <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2011-01-17drm/radeon/kms: remove duplicate card_posted() functionsAlex Deucher3-46/+3
Use the common one for all asics. Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2011-01-17drm/radeon/kms: add module option for pcie gen2Alex Deucher5-0/+14
Switching to pcie gen2 causes problems on some boards. Add a module option to turn it on/off. There are gen2 compatability issues with some motherboards it seems. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=33027 Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2011-01-17drm/radeon/kms: fix typo in evergreen safe regAlex Deucher1-1/+1
Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2011-01-17Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next ↵Dave Airlie11-197/+86
into drm-fixes * 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next: drm/nouveau: fix gpu page faults triggered by plymouthd drm/nouveau: greatly simplify mm, killing some bugs in the process drm/nvc0: enable protection of system-use-only structures in vm drm/nv40: initialise 0x17xx on all chipsets that have it drm/nv40: make detection of 0x4097-ful chipsets available everywhere
2011-01-17drm/nouveau: fix gpu page faults triggered by plymouthdBen Skeggs1-2/+2
The switch to separate BAR and channel address spaces made the fbcon memory address calculation incorrect on NV50+ boards, this commit fixes that. Signed-off-by: Ben Skeggs <[email protected]>
2011-01-17drm/nouveau: greatly simplify mm, killing some bugs in the processBen Skeggs3-160/+52
Reviewed-by: Francisco Jerez <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2011-01-17drm/nvc0: enable protection of system-use-only structures in vmBen Skeggs4-5/+10
Somehow missed this in the original merge of the nvc0 code. Signed-off-by: Ben Skeggs <[email protected]>
2011-01-17drm/nv40: initialise 0x17xx on all chipsets that have itBen Skeggs1-12/+2
Signed-off-by: Ben Skeggs <[email protected]>
2011-01-17drm/nv40: make detection of 0x4097-ful chipsets available everywhereBen Skeggs3-18/+20
Signed-off-by: Ben Skeggs <[email protected]>
2011-01-14Revert "drm: Update fbdev fb_fix_screeninfo"Dave Airlie4-21/+24
This reverts commit dfe63bb0ad9810db13aab0058caba97866e0a681. This commit was causing nouveau not to work properly, for -rc1 I'd prefer it worked and we can look if this is useful for 2.6.39. Cc: James Simmons <[email protected]> Signed-off-by: Dave Airlie <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-01-14Merge branch 'drm-intel-fixes' of ↵Linus Torvalds9-31/+46
git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel * 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel: drm/i915/lvds: Add AOpen i915GMm-HFS to the list of false-positive LVDS agp/intel: Fix device names of i845 and 845G drm/i915: Disable GPU semaphores on SandyBridge mobile drm/i915/execbuffer: Clear domains before beginning reloc processing drm/i915/execbuffer: Reorder relocations to match new object order drm/i915: Fix error handler to capture the first batch after the seqno drm/i915: Add a module option to override the use of SSC drm/i915/panel: The backlight is enabled if the current value is non-zero drm/i915/debugfs: Correct format after changing type of err object 'size'
2011-01-14drm/i915/lvds: Add AOpen i915GMm-HFS to the list of false-positive LVDSKnut Petersen1-0/+8
Signed-off-by: Knut Petersen <[email protected]> Signed-off-by: Chris Wilson <[email protected]> Cc: [email protected]
2011-01-14drm/i915: Disable GPU semaphores on SandyBridge mobileChris Wilson1-1/+2
Hopefully, this is a temporary measure whilst the root cause is understood. At the moment, we experience a hard hang whilst looping urbanterror that has been identified as a result of the use of semaphores, but so far only on SNB mobile. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32752 Tested-by: [email protected] Signed-off-by: Chris Wilson <[email protected]>
2011-01-13Merge branch 'release' of ↵Linus Torvalds1-1/+0
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (59 commits) ACPI / PM: Fix build problems for !CONFIG_ACPI related to NVS rework ACPI: fix resource check message ACPI / Battery: Update information on info notification and resume ACPI: Drop device flag wake_capable ACPI: Always check if _PRW is present before trying to evaluate it ACPI / PM: Check status of power resources under mutexes ACPI / PM: Rename acpi_power_off_device() ACPI / PM: Drop acpi_power_nocheck ACPI / PM: Drop acpi_bus_get_power() Platform / x86: Make fujitsu_laptop use acpi_bus_update_power() ACPI / Fan: Rework the handling of power resources ACPI / PM: Register power resource devices as soon as they are needed ACPI / PM: Register acpi_power_driver early ACPI / PM: Add function for updating device power state consistently ACPI / PM: Add function for device power state initialization ACPI / PM: Introduce __acpi_bus_get_power() ACPI / PM: Introduce function for refcounting device power resources ACPI / PM: Add functions for manipulating lists of power resources ACPI / PM: Prevent acpi_power_get_inferred_state() from making changes ACPICA: Update version to 20101209 ...
2011-01-13Merge branch 'for-next' of ↵Linus Torvalds3-5/+5
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits) Documentation/trace/events.txt: Remove obsolete sched_signal_send. writeback: fix global_dirty_limits comment runtime -> real-time ppc: fix comment typo singal -> signal drivers: fix comment typo diable -> disable. m68k: fix comment typo diable -> disable. wireless: comment typo fix diable -> disable. media: comment typo fix diable -> disable. remove doc for obsolete dynamic-printk kernel-parameter remove extraneous 'is' from Documentation/iostats.txt Fix spelling milisec -> ms in snd_ps3 module parameter description Fix spelling mistakes in comments Revert conflicting V4L changes i7core_edac: fix typos in comments mm/rmap.c: fix comment sound, ca0106: Fix assignment to 'channel'. hrtimer: fix a typo in comment init/Kconfig: fix typo anon_inodes: fix wrong function name in comment fix comment typos concerning "consistent" poll: fix a typo in comment ... Fix up trivial conflicts in: - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c) - fs/ext4/ext4.h Also fix missed 'diabled' typo in drivers/net/bnx2x/bnx2x.h while at it.
2011-01-13drm/i915/execbuffer: Clear domains before beginning reloc processingChris Wilson1-4/+3
After reordering the sequence of relocating objects, commit 6fe4f1404, we can no longer rely on seeing all reloc targets prior to performing the relocation. As a result we were ignoring the need to flush objects from the render cache and invalidate the sampler caches, resulting in rendering glitches. So we need to clear the relocation domains earlier. Reported-by: Linus Torvalds <[email protected]> Tested-by: Linus Torvalds <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-13drm/i915/execbuffer: Reorder relocations to match new object orderChris Wilson1-6/+9
On the fault path, commit 6fe4f140 introduction a regression whereby it changed the sequence of the objects but continued to use the original ordering of relocation entries. The result was that incorrect GTT offsets were being fed into the execbuffer causing lots of misrendering and potential hangs. Reported-by: Linus Torvalds <[email protected]> Tested-by: Linus Torvalds <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-13drm/i915: Fix error handler to capture the first batch after the seqnoChris Wilson1-1/+1
Whilst we had no older batches on the active list, everything was fine. However, if the GPU is free running and the requests are only being reaped by the periodic retirer, than the current seqno may not be at the start of the list. In this case we need to select the first batch after the last seqno written by the gpu and not inclusive of the seqno. Signed-off-by: Chris Wilson <[email protected]>
2011-01-13drm/i915: Add a module option to override the use of SSCChris Wilson4-17/+21
In order to workaround the issue with LVDS not working on the Lenovo U160 apparently due to using the wrong SSC frequency, add an option to disable SSC. Suggested-by: Lukács, Árpád <[email protected]> Bugzillla: https://bugs.freedesktop.org/show_bug.cgi?id=32748 Signed-off-by: Chris Wilson <[email protected]> Cc: [email protected]
2011-01-12drm/i915/panel: The backlight is enabled if the current value is non-zeroIndan Zupancic1-1/+1
... and not if the maximum is non-zero. This fixes the typo introduced in 47356eb6728501452 and preserves the backlight value from boot. [ickle: My thanks also to Indan Zupancic for diagnosing the original regression and suggesting the appropriate fix.] Signed-off-by: Chris Wilson <[email protected]> Cc: [email protected] # after 47356eb6728501452
2011-01-12drm/i915/debugfs: Correct format after changing type of err object 'size'Chris Wilson1-1/+1
Signed-off-by: Chris Wilson <[email protected]>
2011-01-12Merge branch 'acpi-video' into releaseLen Brown1-1/+0
2011-01-11drm/i915/execbuffer: Reorder binding of objects to favour restrictionsChris Wilson2-26/+47
As the mappable portion of the aperture is always a small subset at the start of the GTT, it is allocated preferentially by drm_mm. This is useful in case we ever need to map an object later. However, if you have a large object that can consume the entire mappable region of the GTT this prevents the batchbuffer from fitting and so causing an error. Instead allocate all those that require a mapping up front in order to improve the likelihood of finding sufficient space to bind them. Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: If we hit OOM when allocating GTT pages, clear the apertureChris Wilson1-8/+4
Rather than evicting an object at random, which is unlikely to alleviate the memory pressure sufficient to allow us to continue, zap the entire aperture. That should give the system long enough to recover and reap some pages from the evicted objects, forestalling the allocation error for the new object. Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915/evict: Ensure we completely cleanup on failureChris Wilson1-1/+8
... and not leave the objects in a inconsistent state. Signed-off-by: Chris Wilson <[email protected]> Cc: [email protected]
2011-01-11drm/i915/execbuffer: Correctly clear the current object list upon EFAULTChris Wilson1-3/+1
Before releasing the lock in order to copy the relocation list from user pages, we need to drop all the object references as another thread may usurp and execute another batchbuffer before we reacquire the lock. However, the code was buggy and failed to clear the list... Signed-off-by: Chris Wilson <[email protected]> Cc: [email protected]
2011-01-11drm/i915/debugfs: Show all objects in the gttChris Wilson1-10/+43
Useful for determining the layout. Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: Record AGP memory type upon errorChris Wilson3-4/+16
Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: Periodically flush the active lists and requestsChris Wilson1-4/+26
In order to retire active buffers whilst no client is active, we need to insert our own flush requests onto the ring. This is useful for servers that queue up some rendering and then go to sleep as it allows us to the complete processing of those requests, potentially making that memory available again much earlier. Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915/gtt: Unmap the PCI pages after unbinding them from the GTTChris Wilson1-7/+3
Dave Airlie spotted that his ILK laptop with DMAR enabled was generating the occasional DMAR warning. "The ordering in the previous code was to rewrite the GTT table before unmapping the pages and that makes sense to me." This is his stable patch ported to d-i-n. Reported-by: Dave Airlie <[email protected]> Original-patch-by: Dave Airlie <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: Record the error batchbuffer on each ringChris Wilson3-120/+50
Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: Include TLB miss overhead for computing WMChris Wilson1-2/+9
The docs recommend that if 8 display lines fit inside the FIFO buffer, then the number of watermark entries should be increased to hide the latency of filling the rest of the FIFO buffer. Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: Propagate error from flushing the ringChris Wilson3-48/+90
... in order to avoid a BUG() and potential unbounded waits. Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: detect & report PCH display error interruptsJesse Barnes2-2/+81
FDI and the transcoders can fail for various reasons, so detect those conditions and report on them. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: cleanup rc6 codeJesse Barnes4-46/+75
Cleanup several aspects of the rc6 code: - misnamed intel_disable_clock_gating function (was only about rc6) - remove commented call to intel_disable_clock_gating - rc6 enabling code belongs in its own function (allows us to move the actual clock gating enable call back into restore_state) - allocate power & render contexts up front, only free on unload (avoids ugly lazy init at rc6 enable time) Signed-off-by: Jesse Barnes <[email protected]> [ickle: checkpatch cleanup] Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: fix rc6 enabling around suspend/resumeJesse Barnes2-3/+3
Enabling RC6 implies setting a graphics context. Make sure we do that only after the ring has been enabled, otherwise our ring commands will hang. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: re-enable rc6 support for Ironlake+Jesse Barnes4-21/+91
Re-enable rc6 support on Ironlake for power savings. Adds a debugfs file to check current RC state, adds a missing workaround for Ironlake MI_SET_CONTEXT instructions, and renames MCHBAR_RENDER_STANDBY to RSTDBYCTL to match the docs. Keep RC6 and the power context disabled on pre-ILK. It only seems to hang and doesn't save any power. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915: Make the ring IMR handling privateChris Wilson2-12/+15
As the IMR for the USER interrupts are not modified elsewhere, we can separate the spinlock used for these from that of hpd and pipestats. Those two IMR are manipulated under an IRQ and so need heavier locking. Reported-and-tested-by: Alexey Fisher <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915/ringbuffer: Simplify the ring irq refcountingChris Wilson2-39/+25
... and move it under the spinlock to gain the appropriate memory barriers. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32752 Signed-off-by: Chris Wilson <[email protected]>
2011-01-11drm/i915/debugfs: Show the per-ring IMRChris Wilson3-14/+24
Signed-off-by: Chris Wilson <[email protected]>