RE: [PATCH v3] usb: dwc3: Fix assignment of EP transfer resources

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi John


>Fixes: aebda6187181 ("usb: dwc3: Reset the transfer resource index on SET_INTERFACE")
>Cc: <stable@xxxxxxxxxxxxxxx> # v3.2+
>Reported-by: Ravi Babu <ravibabu@xxxxxx>
>Signed-off-by: John Youn <johnyoun@xxxxxxxxxxxx>
>---

>Hi Ravi,

>Could you verify that it works with your test scenario?

Yes, it is working fine for me. 

>Thanks,
>John

>+static int dwc3_gadget_set_xfer_resource(struct dwc3 *dwc, struct dwc3_ep *dep);
>+
>+/**
>+ * dwc3_gadget_start_config - Configure EP resources
>+ * @dwc: pointer to our controller context structure
>+ * @dep: endpoint that is being enabled
>+ *
>+ * The assignment of transfer resources cannot perfectly follow the
>+ * data book due to the fact that the controller driver does not have
>+ * all knowledge of the configuration in advance. It is given this
>+ * information piecemeal by the composite gadget framework after every
>+ * SET_CONFIGURATION and SET_INTERFACE. Trying to follow the databook
>+ * programming model in this scenario can cause errors. For two
>+ * reasons:
>+ *
>+ * 1) The databook says to do DEPSTARTCFG for every SET_CONFIGURATION
>+ * and SET_INTERFACE (8.1.5). This is incorrect in the scenario of
>+ * multiple interfaces.
>+ *
>+ * 2) The databook does not mention doing more DEPXFERCFG for new
>+ * endpoint on alt setting (8.1.6).
>+ *
>+ * The following simplified method is used instead:
>+ *
>+ * All hardware endpoints can be assigned a transfer resource and this
>+ * setting will stay persistent until either a core reset or
>+ * hibernation. So whenever we do a DEPSTARTCFG(0) we can go ahead and
>+ * do DEPXFERCFG for every hardware endpoint as well. We are
>+ * guaranteed that there are as many transfer resources as endpoints.
>+ *

The databook says the resource is released after transfer completion event on ep,  in this case whether resource
is still valid which was pre-allocated to all eps during initial setup? 
If the core is designed to reuse of unused ep's resources, whether is there any performance impact by core
due resource pre-allocated for eps ?
Please confirm with IP folks as well.

>+ * This function is called for each endpoint when it is being enabled
>+ * but is triggered only when called for EP0-out, which always happens
>+ * first, and which should only happen in one of the above conditions.
>+ */
 

Regards
Ravi 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux