--- original/src/atombios_output.c 2008-09-18 11:15:37.000000000 -0700 +++ working/src/atombios_output.c 2008-09-18 17:29:06.000000000 -0700 @@ -620,7 +620,16 @@ dfp_disable_dither(xf86OutputPtr output, break; /*case ATOM_DEVICE_LCD1_SUPPORT:*/ /* LVDS panels need dither enabled */ case ATOM_DEVICE_DFP3_SUPPORT: - OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, 0); /* LVTMA */ + if ((info->ChipFamily == CHIP_FAMILY_RV635)) { + ErrorF("BWH: Setting bit depth for RV635\n"); + /* None of these settings corrects the banding issue */ + OUTREG(AVIVO_TMDSA_BIT_DEPTH_CONTROL, 0); + OUTREG(AVIVO_DDIA_BIT_DEPTH_CONTROL, 0); + OUTREG(AVIVO_DVOA_BIT_DEPTH_CONTROL, 0); + OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, 0); + } else { + OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, 0); /* LVTMA */ + } break; default: break; @@ -954,7 +963,10 @@ atombios_output_mode_set(xf86OutputPtr o atombios_output_lvds_setup(output, adjusted_mode); dfp_disable_dither(output, ATOM_DEVICE_LCD1_SUPPORT); } - } + } else if (radeon_output->devices & ATOM_DEVICE_DFP3_SUPPORT) { + atombios_output_lvds_setup(output, adjusted_mode); + dfp_disable_dither(output, ATOM_DEVICE_DFP3_SUPPORT); + } } else if ((radeon_output->MonType == MT_CTV) || (radeon_output->MonType == MT_STV) || (radeon_output->MonType == MT_CV)) {