Re: [PATCH v2 4/5] apple-gmux: support MMIO gmux on T2 Macs

From: Lukas Wunner
Date: Sun Feb 19 2023 - 08:40:03 EST


On Fri, Feb 17, 2023 at 11:05:31AM +1100, Orlando Chamberlain wrote:
> On Thu, 16 Feb 2023 14:27:13 +0100 Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> It looks like iMac20,1, iMac20,2, and iMacPro1,1 have APP000B:
>
> apple_gmux: Failed to find gmux I/O resource
>
> iMac20,2: https://linux-hardware.org/?probe=ec2af584b3&log=dmesg
> iMac20,1: https://linux-hardware.org/?probe=fee7644b9c&log=dmesg
> iMacPro1,1: https://linux-hardware.org/?probe=6c26c9ff8c&log=dmesg
>
> But I'm not sure if they actually have it or not.

A number of iMacs support Target Display Mode, i.e. you can plug in
an external computer to the iMac's DisplayPort and use the iMac as
its screen. Those iMac models do contain a gmux to mux the display
between internal GPU and external DisplayPort connection. Linux
does not have support for this, sadly. It would require generalizing
vga_switcheroo for use cases beyond dual GPU laptops. Florian Echtler
has been looking into Target Display Mode but I'm not sure he got it
working:

https://lore.kernel.org/all/e6b44662-8b05-fb8d-660e-77153680d11b@xxxxxxxxxxxxxx/
https://lore.kernel.org/all/71a48bf5-54b5-6d7b-d574-e0aa6c1acb80@xxxxxxxxxxxxxx/
https://lore.kernel.org/all/1497603751-22360-1-git-send-email-floe@xxxxxxxxxxxxxx/

I believe the Mac Pro (the trashcan one) also contains a gmux and
an APP000B device in DSDT. I recall seeing a bug report due to a
splat in the gmux driver on that machine. Back then I confirmed
in the schematics that it does contain a gmux, though I think it's
only used for brightness, not GPU switching.

Thanks,

Lukas