lkml.org 
[lkml]   [2023]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v3 2/2] usb: gadget: udc: Handle gadget_connect failure during bind operation
    From
    Date
    Hello!

    On 5/10/23 10:52 AM, Krishna Kurapati wrote:

    > In the event, gadget_connect call (which invokes pullup) fails,
    > propagate the error to udc bind operation which inturn sends the
    > error to configfs. The userspace can then retry enumeartion if
    > it chooses to.
    >
    > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
    > Acked-by: Alan Stern <stern@rowland.harvard.edu>
    > ---
    > changes in v3: Rebase on top of usb-next
    >
    > drivers/usb/gadget/udc/core.c | 21 +++++++++++++++++----
    > 1 file changed, 17 insertions(+), 4 deletions(-)
    >
    > diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
    > index 4641153e9706..69041cca5d24 100644
    > --- a/drivers/usb/gadget/udc/core.c
    > +++ b/drivers/usb/gadget/udc/core.c
    > @@ -1122,12 +1122,16 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state);
    > /* ------------------------------------------------------------------------- */
    >
    > /* Acquire connect_lock before calling this function. */
    > -static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock)
    > +static int usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock)
    > {
    > + int ret;
    > +
    > if (udc->vbus && udc->started)
    > - usb_gadget_connect_locked(udc->gadget);
    > + ret = usb_gadget_connect_locked(udc->gadget);

    Why not just:

    return usb_gadget_connect_locked(udc->gadget)

    > else
    > - usb_gadget_disconnect_locked(udc->gadget);
    > + ret = usb_gadget_disconnect_locked(udc->gadget);

    Likewise here?

    > +
    > + return ret;
    > }
    >
    > /**
    [...]

    MBR, Sergey

    \
     
     \ /
      Last update: 2023-05-10 11:32    [W:6.775 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site