diff options
author | Michael Buesch <mb@bu3sch.de> | 2008-05-19 18:24:36 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-21 21:48:17 -0400 |
commit | 53c068566dde708cb28a4dfc06ae3d7fd7434397 (patch) | |
tree | a724356bc3f1b00eb352d6055816901607038944 /drivers/net/wireless/b43/main.c | |
parent | afa83e239af58a93eddd10a7a43ac5618884db15 (diff) |
b43: Add firmware markers support
This adds support for firmware markers.
With firmware markers it's easily possible to check whether the
firmware runs some codepath or not. The driver will throw a message
when the firmware executes a MARKER(x).
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/main.c')
-rw-r--r-- | drivers/net/wireless/b43/main.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index e1dfb4074676..cbb317bb3484 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -1689,7 +1689,7 @@ static void b43_handle_firmware_panic(struct b43_wldev *dev) | |||
1689 | static void handle_irq_ucode_debug(struct b43_wldev *dev) | 1689 | static void handle_irq_ucode_debug(struct b43_wldev *dev) |
1690 | { | 1690 | { |
1691 | unsigned int i, cnt; | 1691 | unsigned int i, cnt; |
1692 | u16 reason; | 1692 | u16 reason, marker_id, marker_line; |
1693 | __le16 *buf; | 1693 | __le16 *buf; |
1694 | 1694 | ||
1695 | /* The proprietary firmware doesn't have this IRQ. */ | 1695 | /* The proprietary firmware doesn't have this IRQ. */ |
@@ -1737,6 +1737,17 @@ static void handle_irq_ucode_debug(struct b43_wldev *dev) | |||
1737 | } | 1737 | } |
1738 | printk("\n"); | 1738 | printk("\n"); |
1739 | break; | 1739 | break; |
1740 | case B43_DEBUGIRQ_MARKER: | ||
1741 | if (!B43_DEBUG) | ||
1742 | break; /* Only with driver debugging enabled. */ | ||
1743 | marker_id = b43_shm_read16(dev, B43_SHM_SCRATCH, | ||
1744 | B43_MARKER_ID_REG); | ||
1745 | marker_line = b43_shm_read16(dev, B43_SHM_SCRATCH, | ||
1746 | B43_MARKER_LINE_REG); | ||
1747 | b43info(dev->wl, "The firmware just executed the MARKER(%u) " | ||
1748 | "at line number %u\n", | ||
1749 | marker_id, marker_line); | ||
1750 | break; | ||
1740 | default: | 1751 | default: |
1741 | b43dbg(dev->wl, "Debug-IRQ triggered for unknown reason: %u\n", | 1752 | b43dbg(dev->wl, "Debug-IRQ triggered for unknown reason: %u\n", |
1742 | reason); | 1753 | reason); |