forked from rubenslte/android_kernel_samsung_msm8226
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:
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user