• Bruno Prémont's avatar
    apple-gmux: lock iGP IO to protect from vgaarb changes · 4eebd5a4
    Bruno Prémont authored
    As GMUX depends on IO for iGP to be enabled and active, lock the IO at
    vgaarb level. This should prevent GPU driver for dGPU to disable IO for
    iGP while it tries to own legacy VGA IO.
    
    This fixes usage of backlight control combined with closed nvidia
    driver on some Apple dual-GPU (intel/nvidia) systems.
    
    On those systems loading nvidia driver disables intel IO decoding,
    disabling the gmux backlight controls as a side effect.
    Prior to commits moving boot_vga from (optional) efifb to less optional
    vgaarb this mis-behavior could be avoided by using right kernel config
    (efifb enabled but vgaarb disabled).
    
    This patch explicitly does not try to trigger vgaarb changes in order
    to avoid confusing already running graphics drivers. If IO has been
    mis-configured by vgaarb gmux will thus fail to probe.
    It is expected to load/probe gmux prior to graphics drivers.
    
    Fixes: ce027dac # nvidia interaction
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=86121Reported-by: default avatarPetri Hodju <petrihodju@yahoo.com>
    Tested-by: default avatarPetri Hodju <petrihodju@yahoo.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Matthew Garrett <matthew.garrett@nebula.com>
    Signed-off-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
    Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
    4eebd5a4
apple-gmux.c 17.7 KB