diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-12-03 17:58:03 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-12-03 17:58:03 +0000 |
commit | a293eeb1b32bca095a3ea1195664502c41b1a852 (patch) | |
tree | b600894a8eabf69eb167fce373da06cb07498a7c /driver/xf86-video-ati/src/radeon_driver.c | |
parent | 4883e7a132eaf17cf31a3e605e3c22f174b36a62 (diff) |
OpenBSD modification: IBookHack option.
Diffstat (limited to 'driver/xf86-video-ati/src/radeon_driver.c')
-rw-r--r-- | driver/xf86-video-ati/src/radeon_driver.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/driver/xf86-video-ati/src/radeon_driver.c b/driver/xf86-video-ati/src/radeon_driver.c index 6f9854fbf..a11c758f4 100644 --- a/driver/xf86-video-ati/src/radeon_driver.c +++ b/driver/xf86-video-ati/src/radeon_driver.c @@ -211,6 +211,9 @@ static const OptionInfoRec RADEONOptions[] = { { OPTION_LVDS_PROBE_PLL, "LVDSProbePLL", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE }, { OPTION_CONSTANTDPI, "ConstantDPI", OPTV_BOOLEAN, {0}, FALSE }, +#ifdef __powerpc__ + { OPTION_IBOOKHACKS, "iBookHacks", OPTV_BOOLEAN, {0}, FALSE }, +#endif { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -6688,6 +6691,14 @@ static void RADEONRestorePLLRegisters(ScrnInfoPtr pScrn, RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info->MMIO; + /* + * Never do it on Apple iBook to avoid a blank screen. + */ +#ifdef __powerpc__ + if (xf86ReturnOptValBool(info->Options, OPTION_IBOOKHACKS, FALSE)) + return; +#endif + if (info->IsMobility) { /* A temporal workaround for the occational blanking on certain laptop panels. This appears to related to the PLL divider registers (fail to lock?). @@ -8533,7 +8544,16 @@ static void RADEONInitPLLRegisters(ScrnInfoPtr pScrn, RADEONInfoPtr info, save->post_div)); save->ppll_ref_div = pll->reference_div; - save->ppll_div_3 = (save->feedback_div | (post_div->bitvalue << 16)); + /* + * on iBooks the LCD pannel needs tweaked PLL timings + */ +#ifdef __powerpc__ + if (xf86ReturnOptValBool(info->Options, OPTION_IBOOKHACKS, FALSE)) + save->ppll_div_3 = 0x000600ad; + else +#endif + save->ppll_div_3 = (save->feedback_div | (post_div->bitvalue << 16)); + save->htotal_cntl = 0; } |