mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 10:57:46 +00:00
b43: Add debugfs firmware debugging knob
This adds a firmware debugging knob to debugfs. With this knob it's possible to enable advanced runtime firmware checks. For now it only implements one sanity check for the mac-suspend. In future there'll probably be more. If CONFIG_B43_DEBUG is disabled, these checks will collapse to nothing. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
9b839a7453
commit
923fd7036f
3 changed files with 15 additions and 0 deletions
|
@ -801,6 +801,7 @@ static void b43_add_dynamic_debug(struct b43_wldev *dev)
|
||||||
add_dyn_dbg("debug_pwork_fast", B43_DBG_PWORK_FAST, 0);
|
add_dyn_dbg("debug_pwork_fast", B43_DBG_PWORK_FAST, 0);
|
||||||
add_dyn_dbg("debug_pwork_stop", B43_DBG_PWORK_STOP, 0);
|
add_dyn_dbg("debug_pwork_stop", B43_DBG_PWORK_STOP, 0);
|
||||||
add_dyn_dbg("debug_lo", B43_DBG_LO, 0);
|
add_dyn_dbg("debug_lo", B43_DBG_LO, 0);
|
||||||
|
add_dyn_dbg("debug_firmware", B43_DBG_FIRMWARE, 0);
|
||||||
|
|
||||||
#undef add_dyn_dbg
|
#undef add_dyn_dbg
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ enum b43_dyndbg { /* Dynamic debugging features */
|
||||||
B43_DBG_PWORK_FAST,
|
B43_DBG_PWORK_FAST,
|
||||||
B43_DBG_PWORK_STOP,
|
B43_DBG_PWORK_STOP,
|
||||||
B43_DBG_LO,
|
B43_DBG_LO,
|
||||||
|
B43_DBG_FIRMWARE,
|
||||||
__B43_NR_DYNDBG,
|
__B43_NR_DYNDBG,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2487,6 +2487,19 @@ static void b43_gpio_cleanup(struct b43_wldev *dev)
|
||||||
/* http://bcm-specs.sipsolutions.net/EnableMac */
|
/* http://bcm-specs.sipsolutions.net/EnableMac */
|
||||||
void b43_mac_enable(struct b43_wldev *dev)
|
void b43_mac_enable(struct b43_wldev *dev)
|
||||||
{
|
{
|
||||||
|
if (b43_debug(dev, B43_DBG_FIRMWARE)) {
|
||||||
|
u16 fwstate;
|
||||||
|
|
||||||
|
fwstate = b43_shm_read16(dev, B43_SHM_SHARED,
|
||||||
|
B43_SHM_SH_UCODESTAT);
|
||||||
|
if ((fwstate != B43_SHM_SH_UCODESTAT_SUSP) &&
|
||||||
|
(fwstate != B43_SHM_SH_UCODESTAT_SLEEP)) {
|
||||||
|
b43err(dev->wl, "b43_mac_enable(): The firmware "
|
||||||
|
"should be suspended, but current state is %u\n",
|
||||||
|
fwstate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dev->mac_suspended--;
|
dev->mac_suspended--;
|
||||||
B43_WARN_ON(dev->mac_suspended < 0);
|
B43_WARN_ON(dev->mac_suspended < 0);
|
||||||
if (dev->mac_suspended == 0) {
|
if (dev->mac_suspended == 0) {
|
||||||
|
|
Loading…
Reference in a new issue