• Hans de Goede's avatar
    ACPI: video: Fix Apple GMUX backlight detection · 3cf3b7f0
    Hans de Goede authored
    The apple-gmux driver only binds to old GMUX devices which have an
    IORESOURCE_IO resource (using inb()/outb()) rather then memory-mapped
    IO (IORESOURCE_MEM).
    
    T2 MacBooks use the new style GMUX devices (with IORESOURCE_MEM access),
    so these are not supported by the apple-gmux driver. This is not a problem
    since they have working ACPI video backlight support.
    
    But the apple_gmux_present() helper only checks if an ACPI device with
    the "APP000B" HID is present, causing acpi_video_get_backlight_type()
    to return acpi_backlight_apple_gmux disabling the acpi_video backlight
    device.
    
    Add a new apple_gmux_backlight_present() helper which checks that
    the "APP000B" device actually is an old GMUX device with an IORESOURCE_IO
    resource.
    
    This fixes the acpi_video0 backlight no longer registering on T2 MacBooks.
    
    Note people are working to add support for the new style GMUX to Linux:
    https://github.com/kekrby/linux-t2/commits/wip/hybrid-graphics
    
    Once this lands this patch should be reverted so that
    acpi_video_get_backlight_type() also prefers the gmux on new style GMUX
    MacBooks, but for now this is necessary to avoid regressing backlight
    control on T2 Macs.
    
    Fixes: 21245df3 ("ACPI: video: Add Apple GMUX brightness control detection")
    Reported-and-tested-by: default avatarAditya Garg <gargaditya08@live.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    3cf3b7f0
video_detect.c 21.5 KB