]> git.pld-linux.org Git - packages/X11.git/blame - X11-radeon-dynamic-clocks.patch
- orphaned, outdated
[packages/X11.git] / X11-radeon-dynamic-clocks.patch
CommitLineData
7d9f6e29 1--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.ati-radeon-dynamic-clocks-fix 2005-04-14 14:07:38.000000000 -0400
2+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c 2005-04-14 14:10:50.000000000 -0400
3@@ -4512,7 +4512,7 @@
4
5 RADEONSave(pScrn);
6
7- if ((!info->IsSecondary) && info->IsMobility) {
8+ if ((!info->IsSecondary)) {
9 if (xf86ReturnOptValBool(info->Options, OPTION_DYNAMIC_CLOCKS, FALSE)) {
10 RADEONSetDynamicClock(pScrn, 1);
11 } else {
12@@ -7808,6 +7808,34 @@
13 CARD32 tmp;
14 switch(mode) {
15 case 0: /* Turn everything OFF (ForceON to everything)*/
16+#if 1
17+ /* some chips seem to have problems with the method of
18+ * forcing everything on as per below; thus we revert to the old
19+ * forceON behavior
20+ */
21+ if (info->HasCRTC2) {
22+ tmp = INPLL(pScrn, RADEON_SCLK_CNTL);
23+ OUTPLL(RADEON_SCLK_CNTL, ((tmp & ~RADEON_DYN_STOP_LAT_MASK) |
24+ RADEON_CP_MAX_DYN_STOP_LAT |
25+ RADEON_SCLK_FORCEON_MASK));
26+
27+ if (info->ChipFamily == CHIP_FAMILY_RV200) {
28+ tmp = INPLL(pScrn, RADEON_SCLK_MORE_CNTL);
29+ OUTPLL(RADEON_SCLK_MORE_CNTL, tmp | RADEON_SCLK_MORE_FORCEON);
30+ }
31+
32+ }
33+
34+ tmp = INPLL(pScrn, RADEON_MCLK_CNTL);
35+ OUTPLL(RADEON_MCLK_CNTL, (tmp |
36+ RADEON_FORCEON_MCLKA |
37+ RADEON_FORCEON_MCLKB |
38+ RADEON_FORCEON_YCLKA |
39+ RADEON_FORCEON_YCLKB |
40+ RADEON_FORCEON_MC |
41+ RADEON_FORCEON_AIC));
42+
43+#else
44 if ( !info->HasCRTC2 ) {
45 tmp = INPLL(pScrn, RADEON_SCLK_CNTL);
46 tmp |= (RADEON_SCLK_FORCE_CP | RADEON_SCLK_FORCE_HDP |
47@@ -7945,6 +7973,7 @@
48 RADEON_PIXCLK_DAC_ALWAYS_ONb);
49 OUTPLL(RADEON_VCLK_ECP_CNTL, tmp);
50 }
51+#endif
52 xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Dynamic Clock Scaling Disabled\n");
53 break;
54 case 1:
This page took 0.034352 seconds and 4 git commands to generate.