hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/platform/x86/huawei-wmi.c
....@@ -86,6 +86,8 @@
8686 { KE_IGNORE, 0x293, { KEY_KBDILLUMTOGGLE } },
8787 { KE_IGNORE, 0x294, { KEY_KBDILLUMUP } },
8888 { KE_IGNORE, 0x295, { KEY_KBDILLUMUP } },
89
+ // Ignore Ambient Light Sensoring
90
+ { KE_KEY, 0x2c1, { KEY_RESERVED } },
8991 { KE_END, 0 }
9092 };
9193
....@@ -760,6 +762,9 @@
760762 const char *guid,
761763 struct input_dev **idev)
762764 {
765
+ acpi_status status;
766
+ int err;
767
+
763768 *idev = devm_input_allocate_device(dev);
764769 if (!*idev)
765770 return -ENOMEM;
....@@ -769,10 +774,19 @@
769774 (*idev)->id.bustype = BUS_HOST;
770775 (*idev)->dev.parent = dev;
771776
772
- return sparse_keymap_setup(*idev, huawei_wmi_keymap, NULL) ||
773
- input_register_device(*idev) ||
774
- wmi_install_notify_handler(guid, huawei_wmi_input_notify,
775
- *idev);
777
+ err = sparse_keymap_setup(*idev, huawei_wmi_keymap, NULL);
778
+ if (err)
779
+ return err;
780
+
781
+ err = input_register_device(*idev);
782
+ if (err)
783
+ return err;
784
+
785
+ status = wmi_install_notify_handler(guid, huawei_wmi_input_notify, *idev);
786
+ if (ACPI_FAILURE(status))
787
+ return -EIO;
788
+
789
+ return 0;
776790 }
777791
778792 static void huawei_wmi_input_exit(struct device *dev, const char *guid)