summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/dwc_otg.h
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2015-07-28 07:30:07 +0000
committerhselasky <hselasky@FreeBSD.org>2015-07-28 07:30:07 +0000
commit8c9e4ed515459342b08d3cf313e7f84584f3375c (patch)
tree6afde489dc83c8ba653b8c5f2432f629e68409c6 /sys/dev/usb/controller/dwc_otg.h
parent45167e7aef77c4a883e69c3240cf66f6313bed84 (diff)
downloadFreeBSD-src-8c9e4ed515459342b08d3cf313e7f84584f3375c.zip
FreeBSD-src-8c9e4ed515459342b08d3cf313e7f84584f3375c.tar.gz
Optimise the DWC OTG host mode driver's receive path:
Remove NAKing limit and pause IN and OUT transactions for 125us in case of NAK response for BULK and CONTROL endpoints. This gets the receive latency down and improves USB network throughput at the cost of some CPU usage. MFC after: 1 month
Diffstat (limited to 'sys/dev/usb/controller/dwc_otg.h')
-rw-r--r--sys/dev/usb/controller/dwc_otg.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/usb/controller/dwc_otg.h b/sys/dev/usb/controller/dwc_otg.h
index 1ba0a5e..39c9529 100644
--- a/sys/dev/usb/controller/dwc_otg.h
+++ b/sys/dev/usb/controller/dwc_otg.h
@@ -37,7 +37,6 @@
#define DWC_OTG_TT_SLOT_MAX 8
#define DWC_OTG_SLOT_IDLE_MAX 3
#define DWC_OTG_SLOT_IDLE_MIN 2
-#define DWC_OTG_NAK_MAX 16 /* 16 NAKs = 2 ms */
#ifndef DWC_OTG_TX_MAX_FIFO_SIZE
#define DWC_OTG_TX_MAX_FIFO_SIZE DWC_OTG_MAX_TXN
#endif
@@ -68,7 +67,6 @@ struct dwc_otg_td {
uint8_t errcnt;
uint8_t tmr_res;
uint8_t tmr_val;
- uint8_t did_nak; /* NAK counter */
uint8_t ep_no;
uint8_t ep_type;
uint8_t channel;
@@ -93,6 +91,7 @@ struct dwc_otg_td {
uint8_t set_toggle:1;
uint8_t got_short:1;
uint8_t tt_scheduled:1;
+ uint8_t did_nak:1;
};
struct dwc_otg_tt_info {
OpenPOWER on IntegriCloud