On Tue, Jul 5, 2022 at 1:56 PM Michael Walle <michael@xxxxxxxx> wrote: > > Am 2022-07-05 20:53, schrieb Saravana Kannan: > > On Tue, Jul 5, 2022 at 6:19 AM Michael Walle <michael@xxxxxxxx> wrote: > >> > >> devm_gpiod_get_optional() might still return an error code, esp. > >> EPROBE_DEFER. Return any errors. > >> > >> Signed-off-by: Michael Walle <michael@xxxxxxxx> > >> --- > >> drivers/usb/gadget/udc/atmel_usba_udc.c | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c > >> b/drivers/usb/gadget/udc/atmel_usba_udc.c > >> index ae2bfbac603e..48355e0cee76 100644 > >> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c > >> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c > >> @@ -2165,6 +2165,8 @@ static struct usba_ep * atmel_udc_of_init(struct > >> platform_device *pdev, > >> > >> udc->vbus_pin = devm_gpiod_get_optional(&pdev->dev, > >> "atmel,vbus", > >> GPIOD_IN); > >> + if (IS_ERR(udc->vbus_pin)) > >> + return ERR_CAST(udc->vbus_pin); > > > > I'm confused. Is it really an optional resource if you treat a failure > > to get it > > as a reason to fail a probe? > > If the gpio isn't found NULL is returned. Ah, ok. -Saravana