mirror of https://gitee.com/openkylin/linux.git
drm/i915: Set up the documented clock gating on Sandybridge and Ironlake.
Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
66f6ff09ff
commit
8956c8bba5
|
@ -2176,6 +2176,14 @@
|
||||||
#define DISPLAY_PORT_PLL_BIOS_1 0x46010
|
#define DISPLAY_PORT_PLL_BIOS_1 0x46010
|
||||||
#define DISPLAY_PORT_PLL_BIOS_2 0x46014
|
#define DISPLAY_PORT_PLL_BIOS_2 0x46014
|
||||||
|
|
||||||
|
#define PCH_DSPCLK_GATE_D 0x42020
|
||||||
|
# define DPFDUNIT_CLOCK_GATE_DISABLE (1 << 7)
|
||||||
|
# define DPARBUNIT_CLOCK_GATE_DISABLE (1 << 5)
|
||||||
|
|
||||||
|
#define PCH_3DCGDIS0 0x46020
|
||||||
|
# define MARIUNIT_CLOCK_GATE_DISABLE (1 << 18)
|
||||||
|
# define SVSMUNIT_CLOCK_GATE_DISABLE (1 << 1)
|
||||||
|
|
||||||
#define FDI_PLL_FREQ_CTL 0x46030
|
#define FDI_PLL_FREQ_CTL 0x46030
|
||||||
#define FDI_PLL_FREQ_CHANGE_REQUEST (1<<24)
|
#define FDI_PLL_FREQ_CHANGE_REQUEST (1<<24)
|
||||||
#define FDI_PLL_FREQ_LOCK_LIMIT_MASK 0xfff00
|
#define FDI_PLL_FREQ_LOCK_LIMIT_MASK 0xfff00
|
||||||
|
|
|
@ -4717,6 +4717,20 @@ void intel_init_clock_gating(struct drm_device *dev)
|
||||||
* specs, but enable as much else as we can.
|
* specs, but enable as much else as we can.
|
||||||
*/
|
*/
|
||||||
if (HAS_PCH_SPLIT(dev)) {
|
if (HAS_PCH_SPLIT(dev)) {
|
||||||
|
uint32_t dspclk_gate = VRHUNIT_CLOCK_GATE_DISABLE;
|
||||||
|
|
||||||
|
if (IS_IRONLAKE(dev)) {
|
||||||
|
/* Required for FBC */
|
||||||
|
dspclk_gate |= DPFDUNIT_CLOCK_GATE_DISABLE;
|
||||||
|
/* Required for CxSR */
|
||||||
|
dspclk_gate |= DPARBUNIT_CLOCK_GATE_DISABLE;
|
||||||
|
|
||||||
|
I915_WRITE(PCH_3DCGDIS0,
|
||||||
|
MARIUNIT_CLOCK_GATE_DISABLE |
|
||||||
|
SVSMUNIT_CLOCK_GATE_DISABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
I915_WRITE(PCH_DSPCLK_GATE_D, dspclk_gate);
|
||||||
return;
|
return;
|
||||||
} else if (IS_G4X(dev)) {
|
} else if (IS_G4X(dev)) {
|
||||||
uint32_t dspclk_gate;
|
uint32_t dspclk_gate;
|
||||||
|
|
Loading…
Reference in New Issue