diff mbox

Macbook Pro Retina display problems

Message ID 502418F3.4050607@gnu-log.net (mailing list archive)
State New, archived
Headers show

Commit Message

Benoit Gschwind Aug. 9, 2012, 8:09 p.m. UTC
Hello,

If find a workaround to video corruption for intel gpu on macbook pro
retina.

the work around work as follow :

- patch the kernel 3.5.1 with attached patch
- that OS X and switch to intgrated gpu only with:
  http://codykrieger.com/gfxCardStatus
- reboot with the patched kernel

I did not try it in BIOS mode, I use it on EFI mode only.

The patch point out the fact that bit-per-pixel of panel is not detected
correctly.

Best regards

Comments

Francois Rigaut Aug. 9, 2012, 11:01 p.m. UTC | #1
Benoit,

Great news.
I confirm it works. Thanks a bunch for finding the issue!
Next step I guess is to make gmux work to be able to swicth the nvidia
power off whenever we don't need it. 
Cheers, 
Francois

Dan, do you still need the register dumps (with C pipe)? 

On Thu, 2012-08-09 at 22:09 +0200, Benoit Gschwind wrote:

> Hello,
> 
> If find a workaround to video corruption for intel gpu on macbook pro
> retina.
> 
> the work around work as follow :
> 
> - patch the kernel 3.5.1 with attached patch
> - that OS X and switch to intgrated gpu only with:
>   http://codykrieger.com/gfxCardStatus
> - reboot with the patched kernel
> 
> I did not try it in BIOS mode, I use it on EFI mode only.
> 
> The patch point out the fact that bit-per-pixel of panel is not detected
> correctly.
> 
> Best regards
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

--- linux-3.5.1.orig/drivers/gpu/drm/i915/intel_display.c	2012-08-09 17:23:56.000000000 +0200
+++ linux-3.5.1/drivers/gpu/drm/i915/intel_display.c	2012-08-09 21:13:43.146996673 +0200
@@ -3583,7 +3583,8 @@ 
 
 		if (intel_encoder->type == INTEL_OUTPUT_EDP) {
 			/* Use VBT settings if we have an eDP panel */
-			unsigned int edp_bpc = dev_priv->edp.bpp / 3;
+			//unsigned int edp_bpc = dev_priv->edp.bpp / 3;
+			unsigned int edp_bpc = 8;
 
 			if (edp_bpc < display_bpc) {
 				DRM_DEBUG_KMS("clamping display bpc (was %d) to eDP (%d)\n", display_bpc, edp_bpc);