Linux 4.6 Will Finally Bring GPU Switching For Pre-Retina MacBook Pros
Support for GPU switching on pre-retina Apple MacBook Pro laptops manufactured from 2008 through 2013 will finally be supported by the mainline Linux 4.6 kernel.
Daniel Vetter of Intel sent in a round of DRM-misc updates today for DRM-Next, which in turn is being queued up for Linux 4.6. Normally the drm-misc changes aren't too interesting, but this time things are different: there is the long-in-development VGA Switcheroo support for Apple GMUX.
This VGA Switcheroo for Apple GMUX support was finished up by developer Lukas Wunner. As he explained in one of his earlier patch series about the changes:
The main obstacle on these machines is that the panel mode in VBIOS is bogus. Fortunately gmux can switch DDC independently from the display, thereby allowing the inactive GPU to probe the panel's EDID.
In short, vga_switcheroo and apple-gmux are amended with hooks to switch DDC, DRM core is amended with a drm_get_edid_switcheroo() helper, and relevant drivers are amended to call that for LVDS outputs.
The retina MacBook Pro (2012 - present) uses eDP and cannot switch AUX independently from the main link. The main obstacle there is link training, I'm currently working on this, it will be addressed in a future patch set.