radeon_hd: Disable spread spectrum
* SS requires complex pll adjustments that we don't do atm
This commit is contained in:
@@ -263,6 +263,9 @@ radeon_init_accelerant(int device)
|
|||||||
|
|
||||||
radeon_init_bios(gInfo->rom);
|
radeon_init_bios(gInfo->rom);
|
||||||
|
|
||||||
|
// disable spread spectrum as it requires lots of extra calculations
|
||||||
|
radeon_gpu_ss_disable();
|
||||||
|
|
||||||
// find GPIO pins from AtomBIOS
|
// find GPIO pins from AtomBIOS
|
||||||
gpio_probe();
|
gpio_probe();
|
||||||
|
|
||||||
|
|||||||
@@ -524,3 +524,36 @@ radeon_gpu_irq_setup()
|
|||||||
|
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
radeon_gpu_ss_disable()
|
||||||
|
{
|
||||||
|
TRACE("%s called\n", __func__);
|
||||||
|
|
||||||
|
radeon_shared_info &info = *gInfo->shared_info;
|
||||||
|
uint32 ssControl;
|
||||||
|
|
||||||
|
if (info.chipsetID >= RADEON_CEDAR) {
|
||||||
|
// PLL1
|
||||||
|
ssControl = Read32(OUT, EVERGREEN_P1PLL_SS_CNTL);
|
||||||
|
ssControl &= ~EVERGREEN_PxPLL_SS_EN;
|
||||||
|
Write32(OUT, EVERGREEN_P1PLL_SS_CNTL, ssControl);
|
||||||
|
// PLL2
|
||||||
|
ssControl = Read32(OUT, EVERGREEN_P2PLL_SS_CNTL);
|
||||||
|
ssControl &= ~EVERGREEN_PxPLL_SS_EN;
|
||||||
|
Write32(OUT, EVERGREEN_P2PLL_SS_CNTL, ssControl);
|
||||||
|
} else if (info.chipsetID >= RADEON_RS600) {
|
||||||
|
// PLL1
|
||||||
|
ssControl = Read32(OUT, AVIVO_P1PLL_INT_SS_CNTL);
|
||||||
|
ssControl &= ~1;
|
||||||
|
Write32(OUT, AVIVO_P1PLL_INT_SS_CNTL, ssControl);
|
||||||
|
// PLL2
|
||||||
|
ssControl = Read32(OUT, AVIVO_P2PLL_INT_SS_CNTL);
|
||||||
|
ssControl &= ~1;
|
||||||
|
Write32(OUT, AVIVO_P2PLL_INT_SS_CNTL, ssControl);
|
||||||
|
} else
|
||||||
|
return B_ERROR;
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|||||||
@@ -176,6 +176,7 @@ void radeon_gpu_mc_resume(struct gpu_state *gpuState);
|
|||||||
uint32 radeon_gpu_mc_idlecheck();
|
uint32 radeon_gpu_mc_idlecheck();
|
||||||
status_t radeon_gpu_mc_setup();
|
status_t radeon_gpu_mc_setup();
|
||||||
status_t radeon_gpu_irq_setup();
|
status_t radeon_gpu_irq_setup();
|
||||||
|
status_t radeon_gpu_ss_disable();
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user