aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath6kl/debug.h2
-rw-r--r--drivers/net/wireless/ath/ath6kl/hif-ops.h18
-rw-r--r--drivers/net/wireless/ath/ath6kl/hif.c17
3 files changed, 27 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/debug.h b/drivers/net/wireless/ath/ath6kl/debug.h
index 01f4015071ec..cbabc25699ec 100644
--- a/drivers/net/wireless/ath/ath6kl/debug.h
+++ b/drivers/net/wireless/ath/ath6kl/debug.h
@@ -26,7 +26,7 @@ enum ATH6K_DEBUG_MASK {
26 ATH6KL_DBG_WLAN_RX = BIT(3), /* wlan rx */ 26 ATH6KL_DBG_WLAN_RX = BIT(3), /* wlan rx */
27 ATH6KL_DBG_BMI = BIT(4), /* bmi tracing */ 27 ATH6KL_DBG_BMI = BIT(4), /* bmi tracing */
28 ATH6KL_DBG_HTC = BIT(5), 28 ATH6KL_DBG_HTC = BIT(5),
29 /* hole */ 29 ATH6KL_DBG_HIF = BIT(6),
30 ATH6KL_DBG_IRQ = BIT(7), /* interrupt processing */ 30 ATH6KL_DBG_IRQ = BIT(7), /* interrupt processing */
31 ATH6KL_DBG_PM = BIT(8), /* power management */ 31 ATH6KL_DBG_PM = BIT(8), /* power management */
32 ATH6KL_DBG_WLAN_NODE = BIT(9), /* general wlan node tracing */ 32 ATH6KL_DBG_WLAN_NODE = BIT(9), /* general wlan node tracing */
diff --git a/drivers/net/wireless/ath/ath6kl/hif-ops.h b/drivers/net/wireless/ath/ath6kl/hif-ops.h
index 21b1575dd9f3..95e73030a2c6 100644
--- a/drivers/net/wireless/ath/ath6kl/hif-ops.h
+++ b/drivers/net/wireless/ath/ath6kl/hif-ops.h
@@ -18,10 +18,16 @@
18#define HIF_OPS_H 18#define HIF_OPS_H
19 19
20#include "hif.h" 20#include "hif.h"
21#include "debug.h"
21 22
22static inline int hif_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf, 23static inline int hif_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
23 u32 len, u32 request) 24 u32 len, u32 request)
24{ 25{
26 ath6kl_dbg(ATH6KL_DBG_HIF,
27 "hif %s sync addr 0x%x buf 0x%p len %d request 0x%x\n",
28 (request & HIF_WRITE) ? "write" : "read",
29 addr, buf, len, request);
30
25 return ar->hif_ops->read_write_sync(ar, addr, buf, len, request); 31 return ar->hif_ops->read_write_sync(ar, addr, buf, len, request);
26} 32}
27 33
@@ -29,16 +35,24 @@ static inline int hif_write_async(struct ath6kl *ar, u32 address, u8 *buffer,
29 u32 length, u32 request, 35 u32 length, u32 request,
30 struct htc_packet *packet) 36 struct htc_packet *packet)
31{ 37{
38 ath6kl_dbg(ATH6KL_DBG_HIF,
39 "hif write async addr 0x%x buf 0x%p len %d request 0x%x\n",
40 address, buffer, length, request);
41
32 return ar->hif_ops->write_async(ar, address, buffer, length, 42 return ar->hif_ops->write_async(ar, address, buffer, length,
33 request, packet); 43 request, packet);
34} 44}
35static inline void ath6kl_hif_irq_enable(struct ath6kl *ar) 45static inline void ath6kl_hif_irq_enable(struct ath6kl *ar)
36{ 46{
47 ath6kl_dbg(ATH6KL_DBG_HIF, "hif irq enable\n");
48
37 return ar->hif_ops->irq_enable(ar); 49 return ar->hif_ops->irq_enable(ar);
38} 50}
39 51
40static inline void ath6kl_hif_irq_disable(struct ath6kl *ar) 52static inline void ath6kl_hif_irq_disable(struct ath6kl *ar)
41{ 53{
54 ath6kl_dbg(ATH6KL_DBG_HIF, "hif irq disable\n");
55
42 return ar->hif_ops->irq_disable(ar); 56 return ar->hif_ops->irq_disable(ar);
43} 57}
44 58
@@ -71,11 +85,15 @@ static inline void ath6kl_hif_cleanup_scatter(struct ath6kl *ar)
71 85
72static inline int ath6kl_hif_suspend(struct ath6kl *ar) 86static inline int ath6kl_hif_suspend(struct ath6kl *ar)
73{ 87{
88 ath6kl_dbg(ATH6KL_DBG_HIF, "hif suspend\n");
89
74 return ar->hif_ops->suspend(ar); 90 return ar->hif_ops->suspend(ar);
75} 91}
76 92
77static inline int ath6kl_hif_resume(struct ath6kl *ar) 93static inline int ath6kl_hif_resume(struct ath6kl *ar)
78{ 94{
95 ath6kl_dbg(ATH6KL_DBG_HIF, "hif resume\n");
96
79 return ar->hif_ops->resume(ar); 97 return ar->hif_ops->resume(ar);
80} 98}
81#endif 99#endif
diff --git a/drivers/net/wireless/ath/ath6kl/hif.c b/drivers/net/wireless/ath/ath6kl/hif.c
index 7cc6cec1c077..e2d808896b7f 100644
--- a/drivers/net/wireless/ath/ath6kl/hif.c
+++ b/drivers/net/wireless/ath/ath6kl/hif.c
@@ -51,8 +51,7 @@ int ath6kl_hif_rw_comp_handler(void *context, int status)
51{ 51{
52 struct htc_packet *packet = context; 52 struct htc_packet *packet = context;
53 53
54 ath6kl_dbg(ATH6KL_DBG_HTC, 54 ath6kl_dbg(ATH6KL_DBG_HIF, "hif rw completion pkt 0x%p status %d\n",
55 "ath6kl_hif_rw_comp_handler (pkt:0x%p , status: %d\n",
56 packet, status); 55 packet, status);
57 56
58 packet->status = status; 57 packet->status = status;
@@ -119,7 +118,7 @@ int ath6kl_hif_poll_mboxmsg_rx(struct ath6kl_device *dev, u32 *lk_ahd,
119 118
120 /* delay a little */ 119 /* delay a little */
121 mdelay(ATH6KL_TIME_QUANTUM); 120 mdelay(ATH6KL_TIME_QUANTUM);
122 ath6kl_dbg(ATH6KL_DBG_HTC, "retry mbox poll : %d\n", i); 121 ath6kl_dbg(ATH6KL_DBG_HIF, "hif retry mbox poll try %d\n", i);
123 } 122 }
124 123
125 if (i == 0) { 124 if (i == 0) {
@@ -147,6 +146,9 @@ int ath6kl_hif_rx_control(struct ath6kl_device *dev, bool enable_rx)
147 struct ath6kl_irq_enable_reg regs; 146 struct ath6kl_irq_enable_reg regs;
148 int status = 0; 147 int status = 0;
149 148
149 ath6kl_dbg(ATH6KL_DBG_HIF, "hif rx %s\n",
150 enable_rx ? "enable" : "disable");
151
150 /* take the lock to protect interrupt enable shadows */ 152 /* take the lock to protect interrupt enable shadows */
151 spin_lock_bh(&dev->lock); 153 spin_lock_bh(&dev->lock);
152 154
@@ -186,8 +188,8 @@ int ath6kl_hif_submit_scat_req(struct ath6kl_device *dev,
186 dev->ar->mbox_info.htc_addr; 188 dev->ar->mbox_info.htc_addr;
187 } 189 }
188 190
189 ath6kl_dbg(ATH6KL_DBG_HTC, 191 ath6kl_dbg(ATH6KL_DBG_HIF,
190 "ath6kl_hif_submit_scat_req, entries: %d, total len: %d mbox:0x%X (mode: %s : %s)\n", 192 "hif submit scatter request entries %d len %d mbox 0x%x %s %s\n",
191 scat_req->scat_entries, scat_req->len, 193 scat_req->scat_entries, scat_req->len,
192 scat_req->addr, !read ? "async" : "sync", 194 scat_req->addr, !read ? "async" : "sync",
193 (read) ? "rd" : "wr"); 195 (read) ? "rd" : "wr");
@@ -629,12 +631,9 @@ int ath6kl_hif_setup(struct ath6kl_device *dev)
629 /* assemble mask, used for padding to a block */ 631 /* assemble mask, used for padding to a block */
630 dev->htc_cnxt->block_mask = dev->htc_cnxt->block_sz - 1; 632 dev->htc_cnxt->block_mask = dev->htc_cnxt->block_sz - 1;
631 633
632 ath6kl_dbg(ATH6KL_DBG_TRC, "block size: %d, mbox addr:0x%X\n", 634 ath6kl_dbg(ATH6KL_DBG_HIF, "hif block size %d mbox addr 0x%x\n",
633 dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr); 635 dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr);
634 636
635 ath6kl_dbg(ATH6KL_DBG_TRC,
636 "hif interrupt processing is sync only\n");
637
638 status = ath6kl_hif_disable_intrs(dev); 637 status = ath6kl_hif_disable_intrs(dev);
639 638
640fail_setup: 639fail_setup: