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 6028af3..5cb5a1d 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);
                }
        }