USB: dwc: Reduce TxFIFO of non burst Bulk In endpoint to 1K from 3K

Some portion of the DWC3 controller TxFIFOs memory(29K) is used for
storing QDSS BAM data and descriptors (21K).  When QDSS is present
in the configuration, 8K is only left for TxFIFOs.  QDSS data endpoint
(burst capable Bulk In) requires 3K TxFIFO for higher throughputs.
Reduce non-burst capable In endpoint TxFIFO from 3K to 1K which
allows DIAG and ADB interfaces to co-exist with QDSS in a configuration.

Change-Id: Id999b7253c0192013f937128cf2f0a2b61f2630b
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
This commit is contained in:
Vijayavardhan Vennapusa
2013-03-01 17:40:35 +05:30
parent da9dddf1fe
commit daf082ced4
+6 -4
View File
@@ -191,7 +191,8 @@ int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc)
* FIXME For now we will only allocate 1 wMaxPacketSize space
* for each enabled endpoint, later patches will come to
* improve this algorithm so that we better use the internal
* FIFO space
* FIFO space. Also consider the case where TxFIFO RAM space
* may change dynamically based on the USB configuration.
*/
for (num = 0; num < DWC3_ENDPOINTS_NUM; num++) {
struct dwc3_ep *dep = dwc->eps[num];
@@ -205,7 +206,8 @@ int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc)
if (!(dep->flags & DWC3_EP_ENABLED))
continue;
if (usb_endpoint_xfer_bulk(dep->endpoint.desc)
if (((dep->endpoint.maxburst > 1) &&
usb_endpoint_xfer_bulk(dep->endpoint.desc))
|| usb_endpoint_xfer_isoc(dep->endpoint.desc))
mult = 3;
@@ -215,8 +217,8 @@ int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc)
* Make sure that's true somehow and change FIFO allocation
* accordingly.
*
* If we have Bulk or Isochronous endpoints, we want
* them to be able to be very, very fast. So we're giving
* If we have Bulk (burst only) or Isochronous endpoints, we
* want them to be able to be very, very fast. So we're giving
* those endpoints a fifo_size which is enough for 3 full
* packets
*/