- 22 Jun, 2011 1 commit
-
-
Ben Widawsky authored
The lock must be held for the saving and restoring of VGA state. Signed-off-by:
Ben Widawsky <ben@bwidawsk.net> CC: Alexander Zhaunerchyk <alex.vizor@gmail.com> CC: Andrey Rahmatullin <wrar@wrar.name> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 14 May, 2011 2 commits
-
-
Jesse Barnes authored
Ibex Peak and CougarPoint already require a different setting (added here), and future chips will likely follow that precedent. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
This helps contain the mess to init_display() instead. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 24 Mar, 2011 2 commits
-
-
Chris Wilson authored
This reverts commit a7a75c8f . There are two different variations on how Intel hardware addresses the "Hardware Status Page". One as a location in physical memory and the other as an offset into the virtual memory of the GPU, used in more recent chipsets. (The HWS itself is a cacheable region of memory which the GPU can write to without requiring CPU synchronisation, used for updating various details of hardware state, such as the position of the GPU head in the ringbuffer, the last breadcrumb seqno, etc). These two types of addresses were updated in different locations of code - one inline with the ringbuffer initialisation, and the other during device initialisation. (The HWS page is logically associated with the rings, and there is one HWS page per ring.) During resume, only the ringbuffers were being re-initialised along with the virtual HWS page, leaving the older physical address HWS untouched. This then caused a hang on the older gen3/4 (915GM, 945GM, 965GM) the first time we tried to synchronise the GPU as the breadcrumbs were never being updated. Reported-and-tested-by:
Linus Torvalds <torvalds@linux-foundation.org> Reported-by:
Jan Niehusmann <jan@gondor.com> Reported-and-tested-by:
Justin P. Mattock <justinmattock@gmail.com> Reported-and-tested-by:
Michael "brot" Groh <brot@minad.de> Cc: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Acked-by:
Zhenyu Wang <zhenyuw@linux.intel.com>
-
Chris Wilson authored
This reverts commit a7a75c8f . There are two different variations on how Intel hardware addresses the "Hardware Status Page". One as a location in physical memory and the other as an offset into the virtual memory of the GPU, used in more recent chipsets. (The HWS itself is a cacheable region of memory which the GPU can write to without requiring CPU synchronisation, used for updating various details of hardware state, such as the position of the GPU head in the ringbuffer, the last breadcrumb seqno, etc). These two types of addresses were updated in different locations of code - one inline with the ringbuffer initialisation, and the other during device initialisation. (The HWS page is logically associated with the rings, and there is one HWS page per ring.) During resume, only the ringbuffers were being re-initialised along with the virtual HWS page, leaving the older physical address HWS untouched. This then caused a hang on the older gen3/4 (915GM, 945GM, 965GM) the first time we tried to synchronise the GPU as the breadcrumbs were never being updated. Reported-and-tested-by:
Linus Torvalds <torvalds@linux-foundation.org> Reported-by:
Jan Niehusmann <jan@gondor.com> Reported-by:
Justin P. Mattock <justinmattock@gmail.com> Reported-and-tested-by:
Michael "brot" Groh <brot@minad.de> Cc: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 02 Mar, 2011 1 commit
-
-
Zhenyu Wang authored
It's cleaned before saving and re-initialized after restoring. So don't need to save/restore it. And also new chip has new address for hardware status page register, don't write to old address. Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 07 Feb, 2011 1 commit
-
-
Jesse Barnes authored
We had some conversions over to the _PIPE macros, but didn't get everything. So hide the per-pipe regs with an _ (still used in a few places for legacy) and add a few _PIPE based macros, then make sure everyone uses them. [update: remove usage of non-existent no-op macro] [update 2: keep modesetting suspend/resume code, update to new reg names] Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> [ickle: stylistic cleanups for checkpatch and taste] Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 11 Jan, 2011 3 commits
-
-
Jesse Barnes authored
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 <jbarnes@virtuousgeek.org> [ickle: checkpatch cleanup] Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Jesse Barnes authored
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 <jbarnes@virtuousgeek.org> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Jesse Barnes authored
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 <jbarnes@virtuousgeek.org> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 20 Dec, 2010 1 commit
-
-
Chris Wilson authored
Manaul revert of 0cdab21f , 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 <pcjc2@cam.ac.uk> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 18 Dec, 2010 1 commit
-
-
Jesse Barnes authored
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 <jbarnes@virtuousgeek.org> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 05 Dec, 2010 1 commit
-
-
Chris Wilson authored
Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 25 Nov, 2010 1 commit
-
-
Chris Wilson authored
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>
-
- 21 Nov, 2010 1 commit
-
-
Chris Wilson authored
Under KMS, restoring the cursor is handled upon modeswitch in order to avoid enabling an undefined set of registers. At the moment, the cursor is restored before the aperture and modes are fully setup causing some invalid access during resume, such as: PGTBL_ER: 0x00040000 Invalid GTT entry during Cursor Fetch Fix this by only performing cursor register save/restore under UMS where it is done in the correct sequence. Reported-by:
Arkadiusz Miskiewicz <arekm@maven.pl> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 03 Nov, 2010 1 commit
-
-
Kyle McMartin authored
Fixes issue where i915_gfx_val was reporting values several orders of magnitude higher than physically possible (without leaving scorch marks on my thighs at least.) Signed-off-by:
Kyle McMartin <kyle@redhat.com> Reviewed-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Cc: stable@kernel.org Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 21 Sep, 2010 1 commit
-
-
Chris Wilson authored
Avoid confusion between i965g meaning broadwater and the gen4+ chipset families. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 18 Sep, 2010 1 commit
-
-
Chris Wilson authored
Use the GMBUS interface rather than direct bit banging to grab the EDID over DDC (and for other forms of auxiliary communication with external display controllers). The hope is that this method will be much faster and more reliable than bit banging for fetching EDIDs from buggy monitors or through switches, though we still preserve the bit banging as a fallback in case GMBUS fails. Based on an original patch by Jesse Barnes. Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 17 Sep, 2010 1 commit
-
-
Chris Wilson authored
With 5 places to update when adding handling for fence registers, it is easy to overlook one or two. Correct that oversight, but fence management should be improved before a new set of registers is added. Bugzilla: https://bugs.freedesktop.org/show_bug?id=30199 Original patch by: Yuanhan Liu <yuanhan.liu@intel.com> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
-
- 22 Aug, 2010 2 commits
-
-
Chris Wilson authored
For the shared paths on the next generation chipsets. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Chris Wilson authored
Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 02 Aug, 2010 1 commit
-
-
Zhao Yakui authored
About 0.2W power can be saved on one HP laptop. Signed-off-by:
Zhao Yakui <yakui.zhao@intel.com> Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 12 Apr, 2010 1 commit
-
-
Zhao Yakui authored
Signed-off-by:
Zhao Yakui <yakui.zhao@intel.com> Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com>
-
- 22 Feb, 2010 2 commits
-
-
Matthew Garrett authored
The ironlake render p-state support includes some rather odd variable names. Clean them up in order to improve the readability of the code. Signed-off-by:
Matthew Garrett <mjg@redhat.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Jesse Barnes authored
Ironlake (and 965GM, which this patch doesn't support) supports a hardware performance and power management feature that allows it to adjust to changes in GPU load over time with software help. The goal if this is to maximize performance/power for a given workload. This patch enables that feature, which is also a requirement for supporting Intelligent Power Sharing, a feature which allows for dynamic budgeting of power between the CPU and GPU in Arrandale platforms. Tested-by:
ykzhao <yakui.zhao@intel.com> [anholt: Resolved against the irq handler loop removal] Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 06 Jan, 2010 1 commit
-
-
Andrew Lutomirski authored
We restored RC6 twice on resume, even with modesetting off. Instead, only restore it once and skip RC6 initialization entirely in non-KMS mode. Signed-off-by:
Andy Lutomirski <luto@mit.edu> Tested-by:
Jeff Chua <jeff.chua.linux@gmail.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 08 Dec, 2009 1 commit
-
-
Andrew Lutomirski authored
Rather than restoring just a few clock gating registers on resume, just reinitialize the whole thing. Signed-off-by:
Andy Lutomirski <luto@mit.edu> [anholt: Fixed up for RC6 support landed since the patch was written] Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 07 Dec, 2009 1 commit
-
-
Adam Jackson authored
IGD* isn't a useful name. Replace with the codenames, as sourced from pci.ids. Signed-off-by:
Adam Jackson <ajax@redhat.com> [anholt: Fixed up for merge with pineview/ironlake changes] Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 01 Dec, 2009 1 commit
-
-
Eric Anholt authored
This is a sync of a fix I made in the old UMS code. If the BIOS uses the GMBUS and doesn't clear that setup, then our bit-banging I2C can fail, leading to monitors not being detected. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 12 Nov, 2009 1 commit
-
-
Zhenyu Wang authored
Add more display registers save/restore to fix unstable issues during S4 testing on Ironlake. And DPLL_B_MD should not be restored on Ironlake. Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 05 Nov, 2009 1 commit
-
-
Jesse Barnes authored
Render standy allows the GPU to power down the render unit when idle. In order for this to work, it needs a page of graphics memory to save state. This patch allocates that page and enables the feature on supported chipsets. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 23 Oct, 2009 1 commit
-
-
Zhenyu Wang authored
This adds registers save/restore for Ironlake to make suspend work. Signed-off-by:
Guo, Chaohong <chaohong.guo@intel.com> [zhenyuw: some code re-orgnization, and add more save/restore for FDI link and transcoder registers, also fix palette register for Ironlake] Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 15 Oct, 2009 1 commit
-
-
Jesse Barnes authored
Turns out some machines, like the ThinkPad X40 don't come back if you don't save/restore this register. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 13 Oct, 2009 1 commit
-
-
Jesse Barnes authored
This hasn't fixed the regressions we were testing against, but clearly should be required. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 17 Sep, 2009 1 commit
-
-
Ben Gamari authored
We move the display-specific code into it's own functions, called from the general GPU state save/restore functions. This will be needed later by the GPU reset code. Signed-off-by:
Ben Gamari <bgamari.foss@gmail.com> Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org>
-
- 04 Sep, 2009 1 commit
-
-
Jesse Barnes authored
There are several sources of unnecessary power consumption on Intel graphics systems. The first is the LVDS clock. TFTs don't suffer from persistence issues like CRTs, and so we can reduce the LVDS refresh rate when the screen is idle. It will be automatically upclocked when userspace triggers graphical activity. Beyond that, we can enable memory self refresh. This allows the memory to go into a lower power state when the graphics are idle. Finally, we can drop some clocks on the gpu itself. All of these things can be reenabled between frames when GPU activity is triggered, and so there should be no user visible graphical changes. Signed-off-by:
Jesse Barnes <jesse.barnes@intel.com> Signed-off-by:
Matthew Garrett <mjg@redhat.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 05 Aug, 2009 1 commit
-
-
Roel Kluin authored
dev_priv->saveSWF1 is a 16 element array, but this reads up to index 22, and restored values from the wrong registers. Signed-off-by:
Roel Kluin <roel.kluin@gmail.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 10 Jul, 2009 1 commit
-
-
Zhao Yakui authored
In KMS mode we now use the normal mode-setting paths to set the modes back to the current configuration, so we don't need to also run the more limited non-KMS implementation of modesetting for resume. Signed-off-by:
Zhao Yakui <yakui.zhao@intel.com> Acked-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 18 Jun, 2009 1 commit
-
-
Keith Packard authored
Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 04 Jun, 2009 1 commit
-
-
Eric Anholt authored
This may fix cursor corruption in X on resume, which would persist until the cursor was hidden and then shown again. V2: Also include the cursor control regs. Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Jesse Barnes <jbarnes@virtuousgeek.org>
-