old mode 100644new mode 100755.. | .. |
---|
21 | 21 | |
---|
22 | 22 | int aicwf_bus_init(uint bus_hdrlen, struct device *dev) |
---|
23 | 23 | { |
---|
24 | | - int ret = 0; |
---|
| 24 | + int ret = -ENOMEM; |
---|
25 | 25 | struct aicwf_bus *bus_if; |
---|
26 | 26 | |
---|
27 | 27 | if (!dev) { |
---|
.. | .. |
---|
31 | 31 | bus_if = dev_get_drvdata(dev); |
---|
32 | 32 | bus_if->cmd_buf = kzalloc(CMD_BUF_MAX, GFP_KERNEL); |
---|
33 | 33 | if (!bus_if->cmd_buf) { |
---|
34 | | - ret = -ENOMEM; |
---|
35 | 34 | txrx_err("proto_attach failed\n"); |
---|
36 | 35 | goto fail; |
---|
37 | 36 | } |
---|
.. | .. |
---|
56 | 55 | goto fail; |
---|
57 | 56 | } |
---|
58 | 57 | |
---|
59 | | - return ret; |
---|
| 58 | + return 0; |
---|
60 | 59 | fail: |
---|
61 | 60 | aicwf_bus_deinit(dev); |
---|
62 | 61 | |
---|
.. | .. |
---|
72 | 71 | txrx_err("device not found\n"); |
---|
73 | 72 | return; |
---|
74 | 73 | } |
---|
75 | | - printk("%s", __func__); |
---|
76 | | - bus_if = dev_get_drvdata(dev); |
---|
| 74 | + sdio_dbg("%s", __func__); |
---|
| 75 | + bus_if = aicbsp_get_drvdata(dev); |
---|
77 | 76 | aicwf_bus_stop(bus_if); |
---|
78 | 77 | |
---|
79 | 78 | sdiodev = bus_if->bus_priv.sdio; |
---|
.. | .. |
---|
84 | 83 | } |
---|
85 | 84 | |
---|
86 | 85 | if (bus_if->bustx_thread) { |
---|
87 | | - complete(&bus_if->bustx_trgg); |
---|
| 86 | + complete_all(&bus_if->bustx_trgg); |
---|
88 | 87 | kthread_stop(bus_if->bustx_thread); |
---|
89 | 88 | bus_if->bustx_thread = NULL; |
---|
90 | 89 | } |
---|
91 | | - printk("exit %s\n", __func__); |
---|
92 | 90 | } |
---|
93 | 91 | |
---|
94 | 92 | void aicwf_frame_tx(void *dev, struct sk_buff *skb) |
---|
.. | .. |
---|
201 | 199 | else |
---|
202 | 200 | adjust_len = aggr_len; |
---|
203 | 201 | |
---|
204 | | - skb_inblock = __dev_alloc_skb(aggr_len+4, GFP_KERNEL); |
---|
205 | | - if (skb_inblock == NULL) { |
---|
206 | | - txrx_err("no more space!\n"); |
---|
207 | | - aicwf_dev_skb_free(skb); |
---|
208 | | - return -EBADE; |
---|
| 202 | + skb_inblock = __dev_alloc_skb(aggr_len+4, GFP_KERNEL); |
---|
| 203 | + if (skb_inblock == NULL) { |
---|
| 204 | + txrx_err("no more space!\n"); |
---|
| 205 | + aicwf_dev_skb_free(skb); |
---|
| 206 | + return -EBADE; |
---|
209 | 207 | } |
---|
210 | 208 | |
---|
211 | 209 | skb_put(skb_inblock, aggr_len+4); |
---|
212 | 210 | memcpy(skb_inblock->data, data, aggr_len+4); |
---|
213 | 211 | if ((*(skb_inblock->data + 2) & 0x7f) == SDIO_TYPE_CFG_CMD_RSP) |
---|
214 | 212 | rwnx_rx_handle_msg(rx_priv->sdiodev, (struct ipc_e2a_msg *)(skb_inblock->data + 4)); |
---|
215 | | - #if 0 |
---|
216 | | - if ((*(skb_inblock->data + 2) & 0x7f) == SDIO_TYPE_CFG_DATA_CFM) |
---|
217 | | - aicwf_sdio_host_tx_cfm_handler(&(rx_priv->sdiodev->rwnx_hw->sdio_env), (u32 *)(skb_inblock->data + 4)); |
---|
218 | | - #endif |
---|
219 | 213 | skb_pull(skb, adjust_len+4); |
---|
220 | 214 | } |
---|
221 | 215 | } |
---|
222 | 216 | |
---|
| 217 | + /* skb_inblock no used currently, just free it! */ |
---|
| 218 | + dev_kfree_skb(skb_inblock); |
---|
223 | 219 | dev_kfree_skb(skb); |
---|
224 | 220 | atomic_dec(&rx_priv->rx_cnt); |
---|
225 | 221 | } |
---|
.. | .. |
---|
288 | 284 | void aicwf_rx_deinit(struct aicwf_rx_priv *rx_priv) |
---|
289 | 285 | { |
---|
290 | 286 | if (rx_priv->sdiodev->bus_if->busrx_thread) { |
---|
291 | | - complete(&rx_priv->sdiodev->bus_if->busrx_trgg); |
---|
| 287 | + complete_all(&rx_priv->sdiodev->bus_if->busrx_trgg); |
---|
292 | 288 | kthread_stop(rx_priv->sdiodev->bus_if->busrx_thread); |
---|
293 | 289 | rx_priv->sdiodev->bus_if->busrx_thread = NULL; |
---|
294 | 290 | } |
---|