Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'usb-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus

Peter writes:

Some small bug fixes for both chipidea and cdns USB

* tag 'usb-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb:
usb: chipidea: udc: assign interrupt number to USB gadget structure
usb: cdnsp: Fix lack of removing request from pending list.
usb: cdns3: Fix runtime PM imbalance on error

+11 -8
+3 -1
drivers/usb/cdns3/cdns3-gadget.c
··· 3268 3268 pm_runtime_get_sync(cdns->dev); 3269 3269 3270 3270 ret = cdns3_gadget_start(cdns); 3271 - if (ret) 3271 + if (ret) { 3272 + pm_runtime_put_sync(cdns->dev); 3272 3273 return ret; 3274 + } 3273 3275 3274 3276 /* 3275 3277 * Because interrupt line can be shared with other components in
+7 -7
drivers/usb/cdns3/cdnsp-gadget.c
··· 422 422 int cdnsp_ep_dequeue(struct cdnsp_ep *pep, struct cdnsp_request *preq) 423 423 { 424 424 struct cdnsp_device *pdev = pep->pdev; 425 - int ret; 425 + int ret_stop = 0; 426 + int ret_rem; 426 427 427 428 trace_cdnsp_request_dequeue(preq); 428 429 429 - if (GET_EP_CTX_STATE(pep->out_ctx) == EP_STATE_RUNNING) { 430 - ret = cdnsp_cmd_stop_ep(pdev, pep); 431 - if (ret) 432 - return ret; 433 - } 430 + if (GET_EP_CTX_STATE(pep->out_ctx) == EP_STATE_RUNNING) 431 + ret_stop = cdnsp_cmd_stop_ep(pdev, pep); 434 432 435 - return cdnsp_remove_request(pdev, preq, pep); 433 + ret_rem = cdnsp_remove_request(pdev, preq, pep); 434 + 435 + return ret_rem ? ret_rem : ret_stop; 436 436 } 437 437 438 438 static void cdnsp_zero_in_ctx(struct cdnsp_device *pdev)
+1
drivers/usb/chipidea/udc.c
··· 2061 2061 ci->gadget.name = ci->platdata->name; 2062 2062 ci->gadget.otg_caps = otg_caps; 2063 2063 ci->gadget.sg_supported = 1; 2064 + ci->gadget.irq = ci->irq; 2064 2065 2065 2066 if (ci->platdata->flags & CI_HDRC_REQUIRES_ALIGNED_DMA) 2066 2067 ci->gadget.quirk_avoids_skb_reserve = 1;