Commit d668046c13024d74af7d04a124ba55f406380fe7

Authored by Dave Airlie
1 parent 08a370fa75

drm/radeon/kms: enable ACPI powermanagement mode on radeon gpus.

Some GPUs have an APM/ACPI PM mode selection switch and some BIOSes
set this to APM. We really want this in ACPI mode for Linux.

Signed-off-by: Dave Airlie <airlied@redhat.com>

Showing 2 changed files with 8 additions and 0 deletions Side-by-side Diff

drivers/gpu/drm/radeon/r100.c
... ... @@ -1809,6 +1809,7 @@
1809 1809 {
1810 1810 struct drm_device *dev = rdev->ddev;
1811 1811 bool force_dac2 = false;
  1812 + u32 tmp;
1812 1813  
1813 1814 /* set these so they don't interfere with anything */
1814 1815 WREG32(RADEON_OV0_SCALE_CNTL, 0);
... ... @@ -1880,6 +1881,12 @@
1880 1881 WREG32(RADEON_DISP_HW_DEBUG, disp_hw_debug);
1881 1882 WREG32(RADEON_DAC_CNTL2, dac2_cntl);
1882 1883 }
  1884 +
  1885 + /* switch PM block to ACPI mode */
  1886 + tmp = RREG32_PLL(RADEON_PLL_PWRMGT_CNTL);
  1887 + tmp &= ~RADEON_PM_MODE_SEL;
  1888 + WREG32_PLL(RADEON_PLL_PWRMGT_CNTL, tmp);
  1889 +
1883 1890 }
1884 1891  
1885 1892 /*
drivers/gpu/drm/radeon/radeon_reg.h
... ... @@ -346,6 +346,7 @@
346 346 # define RADEON_TVPLL_PWRMGT_OFF (1 << 30)
347 347 # define RADEON_TVCLK_TURNOFF (1 << 31)
348 348 #define RADEON_PLL_PWRMGT_CNTL 0x0015 /* PLL */
  349 +# define RADEON_PM_MODE_SEL (1 << 13)
349 350 # define RADEON_TCL_BYPASS_DISABLE (1 << 20)
350 351 #define RADEON_CLR_CMP_CLR_3D 0x1a24
351 352 #define RADEON_CLR_CMP_CLR_DST 0x15c8