* linux-2..6.33-rc7 and b43
@ 2010-02-14 9:53 Thomas Backlund
2010-02-14 16:36 ` Larry Finger
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Backlund @ 2010-02-14 9:53 UTC (permalink / raw)
Cc: linux-wireless, netdev
Hi,
(please cc me on replies)
We have a user that tried out b43, but got this in the logs:
--- cut ---
65858:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not
support DMA on your system. Please use PIO instead. 65859:Feb 9
22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO must
be set in your kernel configuration.
65860:Feb 9 22:05:16 elmo kernel: b43-phy2 debug: Adding Interface type 2
65861:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: Fatal DMA error:
0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
65862:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not
support DMA on your system. Please use PIO instead.
65863:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO
must be set in your kernel configuration.
--- cut ---
But reading the Kconfig help, it states:
--- cut ---
config B43_FORCE_PIO
bool "Force usage of PIO instead of DMA"
depends on B43 && B43_DEBUG
---help---
This will disable DMA and always enable PIO instead.
Say N!
This is only for debugging the PIO engine code. You do
_NOT_ want to enable this.
--- cut ---
So,
wich one is it ?
Do I belive the dmesg output, or the Kconfig ?
Note,
the b43 works for the user if he enable the CONFIG_B43_FORCE_PIO.
But I'm thinking of this problem from a distro point of view.
Will it break for others if I enable it ?
--
Thomas
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: linux-2..6.33-rc7 and b43 2010-02-14 9:53 linux-2..6.33-rc7 and b43 Thomas Backlund @ 2010-02-14 16:36 ` Larry Finger 2010-02-14 18:44 ` Thomas Backlund 0 siblings, 1 reply; 8+ messages in thread From: Larry Finger @ 2010-02-14 16:36 UTC (permalink / raw) To: Thomas Backlund; +Cc: linux-wireless, netdev [-- Attachment #1: Type: text/plain, Size: 2418 bytes --] On 02/14/2010 03:53 AM, Thomas Backlund wrote: > Hi, > (please cc me on replies) > > We have a user that tried out b43, but got this in the logs: > > --- cut --- > 65858:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not > support DMA on your system. Please use PIO instead. 65859:Feb 9 > 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO must > be set in your kernel configuration. > 65860:Feb 9 22:05:16 elmo kernel: b43-phy2 debug: Adding Interface type 2 > 65861:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: Fatal DMA error: > 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 > > 65862:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not > support DMA on your system. Please use PIO instead. > 65863:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO > must be set in your kernel configuration. > --- cut --- > > > > But reading the Kconfig help, it states: > --- cut --- > config B43_FORCE_PIO > bool "Force usage of PIO instead of DMA" > depends on B43 && B43_DEBUG > ---help--- > This will disable DMA and always enable PIO instead. > > Say N! > This is only for debugging the PIO engine code. You do > _NOT_ want to enable this. > --- cut --- > > > So, > wich one is it ? > > Do I belive the dmesg output, or the Kconfig ? > > Note, > the b43 works for the user if he enable the CONFIG_B43_FORCE_PIO. > > But I'm thinking of this problem from a distro point of view. > Will it break for others if I enable it ? >From a distro point of view, you would not want to set FORCE_PIO as the performance penalty would be very large. You do not give the specific details on the problem system; however, it is probably a BCM4312 802.11 b/g device with PCI ID 14e4:4315 being used with an Atom processor in a netbook. We have no fix. In the 2.6.34 code, b43 will be changed to allow the selection of PIO mode at run time rather than compile time. For a distro, this method is clearly superior. Those users that need PIO can select it without forcing the performance penalty on everyone. The patch was too late for the 2.6.33 merge, and too intrusive to be applied to 2.6.33-rcX. It has been present in the wireless-testing code base for 2 months with no trouble reported, thus it should be safe for inclusion in your kernels. The relevant patch is attached. Larry [-- Attachment #2: b43_allow_pio_at_run_time --] [-- Type: text/plain, Size: 7026 bytes --] commit b02914af4d7020828ce921a572589dd793517c09 Author: Larry Finger <Larry.Finger@lwfinger.net> Date: Thu Dec 10 17:35:01 2009 -0600 b43: Allow PIO mode to be selected at module load If userencounter the "Fatal DMA Problem" with a BCM43XX device, and still wish to use b43 as the driver, their only option is to rebuild the kernel with CONFIG_B43_FORCE_PIO. This patch removes this option and allows PIO mode to be selected with a load-time parameter for the module. Note that the configuration variable CONFIG_B43_PIO is also removed. Once the DMA problem with the BCM4312 devices is solved, this patch will likely be reverted. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Tested-by: John Daiker <daikerjohn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig index 64c12e1..073be56 100644 --- a/drivers/net/wireless/b43/Kconfig +++ b/drivers/net/wireless/b43/Kconfig @@ -3,6 +3,7 @@ config B43 depends on SSB_POSSIBLE && MAC80211 && HAS_DMA select SSB select FW_LOADER + select SSB_BLOCKIO ---help--- b43 is a driver for the Broadcom 43xx series wireless devices. @@ -78,14 +79,6 @@ config B43_SDIO If unsure, say N. -# Data transfers to the device via PIO -# This is only needed on PCMCIA and SDIO devices. All others can do DMA properly. -config B43_PIO - bool - depends on B43 && (B43_SDIO || B43_PCMCIA || B43_FORCE_PIO) - select SSB_BLOCKIO - default y - config B43_NPHY bool "Pre IEEE 802.11n support (BROKEN)" depends on B43 && EXPERIMENTAL && BROKEN @@ -137,12 +130,4 @@ config B43_DEBUG for production use. Only say Y, if you are debugging a problem in the b43 driver sourcecode. -config B43_FORCE_PIO - bool "Force usage of PIO instead of DMA" - depends on B43 && B43_DEBUG - ---help--- - This will disable DMA and always enable PIO instead. - Say N! - This is only for debugging the PIO engine code. You do - _NOT_ want to enable this. diff --git a/drivers/net/wireless/b43/Makefile b/drivers/net/wireless/b43/Makefile index 84772a2..5e83b6f 100644 --- a/drivers/net/wireless/b43/Makefile +++ b/drivers/net/wireless/b43/Makefile @@ -12,7 +12,7 @@ b43-y += xmit.o b43-y += lo.o b43-y += wa.o b43-y += dma.o -b43-$(CONFIG_B43_PIO) += pio.o +b43-y += pio.o b43-y += rfkill.o b43-$(CONFIG_B43_LEDS) += leds.o b43-$(CONFIG_B43_PCMCIA) += pcmcia.o diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h index fe3bf94..2f12a75 100644 --- a/drivers/net/wireless/b43/b43.h +++ b/drivers/net/wireless/b43/b43.h @@ -821,11 +821,9 @@ struct b43_wl { /* The device LEDs. */ struct b43_leds leds; -#ifdef CONFIG_B43_PIO /* Kmalloc'ed scratch space for PIO TX/RX. Protected by wl->mutex. */ u8 pio_scratchspace[110] __attribute__((__aligned__(8))); u8 pio_tailspace[4] __attribute__((__aligned__(8))); -#endif /* CONFIG_B43_PIO */ }; static inline struct b43_wl *hw_to_b43_wl(struct ieee80211_hw *hw) @@ -876,20 +874,9 @@ static inline void b43_write32(struct b43_wldev *dev, u16 offset, u32 value) static inline bool b43_using_pio_transfers(struct b43_wldev *dev) { -#ifdef CONFIG_B43_PIO return dev->__using_pio_transfers; -#else - return 0; -#endif } -#ifdef CONFIG_B43_FORCE_PIO -# define B43_FORCE_PIO 1 -#else -# define B43_FORCE_PIO 0 -#endif - - /* Message printing */ void b43info(struct b43_wl *wl, const char *fmt, ...) __attribute__ ((format(printf, 2, 3))); diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index 027be27..5dd8a21 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c @@ -1760,7 +1760,6 @@ void b43_dma_tx_resume(struct b43_wldev *dev) b43_power_saving_ctl_bits(dev, 0); } -#ifdef CONFIG_B43_PIO static void direct_fifo_rx(struct b43_wldev *dev, enum b43_dmatype type, u16 mmio_base, bool enable) { @@ -1794,4 +1793,3 @@ void b43_dma_direct_fifo_rx(struct b43_wldev *dev, mmio_base = b43_dmacontroller_base(type, engine_index); direct_fifo_rx(dev, type, mmio_base, enable); } -#endif /* CONFIG_B43_PIO */ diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index 19b4eae..b0b5ce9 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c @@ -102,6 +102,9 @@ int b43_modparam_verbose = B43_VERBOSITY_DEFAULT; module_param_named(verbose, b43_modparam_verbose, int, 0644); MODULE_PARM_DESC(verbose, "Log message verbosity: 0=error, 1=warn, 2=info(default), 3=debug"); +static int modparam_pio; +module_param_named(pio, modparam_pio, int, 0444); +MODULE_PARM_DESC(pio, "enable(1) / disable(0) PIO mode"); static const struct ssb_device_id b43_ssb_tbl[] = { SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5), @@ -1786,8 +1789,8 @@ static void b43_do_interrupt_thread(struct b43_wldev *dev) dma_reason[4], dma_reason[5]); b43err(dev->wl, "This device does not support DMA " "on your system. Please use PIO instead.\n"); - b43err(dev->wl, "CONFIG_B43_FORCE_PIO must be set in " - "your kernel configuration.\n"); + b43err(dev->wl, "Unload the b43 module and reload " + "with 'pio=1'\n"); return; } if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) { @@ -4353,7 +4356,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev) if ((dev->dev->bus->bustype == SSB_BUSTYPE_PCMCIA) || (dev->dev->bus->bustype == SSB_BUSTYPE_SDIO) || - B43_FORCE_PIO) { + modparam_pio) { dev->__using_pio_transfers = 1; err = b43_pio_init(dev); } else { diff --git a/drivers/net/wireless/b43/pio.h b/drivers/net/wireless/b43/pio.h index 7dd649c..7b3c42f 100644 --- a/drivers/net/wireless/b43/pio.h +++ b/drivers/net/wireless/b43/pio.h @@ -55,8 +55,6 @@ #define B43_PIO_MAX_NR_TXPACKETS 32 -#ifdef CONFIG_B43_PIO - struct b43_pio_txpacket { /* Pointer to the TX queue we belong to. */ struct b43_pio_txqueue *queue; @@ -169,42 +167,4 @@ void b43_pio_rx(struct b43_pio_rxqueue *q); void b43_pio_tx_suspend(struct b43_wldev *dev); void b43_pio_tx_resume(struct b43_wldev *dev); - -#else /* CONFIG_B43_PIO */ - - -static inline int b43_pio_init(struct b43_wldev *dev) -{ - return 0; -} -static inline void b43_pio_free(struct b43_wldev *dev) -{ -} -static inline void b43_pio_stop(struct b43_wldev *dev) -{ -} -static inline int b43_pio_tx(struct b43_wldev *dev, - struct sk_buff *skb) -{ - return 0; -} -static inline void b43_pio_handle_txstatus(struct b43_wldev *dev, - const struct b43_txstatus *status) -{ -} -static inline void b43_pio_get_tx_stats(struct b43_wldev *dev, - struct ieee80211_tx_queue_stats *stats) -{ -} -static inline void b43_pio_rx(struct b43_pio_rxqueue *q) -{ -} -static inline void b43_pio_tx_suspend(struct b43_wldev *dev) -{ -} -static inline void b43_pio_tx_resume(struct b43_wldev *dev) -{ -} - -#endif /* CONFIG_B43_PIO */ #endif /* B43_PIO_H_ */ ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: linux-2..6.33-rc7 and b43 2010-02-14 16:36 ` Larry Finger @ 2010-02-14 18:44 ` Thomas Backlund 2010-02-14 18:59 ` Gábor Stefanik 2010-02-14 19:24 ` Larry Finger 0 siblings, 2 replies; 8+ messages in thread From: Thomas Backlund @ 2010-02-14 18:44 UTC (permalink / raw) To: Larry Finger; +Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org Larry Finger skrev 14.2.2010 18:36: > On 02/14/2010 03:53 AM, Thomas Backlund wrote: >> Hi, >> (please cc me on replies) >> >> We have a user that tried out b43, but got this in the logs: >> >> --- cut --- >> 65858:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >> support DMA on your system. Please use PIO instead. 65859:Feb 9 >> 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO must >> be set in your kernel configuration. >> 65860:Feb 9 22:05:16 elmo kernel: b43-phy2 debug: Adding Interface type 2 >> 65861:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: Fatal DMA error: >> 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 >> >> 65862:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >> support DMA on your system. Please use PIO instead. >> 65863:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO >> must be set in your kernel configuration. >> --- cut --- >> >> >> >> But reading the Kconfig help, it states: >> --- cut --- >> config B43_FORCE_PIO >> bool "Force usage of PIO instead of DMA" >> depends on B43&& B43_DEBUG >> ---help--- >> This will disable DMA and always enable PIO instead. >> >> Say N! >> This is only for debugging the PIO engine code. You do >> _NOT_ want to enable this. >> --- cut --- >> >> >> So, >> wich one is it ? >> >> Do I belive the dmesg output, or the Kconfig ? >> >> Note, >> the b43 works for the user if he enable the CONFIG_B43_FORCE_PIO. >> >> But I'm thinking of this problem from a distro point of view. >> Will it break for others if I enable it ? > >> From a distro point of view, you would not want to set FORCE_PIO as the > performance penalty would be very large. > As I suspected. Thanks for confirming it. > You do not give the specific details on the problem system; however, it is > probably a BCM4312 802.11 b/g device with PCI ID 14e4:4315 being used with an > Atom processor in a netbook. We have no fix. > Sorry about the missing info... I asked a few times from the user, and got no reponse until today a few hours after your response... It is indeed a BCM4312 802.11 b/g device with PCI ID 14e4:4315 on a Dell laptop with a Intel ICH9M series chipset and a Intel Core(TM)2 Duo CPU T7250 @ 2.00GHz. > In the 2.6.34 code, b43 will be changed to allow the selection of PIO mode at > run time rather than compile time. For a distro, this method is clearly > superior. Those users that need PIO can select it without forcing the > performance penalty on everyone. The patch was too late for the 2.6.33 merge, > and too intrusive to be applied to 2.6.33-rcX. It has been present in the > wireless-testing code base for 2 months with no trouble reported, thus it should > be safe for inclusion in your kernels. The relevant patch is attached. > Nice solution. What about making it autodetected ? Or is it only a "last resort" with the hopes of getting the issue fixed? Anyway, thanks for the patch. -- Thomas ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-2..6.33-rc7 and b43 2010-02-14 18:44 ` Thomas Backlund @ 2010-02-14 18:59 ` Gábor Stefanik 2010-02-14 19:18 ` Thomas Backlund 2010-02-14 19:24 ` Larry Finger 1 sibling, 1 reply; 8+ messages in thread From: Gábor Stefanik @ 2010-02-14 18:59 UTC (permalink / raw) To: Thomas Backlund Cc: Larry Finger, linux-wireless@vger.kernel.org, netdev@vger.kernel.org On Sun, Feb 14, 2010 at 7:44 PM, Thomas Backlund <tmb@mandriva.org> wrote: > Larry Finger skrev 14.2.2010 18:36: >> >> On 02/14/2010 03:53 AM, Thomas Backlund wrote: >>> >>> Hi, >>> (please cc me on replies) >>> >>> We have a user that tried out b43, but got this in the logs: >>> >>> --- cut --- >>> 65858:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >>> support DMA on your system. Please use PIO instead. 65859:Feb 9 >>> 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO must >>> be set in your kernel configuration. >>> 65860:Feb 9 22:05:16 elmo kernel: b43-phy2 debug: Adding Interface type >>> 2 >>> 65861:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: Fatal DMA error: >>> 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 >>> >>> 65862:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >>> support DMA on your system. Please use PIO instead. >>> 65863:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO >>> must be set in your kernel configuration. >>> --- cut --- >>> >>> >>> >>> But reading the Kconfig help, it states: >>> --- cut --- >>> config B43_FORCE_PIO >>> bool "Force usage of PIO instead of DMA" >>> depends on B43&& B43_DEBUG >>> ---help--- >>> This will disable DMA and always enable PIO instead. >>> >>> Say N! >>> This is only for debugging the PIO engine code. You do >>> _NOT_ want to enable this. >>> --- cut --- >>> >>> >>> So, >>> wich one is it ? >>> >>> Do I belive the dmesg output, or the Kconfig ? >>> >>> Note, >>> the b43 works for the user if he enable the CONFIG_B43_FORCE_PIO. >>> >>> But I'm thinking of this problem from a distro point of view. >>> Will it break for others if I enable it ? >> >>> From a distro point of view, you would not want to set FORCE_PIO as the >> >> performance penalty would be very large. >> > > As I suspected. > Thanks for confirming it. > >> You do not give the specific details on the problem system; however, it is >> probably a BCM4312 802.11 b/g device with PCI ID 14e4:4315 being used with >> an >> Atom processor in a netbook. We have no fix. >> > > Sorry about the missing info... > I asked a few times from the user, and got no reponse until today a few > hours after your response... > > It is indeed a BCM4312 802.11 b/g device with PCI ID 14e4:4315 on a Dell > laptop with a Intel ICH9M series chipset and a Intel Core(TM)2 Duo CPU T7250 > @ 2.00GHz. Weird... that's not an Intel Atom, but a Core 2 Duo, standard-voltage. Mind posting any more details on this system? > >> In the 2.6.34 code, b43 will be changed to allow the selection of PIO mode >> at >> run time rather than compile time. For a distro, this method is clearly >> superior. Those users that need PIO can select it without forcing the >> performance penalty on everyone. The patch was too late for the 2.6.33 >> merge, >> and too intrusive to be applied to 2.6.33-rcX. It has been present in the >> wireless-testing code base for 2 months with no trouble reported, thus it >> should >> be safe for inclusion in your kernels. The relevant patch is attached. >> > > Nice solution. > > What about making it autodetected ? > Or is it only a "last resort" with the hopes of getting the issue fixed? > > Anyway, thanks for the patch. > > -- > Thomas > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-2..6.33-rc7 and b43 2010-02-14 18:59 ` Gábor Stefanik @ 2010-02-14 19:18 ` Thomas Backlund 2010-02-14 21:53 ` Gábor Stefanik 0 siblings, 1 reply; 8+ messages in thread From: Thomas Backlund @ 2010-02-14 19:18 UTC (permalink / raw) To: Gábor Stefanik Cc: Larry Finger, linux-wireless@vger.kernel.org, netdev@vger.kernel.org Gábor Stefanik skrev 14.2.2010 20:59: > On Sun, Feb 14, 2010 at 7:44 PM, Thomas Backlund<tmb@mandriva.org> wrote: >> Larry Finger skrev 14.2.2010 18:36: >>> >>> On 02/14/2010 03:53 AM, Thomas Backlund wrote: >>>> >>>> Hi, >>>> (please cc me on replies) >>>> >>>> We have a user that tried out b43, but got this in the logs: >>>> >>>> --- cut --- >>>> 65858:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >>>> support DMA on your system. Please use PIO instead. 65859:Feb 9 >>>> 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO must >>>> be set in your kernel configuration. >>>> 65860:Feb 9 22:05:16 elmo kernel: b43-phy2 debug: Adding Interface type >>>> 2 >>>> 65861:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: Fatal DMA error: >>>> 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 >>>> >>>> 65862:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >>>> support DMA on your system. Please use PIO instead. >>>> 65863:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO >>>> must be set in your kernel configuration. >>>> --- cut --- >>>> >>>> >>>> >>>> But reading the Kconfig help, it states: >>>> --- cut --- >>>> config B43_FORCE_PIO >>>> bool "Force usage of PIO instead of DMA" >>>> depends on B43&& B43_DEBUG >>>> ---help--- >>>> This will disable DMA and always enable PIO instead. >>>> >>>> Say N! >>>> This is only for debugging the PIO engine code. You do >>>> _NOT_ want to enable this. >>>> --- cut --- >>>> >>>> >>>> So, >>>> wich one is it ? >>>> >>>> Do I belive the dmesg output, or the Kconfig ? >>>> >>>> Note, >>>> the b43 works for the user if he enable the CONFIG_B43_FORCE_PIO. >>>> >>>> But I'm thinking of this problem from a distro point of view. >>>> Will it break for others if I enable it ? >>> >>>> From a distro point of view, you would not want to set FORCE_PIO as the >>> >>> performance penalty would be very large. >>> >> >> As I suspected. >> Thanks for confirming it. >> >>> You do not give the specific details on the problem system; however, it is >>> probably a BCM4312 802.11 b/g device with PCI ID 14e4:4315 being used with >>> an >>> Atom processor in a netbook. We have no fix. >>> >> >> Sorry about the missing info... >> I asked a few times from the user, and got no reponse until today a few >> hours after your response... >> >> It is indeed a BCM4312 802.11 b/g device with PCI ID 14e4:4315 on a Dell >> laptop with a Intel ICH9M series chipset and a Intel Core(TM)2 Duo CPU T7250 >> @ 2.00GHz. > > Weird... that's not an Intel Atom, but a Core 2 Duo, standard-voltage. > Mind posting any more details on this system? > It's a Dell Latitude E5500, Bios A13. It's a 64bit kernel/userspace. The b43 firmware is: 478.104 lspci -vvvnnn states: 0c:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01) Subsystem: Dell Wireless 1397 WLAN Mini-Card [1028:000c] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at f69fc000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: b43-pci-bridge Kernel modules: wl, ssb Anything else you need ? -- Thomas ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-2..6.33-rc7 and b43 2010-02-14 19:18 ` Thomas Backlund @ 2010-02-14 21:53 ` Gábor Stefanik 2010-02-14 22:38 ` Larry Finger 0 siblings, 1 reply; 8+ messages in thread From: Gábor Stefanik @ 2010-02-14 21:53 UTC (permalink / raw) To: Thomas Backlund Cc: Larry Finger, linux-wireless@vger.kernel.org, netdev@vger.kernel.org 2010/2/14 Thomas Backlund <tmb@mandriva.org>: > Gábor Stefanik skrev 14.2.2010 20:59: >> >> On Sun, Feb 14, 2010 at 7:44 PM, Thomas Backlund<tmb@mandriva.org> wrote: >>> >>> Larry Finger skrev 14.2.2010 18:36: >>>> >>>> On 02/14/2010 03:53 AM, Thomas Backlund wrote: >>>>> >>>>> Hi, >>>>> (please cc me on replies) >>>>> >>>>> We have a user that tried out b43, but got this in the logs: >>>>> >>>>> --- cut --- >>>>> 65858:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >>>>> support DMA on your system. Please use PIO instead. 65859:Feb 9 >>>>> 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO must >>>>> be set in your kernel configuration. >>>>> 65860:Feb 9 22:05:16 elmo kernel: b43-phy2 debug: Adding Interface >>>>> type >>>>> 2 >>>>> 65861:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: Fatal DMA error: >>>>> 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 >>>>> >>>>> 65862:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: This device does not >>>>> support DMA on your system. Please use PIO instead. >>>>> 65863:Feb 9 22:05:16 elmo kernel: b43-phy2 ERROR: CONFIG_B43_FORCE_PIO >>>>> must be set in your kernel configuration. >>>>> --- cut --- >>>>> >>>>> >>>>> >>>>> But reading the Kconfig help, it states: >>>>> --- cut --- >>>>> config B43_FORCE_PIO >>>>> bool "Force usage of PIO instead of DMA" >>>>> depends on B43&& B43_DEBUG >>>>> ---help--- >>>>> This will disable DMA and always enable PIO instead. >>>>> >>>>> Say N! >>>>> This is only for debugging the PIO engine code. You do >>>>> _NOT_ want to enable this. >>>>> --- cut --- >>>>> >>>>> >>>>> So, >>>>> wich one is it ? >>>>> >>>>> Do I belive the dmesg output, or the Kconfig ? >>>>> >>>>> Note, >>>>> the b43 works for the user if he enable the CONFIG_B43_FORCE_PIO. >>>>> >>>>> But I'm thinking of this problem from a distro point of view. >>>>> Will it break for others if I enable it ? >>>> >>>>> From a distro point of view, you would not want to set FORCE_PIO as >>>>> the >>>> >>>> performance penalty would be very large. >>>> >>> >>> As I suspected. >>> Thanks for confirming it. >>> >>>> You do not give the specific details on the problem system; however, it >>>> is >>>> probably a BCM4312 802.11 b/g device with PCI ID 14e4:4315 being used >>>> with >>>> an >>>> Atom processor in a netbook. We have no fix. >>>> >>> >>> Sorry about the missing info... >>> I asked a few times from the user, and got no reponse until today a few >>> hours after your response... >>> >>> It is indeed a BCM4312 802.11 b/g device with PCI ID 14e4:4315 on a Dell >>> laptop with a Intel ICH9M series chipset and a Intel Core(TM)2 Duo CPU >>> T7250 >>> @ 2.00GHz. >> >> Weird... that's not an Intel Atom, but a Core 2 Duo, standard-voltage. >> Mind posting any more details on this system? >> > > It's a Dell Latitude E5500, Bios A13. > > It's a 64bit kernel/userspace. > > The b43 firmware is: 478.104 > > lspci -vvvnnn states: > 0c:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g > [14e4:4315] (rev 01) > Subsystem: Dell Wireless 1397 WLAN Mini-Card [1028:000c] > Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- > Stepping- SERR+ FastB2B- DisINTx- > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- > <TAbort- <MAbort- >SERR- <PERR- INTx- > Latency: 0, Cache Line Size: 64 bytes > Interrupt: pin A routed to IRQ 17 > Region 0: Memory at f69fc000 (64-bit, non-prefetchable) [size=16K] > Capabilities: <access denied> > Kernel driver in use: b43-pci-bridge > Kernel modules: wl, ssb > > > Anything else you need ? > > -- > Thomas > Looks like the trigger is not Intel Atom, but PhoenixBIOS after all - a quick analysis of bios v. A15 for this machine shows it to be a highly cloaked/rebranded PhoenixBIOS. Core 2 T7250 is a regular Merom/Santa Rosa CPU, almost the same as my T7100 (only the clock multiplier is different), and is not a ULV CPU, the trigger we previously suspected. PhoenixBIOS (and its rebrands) appears to be the common trigger. -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-2..6.33-rc7 and b43 2010-02-14 21:53 ` Gábor Stefanik @ 2010-02-14 22:38 ` Larry Finger 0 siblings, 0 replies; 8+ messages in thread From: Larry Finger @ 2010-02-14 22:38 UTC (permalink / raw) To: Gábor Stefanik Cc: Thomas Backlund, linux-wireless@vger.kernel.org, netdev@vger.kernel.org On 02/14/2010 03:53 PM, Gábor Stefanik wrote: > > Looks like the trigger is not Intel Atom, but PhoenixBIOS after all - > a quick analysis of bios v. A15 for this machine shows it to be a > highly cloaked/rebranded PhoenixBIOS. > > Core 2 T7250 is a regular Merom/Santa Rosa CPU, almost the same as my > T7100 (only the clock multiplier is different), and is not a ULV CPU, > the trigger we previously suspected. > > PhoenixBIOS (and its rebrands) appears to be the common trigger. It also requires an Intel CPU. My AMD is fine with a Phoenix BIOS. Larry ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-2..6.33-rc7 and b43 2010-02-14 18:44 ` Thomas Backlund 2010-02-14 18:59 ` Gábor Stefanik @ 2010-02-14 19:24 ` Larry Finger 1 sibling, 0 replies; 8+ messages in thread From: Larry Finger @ 2010-02-14 19:24 UTC (permalink / raw) To: Thomas Backlund; +Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org On 02/14/2010 12:44 PM, Thomas Backlund wrote: > > Nice solution. > > What about making it autodetected ? > Or is it only a "last resort" with the hopes of getting the issue fixed? When we detect the problem, we are too far past the initialization to switch from DMA to PIO. We certainly hope to fix the issue. We do know that the failure occurs when b43 is loaded after a cold boot, but if one warm boots after using wl, then it works OK. There is some kind of initialization problem that only shows on Atom and some Intel Core Duo CPUs. Larry ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-02-14 22:38 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-02-14 9:53 linux-2..6.33-rc7 and b43 Thomas Backlund 2010-02-14 16:36 ` Larry Finger 2010-02-14 18:44 ` Thomas Backlund 2010-02-14 18:59 ` Gábor Stefanik 2010-02-14 19:18 ` Thomas Backlund 2010-02-14 21:53 ` Gábor Stefanik 2010-02-14 22:38 ` Larry Finger 2010-02-14 19:24 ` Larry Finger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).