[PATCH 00/11] Enable gpu switching on the MacBook Pro

Lu, Ran hephooey at gmail.com
Sat May 2 12:03:24 PDT 2015

Hi Lukas,

Lukas Wunner wrote:
> Included below is a tentative patch to set register 0x7F when switching
> the DDC lines. It would be great if someone with a retina could test
> the patchset I've posted plus this tentative patch since I can't test it
> myself.
> * MacBookPro11 (second-gen retina):
>   The patchset I've posted plus the tentative patch below.
>   Fellow gmux hackers Andreas Heider and Bruno Bierbaumer tell me that
>   additionally, this patch is needed otherwise the i915 gpu is turned off:
>   https://www.marc.info/?l=grub-deavel&m=141586614924917&w=2

Thank you very much for your effort of bringing gpu switching to RMBP, I 
tried your patchset, including the one in this email, on my laptop. It is a 
Retina MacBookPro, late 2013 version, which is how ifixit calls it. It seems 
to work at least partially. Here is the results I observed.

First of all, I use gfxstatus in OSX to force the system to use the intel 
gpu. So when I boot into Linux the intel gpu will be activated and I can 
turn of the discrete nvidia gpu to save power.

After booted with the patched kernel (on top of v4.0). I can use "echo DIS > 
/sys/kernel/debug/vgaswitcheroo/switch" to switch to the nvidia gpu. The 
console turned black, I guess the system is incapable of switching to the 
nouveau's framebuffer at this moment. But after I startx through ssh, I can 
use everything without any problem. After quit the X the framebuffer is 
recovered as well. I can switch back to intel gpu and start X again no 
problem. However when I activated the discrete gpu again, I got a black 
screen after startx, the log of X seems normal, just no display on the 

I also tried to use the gfxstatus to resume the "normal" (dynamical 
switching) behavior in OSX. Then the nvidia gpu will be used when booting to 
linux. I switched to the intel gpu but it appears the gpu did not find the 
correct screen. After startx I got a black screen, xrandr does not give me 
the eDP output, only some Virtual and VGA outputs.

I hope these information can help to improve those patches. I am happy to 
try any (hopefully not dangerous) patches if you have any new ones.

Best Regards,

More information about the dri-devel mailing list