Commit e55f6739 authored by Fabian Vogt's avatar Fabian Vogt Committed by Greg Kroah-Hartman
Browse files

fotg210-udc: Add missing completion handler



This is used when responding to GET_STATUS requests. Without this, it
crashes on completion.

Fixes: b84a8dee ("usb: gadget: add Faraday fotg210_udc driver")
Signed-off-by: default avatarFabian Vogt <fabian@ritter-vogt.de>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20230123073508.2350402-2-linus.walleij@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4ba2e7cd
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -709,6 +709,20 @@ static int fotg210_is_epnstall(struct fotg210_ep *ep)
	return value & INOUTEPMPSR_STL_EP ? 1 : 0;
}

/* For EP0 requests triggered by this driver (currently GET_STATUS response) */
static void fotg210_ep0_complete(struct usb_ep *_ep, struct usb_request *req)
{
	struct fotg210_ep *ep;
	struct fotg210_udc *fotg210;

	ep = container_of(_ep, struct fotg210_ep, ep);
	fotg210 = ep->fotg210;

	if (req->status || req->actual != req->length) {
		dev_warn(&fotg210->gadget.dev, "EP0 request failed: %d\n", req->status);
	}
}

static void fotg210_get_status(struct fotg210_udc *fotg210,
				struct usb_ctrlrequest *ctrl)
{
@@ -1253,6 +1267,8 @@ int fotg210_udc_probe(struct platform_device *pdev, struct fotg210 *fotg)
	if (fotg210->ep0_req == NULL)
		goto err_map;

	fotg210->ep0_req->complete = fotg210_ep0_complete;

	fotg210_init(fotg210);

	fotg210_disable_unplug(fotg210);