summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/main.c
diff options
context:
space:
mode:
authorMichael Buesch2008-05-20 00:24:36 +0200
committerJohn W. Linville2008-05-22 03:48:17 +0200
commit53c068566dde708cb28a4dfc06ae3d7fd7434397 (patch)
treea724356bc3f1b00eb352d6055816901607038944 /drivers/net/wireless/b43/main.c
parentb43: Add panic reason code that doesn't trigger restart (diff)
downloadkernel-qcow2-linux-53c068566dde708cb28a4dfc06ae3d7fd7434397.tar.gz
kernel-qcow2-linux-53c068566dde708cb28a4dfc06ae3d7fd7434397.tar.xz
kernel-qcow2-linux-53c068566dde708cb28a4dfc06ae3d7fd7434397.zip
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.c13
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)
static void handle_irq_ucode_debug(struct b43_wldev *dev)
{
unsigned int i, cnt;
- u16 reason;
+ u16 reason, marker_id, marker_line;
__le16 *buf;
/* The proprietary firmware doesn't have this IRQ. */
@@ -1737,6 +1737,17 @@ static void handle_irq_ucode_debug(struct b43_wldev *dev)
}
printk("\n");
break;
+ case B43_DEBUGIRQ_MARKER:
+ if (!B43_DEBUG)
+ break; /* Only with driver debugging enabled. */
+ marker_id = b43_shm_read16(dev, B43_SHM_SCRATCH,
+ B43_MARKER_ID_REG);
+ marker_line = b43_shm_read16(dev, B43_SHM_SCRATCH,
+ B43_MARKER_LINE_REG);
+ b43info(dev->wl, "The firmware just executed the MARKER(%u) "
+ "at line number %u\n",
+ marker_id, marker_line);
+ break;
default:
b43dbg(dev->wl, "Debug-IRQ triggered for unknown reason: %u\n",
reason);