diff for duplicates of <20181108173654.118f9e3e@donbot> diff --git a/a/1.txt b/N1/1.txt index 37dcd45..c7f98ce 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -43,6 +43,31 @@ I applied this patch to capture logging specifically around this scenario: -- >8 -- +diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c +index 220c0f9b89b0..3770b9d3b523 100644 +--- a/drivers/usb/dwc2/gadget.c ++++ b/drivers/usb/dwc2/gadget.c +@@ -2722,13 +2722,20 @@ static void dwc2_gadget_handle_ep_disabled(struct dwc2_hsotg_ep *hs_ep) + } + + do { ++ unsigned int target_frame = hs_ep->target_frame; ++ bool frame_overrun = hs_ep->frame_overrun; ++ + hs_req = get_ep_head(hs_ep); + if (hs_req) + dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, + -ENODATA); ++ + dwc2_gadget_incr_frame_num(hs_ep); + /* Update current frame number value. */ + hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg); ++ ++ dev_warn(hsotg->dev, "%s: expiring request frame_number=0x%04x target_frame=0x%04x overrun=%u\n", ++ __func__, hsotg->frame_number, target_frame, frame_overrun); + } while (dwc2_gadget_target_frame_elapsed(hs_ep)); + + dwc2_gadget_start_next_request(hs_ep); -- 8< -- and I captured this log (the first entry is a separate error and then @@ -78,29 +103,3 @@ figured out exactly why it's a problem. Regards, John - -diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c -index 220c0f9b89b0..3770b9d3b523 100644 ---- a/drivers/usb/dwc2/gadget.c -+++ b/drivers/usb/dwc2/gadget.c -@@ -2722,13 +2722,20 @@ static void dwc2_gadget_handle_ep_disabled(struct dwc2_hsotg_ep *hs_ep) - } - - do { -+ unsigned int target_frame = hs_ep->target_frame; -+ bool frame_overrun = hs_ep->frame_overrun; -+ - hs_req = get_ep_head(hs_ep); - if (hs_req) - dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, - -ENODATA); -+ - dwc2_gadget_incr_frame_num(hs_ep); - /* Update current frame number value. */ - hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg); -+ -+ dev_warn(hsotg->dev, "%s: expiring request frame_number=0x%04x target_frame=0x%04x overrun=%u\n", -+ __func__, hsotg->frame_number, target_frame, frame_overrun); - } while (dwc2_gadget_target_frame_elapsed(hs_ep)); - - dwc2_gadget_start_next_request(hs_ep); diff --git a/a/content_digest b/N1/content_digest index 67d9867..a0b8978 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,5 +1,7 @@ + "ref\020181023134355.29829-1-john@metanate.com\0" + "ref\0410670D7E743164D87FA6160E7907A56013A79E7CE@am04wembxa.internal.synopsys.com\0" "From\0John Keeping <john@metanate.com>\0" - "Subject\0usb: dwc2: gadget: fix ISOC frame overflow handling\0" + "Subject\0Re: [PATCH] usb: dwc2: gadget: fix ISOC frame overflow handling\0" "Date\0Thu, 8 Nov 2018 17:36:53 +0000\0" "To\0Minas Harutyunyan <minas.harutyunyan@synopsys.com>\0" "Cc\0Greg Kroah-Hartman <gregkh@linuxfoundation.org>" @@ -53,6 +55,31 @@ "scenario:\n" "\n" "-- >8 --\n" + "diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c\n" + "index 220c0f9b89b0..3770b9d3b523 100644\n" + "--- a/drivers/usb/dwc2/gadget.c\n" + "+++ b/drivers/usb/dwc2/gadget.c\n" + "@@ -2722,13 +2722,20 @@ static void dwc2_gadget_handle_ep_disabled(struct dwc2_hsotg_ep *hs_ep)\n" + " }\n" + " \n" + " do {\n" + "+ unsigned int target_frame = hs_ep->target_frame;\n" + "+ bool frame_overrun = hs_ep->frame_overrun;\n" + "+\n" + " hs_req = get_ep_head(hs_ep);\n" + " if (hs_req)\n" + " dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req,\n" + " -ENODATA);\n" + "+\n" + " dwc2_gadget_incr_frame_num(hs_ep);\n" + " /* Update current frame number value. */\n" + " hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg);\n" + "+\n" + "+ dev_warn(hsotg->dev, \"%s: expiring request frame_number=0x%04x target_frame=0x%04x overrun=%u\\n\",\n" + "+ __func__, hsotg->frame_number, target_frame, frame_overrun);\n" + " } while (dwc2_gadget_target_frame_elapsed(hs_ep));\n" + " \n" + " dwc2_gadget_start_next_request(hs_ep);\n" "-- 8< --\n" "\n" "and I captured this log (the first entry is a separate error and then\n" @@ -87,32 +114,6 @@ "\n" "\n" "Regards,\n" - "John\n" - "\n" - "diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c\n" - "index 220c0f9b89b0..3770b9d3b523 100644\n" - "--- a/drivers/usb/dwc2/gadget.c\n" - "+++ b/drivers/usb/dwc2/gadget.c\n" - "@@ -2722,13 +2722,20 @@ static void dwc2_gadget_handle_ep_disabled(struct dwc2_hsotg_ep *hs_ep)\n" - " }\n" - " \n" - " do {\n" - "+ unsigned int target_frame = hs_ep->target_frame;\n" - "+ bool frame_overrun = hs_ep->frame_overrun;\n" - "+\n" - " hs_req = get_ep_head(hs_ep);\n" - " if (hs_req)\n" - " dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req,\n" - " -ENODATA);\n" - "+\n" - " dwc2_gadget_incr_frame_num(hs_ep);\n" - " /* Update current frame number value. */\n" - " hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg);\n" - "+\n" - "+ dev_warn(hsotg->dev, \"%s: expiring request frame_number=0x%04x target_frame=0x%04x overrun=%u\\n\",\n" - "+ __func__, hsotg->frame_number, target_frame, frame_overrun);\n" - " } while (dwc2_gadget_target_frame_elapsed(hs_ep));\n" - " \n" - dwc2_gadget_start_next_request(hs_ep); + John -d709d2c65822fd5e7d2e07f410460e90c14f8176c35257d678f4658f314a5df4 +9b40390740232138f85203df4cf0840bf8a9a7bc2ae45f7be4898468f119f163
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.