Re: [RFT] Threaded IRQ handlers for b43
On Sunday 16 August 2009 15:39:57 Michael Buesch wrote: This request-for-test patch converts the b43 driver to use threaded interrupt handlers. This is needed to support b43 on SDIO. But it also simplifies the locking by removal of the wl-irq_lock spinlock. http://bu3sch.de/patches/wireless-testing/20090816-1535/patches/002-b43-threaded-irq-handler.patch A known regression is a new race between the interrupt handler and the beacon update handler. But as long as you don't run AP mode, it won't hurt. I'm working on a solution... Please test this patch whether it creates other regressions (performance and crashes). The patch also needs the following hack to the threaded IRQ code: http://bu3sch.de/patches/wireless-testing/20090816-1535/patches/001-hack-threaded-irqs.patch This is the correct fix for the threaded IRQ code. Apply this instead of the hack: http://bu3sch.de/patches/wireless-testing/20090817-1347/patches/001-fix-irq-thread-wakeup.patch -- Greetings, Michael. ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine
2009/8/14 Gábor Stefanik netrolller...@gmail.com: Check the mode the hardware is in, not the mode we used the last time. Signed-off-by: Gábor Stefanik netrolller...@gmail.com --- Mark, please test if this fixes the TX power control WARN_ON you were seeing. drivers/net/wireless/b43/phy_lp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c index 292ee51..76457f7 100644 --- a/drivers/net/wireless/b43/phy_lp.c +++ b/drivers/net/wireless/b43/phy_lp.c @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct b43_wldev *dev, struct b43_phy_lp *lpphy = dev-phy.lp; enum b43_lpphy_txpctl_mode oldmode; - oldmode = lpphy-txpctl_mode; lpphy_read_tx_pctl_mode_from_hardware(dev); - if (lpphy-txpctl_mode == mode) + oldmode = lpphy-txpctl_mode; + if (oldmode == mode) return; lpphy-txpctl_mode = mode; -- 1.6.2.4 John, any news on this one? I can't see it in wireless testing. -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: [PATCH] b43: LP-PHY: Fix setting TX power control mode during RC calibration
2009/8/17 John W. Linville linvi...@tuxdriver.com: On Mon, Aug 17, 2009 at 09:32:42PM +0200, Gábor Stefanik wrote: 2009/8/14 Gábor Stefanik netrolller...@gmail.com: Call set_tx_power_control with a LPPHY_TXPCTL rather than an LPPHY_TX_PWR_CTL_CMD_MODE. Signed-off-by: Gábor Stefanik netrolller...@gmail.com --- This should fix the WARN_ON testers were seeing during init. drivers/net/wireless/b43/phy_lp.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c index adfa7bf..558224b 100644 --- a/drivers/net/wireless/b43/phy_lp.c +++ b/drivers/net/wireless/b43/phy_lp.c @@ -1080,7 +1080,7 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev) old_txpctl = b43_phy_read(dev, B43_LPPHY_TX_PWR_CTL_CMD) B43_LPPHY_TX_PWR_CTL_CMD_MODE; - lpphy_set_tx_power_control(dev, B43_LPPHY_TX_PWR_CTL_CMD_MODE_OFF); + lpphy_set_tx_power_control(dev, B43_LPPHY_TXPCTL_OFF); lpphy_disable_crs(dev); loopback = lpphy_loopback(dev); if (loopback == -1) -- 1.6.2.4 John, any news on this one? I can't see it in wireless testing. Larry said: With this one, I still get WARNING: at drivers/net/wireless/b43/phy_lp.c:1006 lpphy_set_tx_power_control+0xbf/0xdd [b43](). Previously, he was getting 2 warnings. This fixes one of them, the other one is handled by commit 1181d724fc2897f11f95bf6ebc86ae111390929c (Fix another TX power control abuse). -- John W. Linville Someday the world will need a hero, and you linvi...@tuxdriver.com might be all we have. Be ready. -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine
2009/8/17 John W. Linville linvi...@tuxdriver.com: On Mon, Aug 17, 2009 at 09:33:06PM +0200, Gábor Stefanik wrote: 2009/8/14 Gábor Stefanik netrolller...@gmail.com: Check the mode the hardware is in, not the mode we used the last time. Signed-off-by: Gábor Stefanik netrolller...@gmail.com --- Mark, please test if this fixes the TX power control WARN_ON you were seeing. drivers/net/wireless/b43/phy_lp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c index 292ee51..76457f7 100644 --- a/drivers/net/wireless/b43/phy_lp.c +++ b/drivers/net/wireless/b43/phy_lp.c @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct b43_wldev *dev, struct b43_phy_lp *lpphy = dev-phy.lp; enum b43_lpphy_txpctl_mode oldmode; - oldmode = lpphy-txpctl_mode; lpphy_read_tx_pctl_mode_from_hardware(dev); - if (lpphy-txpctl_mode == mode) + oldmode = lpphy-txpctl_mode; + if (oldmode == mode) return; lpphy-txpctl_mode = mode; -- 1.6.2.4 John, any news on this one? I can't see it in wireless testing. Larry said It does not fix it here. I'll take a look at the specs... It did not fix the warning, but it is nevertheless a legitimate fix. (I found this bug when I was looking for the source of the WARN_ON - this is not the source of the WARN_ON, but still a bug.) -- John W. Linville Someday the world will need a hero, and you linvi...@tuxdriver.com might be all we have. Be ready. -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: [PATCH] b43: LP-PHY: Fix setting TX power control mode during RC calibration
Gábor Stefanik wrote: 2009/8/17 John W. Linville linvi...@tuxdriver.com: On Mon, Aug 17, 2009 at 09:32:42PM +0200, Gábor Stefanik wrote: 2009/8/14 Gábor Stefanik netrolller...@gmail.com: Call set_tx_power_control with a LPPHY_TXPCTL rather than an LPPHY_TX_PWR_CTL_CMD_MODE. Signed-off-by: Gábor Stefanik netrolller...@gmail.com --- This should fix the WARN_ON testers were seeing during init. drivers/net/wireless/b43/phy_lp.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c index adfa7bf..558224b 100644 --- a/drivers/net/wireless/b43/phy_lp.c +++ b/drivers/net/wireless/b43/phy_lp.c @@ -1080,7 +1080,7 @@ static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev) old_txpctl = b43_phy_read(dev, B43_LPPHY_TX_PWR_CTL_CMD) B43_LPPHY_TX_PWR_CTL_CMD_MODE; - lpphy_set_tx_power_control(dev, B43_LPPHY_TX_PWR_CTL_CMD_MODE_OFF); + lpphy_set_tx_power_control(dev, B43_LPPHY_TXPCTL_OFF); lpphy_disable_crs(dev); loopback = lpphy_loopback(dev); if (loopback == -1) -- 1.6.2.4 John, any news on this one? I can't see it in wireless testing. Larry said: With this one, I still get WARNING: at drivers/net/wireless/b43/phy_lp.c:1006 lpphy_set_tx_power_control+0xbf/0xdd [b43](). Previously, he was getting 2 warnings. This fixes one of them, the other one is handled by commit 1181d724fc2897f11f95bf6ebc86ae111390929c (Fix another TX power control abuse). I need to be more careful with my comments. This pack is needed and OK. Because of my involvement with the RE, I cannot ack any of these LP PHY patches. Larry ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: [PATCH] b43: LP-PHY: Fix reading old mode in the set TX power control routine
Gábor Stefanik wrote: 2009/8/17 John W. Linville linvi...@tuxdriver.com: On Mon, Aug 17, 2009 at 09:33:06PM +0200, Gábor Stefanik wrote: 2009/8/14 Gábor Stefanik netrolller...@gmail.com: Check the mode the hardware is in, not the mode we used the last time. Signed-off-by: Gábor Stefanik netrolller...@gmail.com --- Mark, please test if this fixes the TX power control WARN_ON you were seeing. drivers/net/wireless/b43/phy_lp.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c index 292ee51..76457f7 100644 --- a/drivers/net/wireless/b43/phy_lp.c +++ b/drivers/net/wireless/b43/phy_lp.c @@ -1015,9 +1015,9 @@ static void lpphy_set_tx_power_control(struct b43_wldev *dev, struct b43_phy_lp *lpphy = dev-phy.lp; enum b43_lpphy_txpctl_mode oldmode; - oldmode = lpphy-txpctl_mode; lpphy_read_tx_pctl_mode_from_hardware(dev); - if (lpphy-txpctl_mode == mode) + oldmode = lpphy-txpctl_mode; + if (oldmode == mode) return; lpphy-txpctl_mode = mode; -- 1.6.2.4 John, any news on this one? I can't see it in wireless testing. Larry said It does not fix it here. I'll take a look at the specs... It did not fix the warning, but it is nevertheless a legitimate fix. (I found this bug when I was looking for the source of the WARN_ON - this is not the source of the WARN_ON, but still a bug.) This patch is OK. Larry ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev