diff --git a/src/atombios_output.c b/src/atombios_output.c
index 148a1da..186864f 100644
--- a/src/atombios_output.c
+++ b/src/atombios_output.c
@@ -894,6 +894,19 @@ atombios_set_output_crtc_source(xf86OutputPtr output)
     return;
 }
 
+static void
+radeon_mbp_lcd_quirk(xf86OutputPtr output)
+{
+    RADEONInfoPtr info       = RADEONPTR(output->scrn);
+    unsigned char *RADEONMMIO = info->MMIO;
+    uint32_t lvtma_bit_depth_control = INREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL);
+
+    lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_TRUNCATE_EN;
+    //lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_SPATIAL_DITHER_EN;
+
+    OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, lvtma_bit_depth_control);
+}
+
 void
 atombios_output_mode_set(xf86OutputPtr output,
 			 DisplayModePtr mode,
@@ -943,8 +956,10 @@ atombios_output_mode_set(xf86OutputPtr output,
 	    if (IS_DCE3_VARIANT) {
 		atombios_output_dig2_setup(output, adjusted_mode);
 		atombios_output_dig2_transmitter_setup(output, adjusted_mode);
-	    } else
+	    } else {
 		atombios_output_digital_setup(output, ATOM_DEVICE_LCD1_INDEX, adjusted_mode);
+		radeon_mbp_lcd_quirk(output);
+	    }
 	}
     } else if ((radeon_output->MonType == MT_CTV) ||
 	       (radeon_output->MonType == MT_STV) ||