mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
Revert "USB: gadget: u_ether: Fix data stall issue in RNDIS tethering mode"
This reverts commit 78281f6ed7.
This data stall fix is no longer required in AOSP. It is already
skipped in android-4.9 patchset. Also core change from this
data stall fix is already undone by android-4.4 merge commit
324e88de4aba ("Merge tag 'v4.4.32' into android-4.4.y").
This revert patch just clean up the left overs. It also reverts the
compile fix from Change-Id: I38c4f4a850b0329fb4a06b2c7e45558e16d66151
40ceb2c69964 ("usb: gadget: Fix compilation problem with tx_qlen field").
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
This commit is contained in:
parent
da83daedc8
commit
758b6055e2
|
|
@ -66,7 +66,7 @@ struct eth_dev {
|
|||
|
||||
spinlock_t req_lock; /* guard {rx,tx}_reqs */
|
||||
struct list_head tx_reqs, rx_reqs;
|
||||
unsigned tx_qlen;
|
||||
atomic_t tx_qlen;
|
||||
/* Minimum number of TX USB request queued to UDC */
|
||||
#define TX_REQ_THRESHOLD 5
|
||||
int no_tx_req_used;
|
||||
|
|
@ -568,6 +568,7 @@ static void tx_complete(struct usb_ep *ep, struct usb_request *req)
|
|||
dev_kfree_skb_any(skb);
|
||||
}
|
||||
|
||||
atomic_dec(&dev->tx_qlen);
|
||||
if (netif_carrier_ok(dev->net))
|
||||
netif_wake_queue(dev->net);
|
||||
}
|
||||
|
|
@ -741,20 +742,13 @@ static netdev_tx_t eth_start_xmit(struct sk_buff *skb,
|
|||
|
||||
req->length = length;
|
||||
|
||||
/* throttle highspeed IRQ rate back slightly */
|
||||
if (gadget_is_dualspeed(dev->gadget) &&
|
||||
(dev->gadget->speed == USB_SPEED_HIGH) &&
|
||||
!list_empty(&dev->tx_reqs)) {
|
||||
dev->tx_qlen++;
|
||||
if (dev->tx_qlen == (dev->qmult/2)) {
|
||||
req->no_interrupt = 0;
|
||||
dev->tx_qlen = 0;
|
||||
} else {
|
||||
req->no_interrupt = 1;
|
||||
}
|
||||
} else {
|
||||
req->no_interrupt = 0;
|
||||
}
|
||||
/* throttle high/super speed IRQ rate back slightly */
|
||||
if (gadget_is_dualspeed(dev->gadget))
|
||||
req->no_interrupt = (((dev->gadget->speed == USB_SPEED_HIGH ||
|
||||
dev->gadget->speed == USB_SPEED_SUPER)) &&
|
||||
!list_empty(&dev->tx_reqs))
|
||||
? ((atomic_read(&dev->tx_qlen) % dev->qmult) != 0)
|
||||
: 0;
|
||||
|
||||
retval = usb_ep_queue(in, req, GFP_ATOMIC);
|
||||
switch (retval) {
|
||||
|
|
@ -763,6 +757,7 @@ static netdev_tx_t eth_start_xmit(struct sk_buff *skb,
|
|||
break;
|
||||
case 0:
|
||||
net->trans_start = jiffies;
|
||||
atomic_inc(&dev->tx_qlen);
|
||||
}
|
||||
|
||||
if (retval) {
|
||||
|
|
@ -791,7 +786,7 @@ static void eth_start(struct eth_dev *dev, gfp_t gfp_flags)
|
|||
rx_fill(dev, gfp_flags);
|
||||
|
||||
/* and open the tx floodgates */
|
||||
dev->tx_qlen = 0;
|
||||
atomic_set(&dev->tx_qlen, 0);
|
||||
netif_wake_queue(dev->net);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user