• Hans de Goede's avatar
    acer-wmi: Switch to acpi_video_unregister_backlight · d1337415
    Hans de Goede authored
    Switch from acpi_video_unregister(), to acpi_video_unregister_backlight(),
    so that the hotkeys handler registered by acpi-video stays in place.
    
    Since there are no mappings for the atkbd raw codes for the brightness
    keys used by newer Acer models in /lib/udev/hwdb.d/60-keyboard.hwdb, and
    since we map the wmi events with a code of KE_IGNORE, we rely on acpi-video
    to do the hotkey handling for us.
    
    For laptops such as the Acer Aspire 5750 which uses intel gfx this works
    despite us calling acpi_video_unregister() because the following happens:
    
     1) acpi-video module gets loaded (as it is a dependency of acer-wmi and i915)
     2) acpi-video does NOT call acpi_video_register()
     3) acer-wmi loads (assume it loads before i915), calls
        acpi_video_dmi_promote_vendor(); which sets
        ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
     4) calls acpi_video_unregister -> not registered, nop
     5) i915 loads, calls acpi_video_register
     6) acpi_video_register registers the acpi_notifier for the hotkeys,
        does NOT register a backlight device because of
        ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
    
    But on the Acer Aspire 5750G, which uses nvidia graphics the following happens:
     1) acpi-video module gets loaded (as it is a dependency of acer-wmi)
     2) acpi-video calls acpi_video_register()
     3) acpi_video_register registers the acpi_notifier for the hotkeys,
        and a backlight device
     4) acer-wmi loads, calls acpi_video_dmi_promote_vendor()
     5) calls acpi_video_unregister, this unregisters BOTH the acpi_notifier for
        the hotkeys AND the backlight device
    
    And we end up without any handler for the brightness hotkeys. This patch fixes
    this by switching over to acpi_video_unregister_backlight() which keeps the
    hotkey handler in place.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=35622Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    d1337415
acer-wmi.c 53.3 KB