aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/txrx.c
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2012-04-18 23:08:28 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-23 15:34:08 -0400
commit4daffe3543667419294b6f22901b7255cbdebdf4 (patch)
tree882fa2380a6f76660206b376e8110b1b76b55d34 /drivers/net/wireless/mwifiex/txrx.c
parentaee286c2cf94929f90d4d1f64ee9b316007ba284 (diff)
mwifiex: add support for Marvell USB8797 chipset
This patch supports Avastar 88W8797 chipset with USB interface. The corresponding firmware image file is located at: "mrvl/usb8797_uapsta.bin" Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Kiran Divekar <dkiran@marvell.com> Signed-off-by: Frank Huang <frankh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/txrx.c')
-rw-r--r--drivers/net/wireless/mwifiex/txrx.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/drivers/net/wireless/mwifiex/txrx.c b/drivers/net/wireless/mwifiex/txrx.c
index d2af8cb98541..e2faec4db108 100644
--- a/drivers/net/wireless/mwifiex/txrx.c
+++ b/drivers/net/wireless/mwifiex/txrx.c
@@ -77,12 +77,23 @@ int mwifiex_process_tx(struct mwifiex_private *priv, struct sk_buff *skb,
77 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) 77 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA)
78 local_tx_pd = 78 local_tx_pd =
79 (struct txpd *) (head_ptr + INTF_HEADER_LEN); 79 (struct txpd *) (head_ptr + INTF_HEADER_LEN);
80 80 if (adapter->iface_type == MWIFIEX_USB) {
81 ret = adapter->if_ops.host_to_card(adapter, MWIFIEX_TYPE_DATA, 81 adapter->data_sent = true;
82 skb, tx_param); 82 skb_pull(skb, INTF_HEADER_LEN);
83 ret = adapter->if_ops.host_to_card(adapter,
84 MWIFIEX_USB_EP_DATA,
85 skb, NULL);
86 } else {
87 ret = adapter->if_ops.host_to_card(adapter,
88 MWIFIEX_TYPE_DATA,
89 skb, tx_param);
90 }
83 } 91 }
84 92
85 switch (ret) { 93 switch (ret) {
94 case -ENOSR:
95 dev_err(adapter->dev, "data: -ENOSR is returned\n");
96 break;
86 case -EBUSY: 97 case -EBUSY:
87 if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) && 98 if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) &&
88 (adapter->pps_uapsd_mode) && (adapter->tx_lock_flag)) { 99 (adapter->pps_uapsd_mode) && (adapter->tx_lock_flag)) {
@@ -135,6 +146,9 @@ int mwifiex_write_data_complete(struct mwifiex_adapter *adapter,
135 if (!priv) 146 if (!priv)
136 goto done; 147 goto done;
137 148
149 if (adapter->iface_type == MWIFIEX_USB)
150 adapter->data_sent = false;
151
138 mwifiex_set_trans_start(priv->netdev); 152 mwifiex_set_trans_start(priv->netdev);
139 if (!status) { 153 if (!status) {
140 priv->stats.tx_packets++; 154 priv->stats.tx_packets++;
@@ -162,4 +176,5 @@ done:
162 176
163 return 0; 177 return 0;
164} 178}
179EXPORT_SYMBOL_GPL(mwifiex_write_data_complete);
165 180