diff options
author | Prameela Rani Garnepudi <prameela.j04cs@gmail.com> | 2018-02-28 10:38:28 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2018-03-13 19:42:26 +0300 |
commit | a1854fae1414dd8edfff4857fd26c3e355d43e19 (patch) | |
tree | 627c05f97886ff697a894cf08a3b55f1ce57028d /drivers/net/wireless/rsi/rsi_usb.h | |
parent | 8809f08cdc0b57765c190abe0853a394513f6d2f (diff) | |
download | linux-a1854fae1414dd8edfff4857fd26c3e355d43e19.tar.xz |
rsi: improve RX packet handling in USB interface
Curretly, RX packet processing is done sequencially. To improve
the efficiency, RX skb queue is introduced.
Here, while preparing RX URB skb is allocated and used
for RX buffer. When rx done handler is called, enqueue the skb
to rx_q and set the thread event.
RX thread is modified to dequeue packets from skb queue and
process further.
Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/rsi/rsi_usb.h')
-rw-r--r-- | drivers/net/wireless/rsi/rsi_usb.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/rsi/rsi_usb.h b/drivers/net/wireless/rsi/rsi_usb.h index 0fda14ce693e..a88d59295a98 100644 --- a/drivers/net/wireless/rsi/rsi_usb.h +++ b/drivers/net/wireless/rsi/rsi_usb.h @@ -42,12 +42,12 @@ struct rx_usb_ctrl_block { u8 *data; struct urb *rx_urb; - u8 *rx_buffer; + struct sk_buff *rx_skb; u8 ep_num; - u8 pend; }; struct rsi_91x_usbdev { + void *priv; struct rsi_thread rx_thread; u8 endpoint; struct usb_device *usbdev; @@ -60,6 +60,7 @@ struct rsi_91x_usbdev { u8 bulkout_endpoint_addr[MAX_BULK_EP]; u32 tx_blk_size; u8 write_fail; + struct sk_buff_head rx_q; }; static inline int rsi_usb_check_queue_status(struct rsi_hw *adapter, u8 q_num) |