aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorSeth Forshee <seth.forshee@canonical.com>2012-11-15 09:08:10 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-11-20 14:07:52 -0500
commite3c0d8a6f67f2ee22476e0ceb0ad22945840a5af (patch)
tree13ee89bc7c7c0d982fb56d28348df89a9f2b4720 /drivers/net
parentcdf4352f5c59ee5599579ea3bfa4d8972c3f72f1 (diff)
brcmsmac: Add tracepoint for macintstatus
Acked-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Tested-by: Daniel Wagner <wagi@monom.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.h20
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/main.c8
2 files changed, 24 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.h b/drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.h
index 96a962abc89a..2ef7580af679 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.h
+++ b/drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.h
@@ -85,6 +85,26 @@ TRACE_EVENT(brcms_dpc,
85 ) 85 )
86); 86);
87 87
88TRACE_EVENT(brcms_macintstatus,
89 TP_PROTO(const struct device *dev, int in_isr, u32 macintstatus,
90 u32 mask),
91 TP_ARGS(dev, in_isr, macintstatus, mask),
92 TP_STRUCT__entry(
93 __string(dev, dev_name(dev))
94 __field(int, in_isr)
95 __field(u32, macintstatus)
96 __field(u32, mask)
97 ),
98 TP_fast_assign(
99 __assign_str(dev, dev_name(dev));
100 __entry->in_isr = in_isr;
101 __entry->macintstatus = macintstatus;
102 __entry->mask = mask;
103 ),
104 TP_printk("[%s] in_isr=%d macintstatus=%#x mask=%#x", __get_str(dev),
105 __entry->in_isr, __entry->macintstatus, __entry->mask)
106);
107
88#undef TRACE_SYSTEM 108#undef TRACE_SYSTEM
89#define TRACE_SYSTEM brcmsmac_tx 109#define TRACE_SYSTEM brcmsmac_tx
90 110
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
index 9480debef755..241bc2551235 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
@@ -2552,13 +2552,13 @@ static inline u32 wlc_intstatus(struct brcms_c_info *wlc, bool in_isr)
2552{ 2552{
2553 struct brcms_hardware *wlc_hw = wlc->hw; 2553 struct brcms_hardware *wlc_hw = wlc->hw;
2554 struct bcma_device *core = wlc_hw->d11core; 2554 struct bcma_device *core = wlc_hw->d11core;
2555 u32 macintstatus; 2555 u32 macintstatus, mask;
2556 2556
2557 /* macintstatus includes a DMA interrupt summary bit */ 2557 /* macintstatus includes a DMA interrupt summary bit */
2558 macintstatus = bcma_read32(core, D11REGOFFS(macintstatus)); 2558 macintstatus = bcma_read32(core, D11REGOFFS(macintstatus));
2559 mask = in_isr ? wlc->macintmask : wlc->defmacintmask;
2559 2560
2560 brcms_dbg_int(core, "wl%d: macintstatus: 0x%x\n", wlc_hw->unit, 2561 trace_brcms_macintstatus(&core->dev, in_isr, macintstatus, mask);
2561 macintstatus);
2562 2562
2563 /* detect cardbus removed, in power down(suspend) and in reset */ 2563 /* detect cardbus removed, in power down(suspend) and in reset */
2564 if (brcms_deviceremoved(wlc)) 2564 if (brcms_deviceremoved(wlc))
@@ -2571,7 +2571,7 @@ static inline u32 wlc_intstatus(struct brcms_c_info *wlc, bool in_isr)
2571 return 0; 2571 return 0;
2572 2572
2573 /* defer unsolicited interrupts */ 2573 /* defer unsolicited interrupts */
2574 macintstatus &= (in_isr ? wlc->macintmask : wlc->defmacintmask); 2574 macintstatus &= mask;
2575 2575
2576 /* if not for us */ 2576 /* if not for us */
2577 if (macintstatus == 0) 2577 if (macintstatus == 0)