Message ID | 20220415100432.23453-1-icenowy@aosc.io (mailing list archive) |
---|---|
State | Mainlined |
Commit | 8b30fb40f8f2c5e56b7af553a398340f92d17aae |
Delegated to: | Jiri Kosina |
Headers | show |
Series | HID: nintendo: deregister home LED when it fails | expand |
Hi Icenowy Zheng <icenowy@aosc.io> wrote: > 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: Silvan Jegen <s.jegen@gmail.com> I don't have a "Nintendo Pro Controller"-compatible controller to test with but I have compiled a Kernel with this patch applied and can confirm that the original Nintendo Pro Controller is still probed correctly with this patch applied. Cheers, Silvan
Any updates on this patch? Would like to see this upstream, so that my 8bitdo pro 2 controller can work in switch mode again.
On Fri, Apr 15, 2022 at 6:06 AM Icenowy Zheng <icenowy@aosc.io> wrote: > > 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> > --- > drivers/hid/hid-nintendo.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c > index 2204de889739..ed93287c3afc 100644 > --- a/drivers/hid/hid-nintendo.c > +++ b/drivers/hid/hid-nintendo.c > @@ -1900,9 +1900,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 dflt, unregistering home LED"); > + devm_led_classdev_unregister(&hdev->dev, led); > } > } > > -- > 2.35.1 > Reviewed-by: Daniel J. Ogorchock <djogorchock@gmail.com> Thanks for the patch. I haven't done any work to make the driver compatible with non-official nintendo controllers. I suppose there aren't many other options for controllers lacking full functionality other than disabling those functions during probe, as demonstrated here. -Daniel
On Apr 15 2022, Icenowy Zheng wrote: > 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> > --- > drivers/hid/hid-nintendo.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c > index 2204de889739..ed93287c3afc 100644 > --- a/drivers/hid/hid-nintendo.c > +++ b/drivers/hid/hid-nintendo.c > @@ -1900,9 +1900,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 dflt, unregistering home LED"); I have s/dflt/default/ and applied to for-6.1/nintendo in hid.git FWIW, I wondered really hard if we should or not clean up led->name that devm_kzalloc-ed just a few lines above, but in the end it doesn't add much to do it now instead of at remove time. Thanks for the patch and the reviews! Cheers, Benjamin > + devm_led_classdev_unregister(&hdev->dev, led); > } > } > > -- > 2.35.1 >
diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c index 2204de889739..ed93287c3afc 100644 --- a/drivers/hid/hid-nintendo.c +++ b/drivers/hid/hid-nintendo.c @@ -1900,9 +1900,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 dflt, unregistering home LED"); + devm_led_classdev_unregister(&hdev->dev, led); } }
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> --- drivers/hid/hid-nintendo.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)