HID: nintendo: deregister home LED when it fails
authorIcenowy Zheng <icenowy@aosc.io>
Fri, 15 Apr 2022 10:04:32 +0000 (18:04 +0800)
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>
Wed, 21 Sep 2022 08:48:23 +0000 (09:48 +0100)
Some Pro Controller compatible controllers do not support home LED, and
will fail when setting it. Currently this leads to probe failure.

Change the code that fails probing to deregistering home LED.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Reviewed-by: Daniel J. Ogorchock <djogorchock@gmail.com>
Reviewed-by: Silvan Jegen <s.jegen@gmail.com>
[bentiss: changed "dflt" to "default"]
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20220415100432.23453-1-icenowy@aosc.io
drivers/hid/hid-nintendo.c

index 6028af3c3aae54929f1fc354b0d7bc36ce9a4ebf..5cb5a1d53b7105d8b28c5e8d557571d02a231739 100644 (file)
@@ -1904,9 +1904,8 @@ static int joycon_leds_create(struct joycon_ctlr *ctlr)
                /* Set the home LED to 0 as default state */
                ret = joycon_home_led_brightness_set(led, 0);
                if (ret) {
-                       hid_err(hdev, "Failed to set home LED dflt; ret=%d\n",
-                                                                       ret);
-                       return ret;
+                       hid_warn(hdev, "Failed to set home LED default, unregistering home LED");
+                       devm_led_classdev_unregister(&hdev->dev, led);
                }
        }