diff options
author | Hans de Goede <hdegoede@redhat.com> | 2023-01-24 11:57:53 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2023-01-24 13:41:57 +0100 |
commit | d143908f80f3e5d164ac3342f73d6b9f536e8b4d (patch) | |
tree | be63d12ce28845dbab37c73cef99f6bb48632a57 /drivers/ssb/driver_chipcommon.c | |
parent | 39f5a81f7ad80eb3fbcbfd817c6552db9de5504d (diff) | |
download | linux-d143908f80f3e5d164ac3342f73d6b9f536e8b4d.tar.bz2 |
platform/x86: apple-gmux: Add apple_gmux_detect() helper
Add a new (static inline) apple_gmux_detect() helper to apple-gmux.h
which can be used for gmux detection instead of apple_gmux_present().
The latter is not really reliable since an ACPI device with a HID
of APP000B is present on some devices without a gmux at all, as well
as on devices with a newer (unsupported) MMIO based gmux model.
This causes apple_gmux_present() to return false-positives on
a number of different Apple laptop models.
This new helper uses the same probing as the actual apple-gmux
driver, so that it does not return false positives.
To avoid code duplication the gmux_probe() function of the actual
driver is also moved over to using the new apple_gmux_detect() helper.
This avoids false positives (vs _HID + IO region detection) on:
MacBookPro5,4
https://pastebin.com/8Xjq7RhS
MacBookPro8,1
https://linux-hardware.org/?probe=e513cfbadb&log=dmesg
MacBookPro9,2
https://bugzilla.kernel.org/attachment.cgi?id=278961
MacBookPro10,2
https://lkml.org/lkml/2014/9/22/657
MacBookPro11,2
https://forums.fedora-fr.org/viewtopic.php?id=70142
MacBookPro11,4
https://raw.githubusercontent.com/im-0/investigate-card-reader-suspend-problem-on-mbp11.4/master/test-16/dmesg
Fixes: 21245df307cb ("ACPI: video: Add Apple GMUX brightness control detection")
Link: https://lore.kernel.org/platform-driver-x86/20230123113750.462144-1-hdegoede@redhat.com/
Reported-by: Emmanouil Kouroupakis <kartebi@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20230124105754.62167-3-hdegoede@redhat.com
Diffstat (limited to 'drivers/ssb/driver_chipcommon.c')
0 files changed, 0 insertions, 0 deletions