linux/drivers/net/wireless/b43
Larry Finger 5e20a4b530 b43: Fix firmware loading when driver is built into the kernel
Recent versions of udev cause synchronous firmware loading from the
probe routine to fail because the request to user space would time
out. The original fix for b43 (commit 6b6fa58) moved the firmware
load from the probe routine to a work queue, but it still used synchronous
firmware loading. This method is OK when b43 is built as a module;
however, it fails when the driver is compiled into the kernel.

This version changes the code to load the initial firmware file
using request_firmware_nowait(). A completion event is used to
hold the work queue until that file is available. This driver
reads several firmware files - the remainder can be read synchronously.
On some test systems, the async read fails; however, a following synch
read works, thus the async failure falls through to the sync try.

Reported-and-Tested by: Felix Janda <felix.janda@posteo.de>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>  (V3.4+)
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-01-07 14:34:45 -05:00
..
b43.h b43: Fix firmware loading when driver is built into the kernel 2013-01-07 14:34:45 -05:00
bus.c bcma: add boardinfo struct 2012-05-16 12:45:21 -04:00
bus.h
debugfs.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
debugfs.h
dma.c b43: fix tx path skb leaks 2012-12-10 15:49:59 -05:00
dma.h
Kconfig b43: Kconfig: drop unknown symbol 'BRCMSMAC_MODULE' 2012-09-01 08:39:25 -07:00
leds.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
leds.h
lo.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
lo.h
main.c b43: Fix firmware loading when driver is built into the kernel 2013-01-07 14:34:45 -05:00
main.h b43: Fix firmware loading when driver is built into the kernel 2013-01-07 14:34:45 -05:00
Makefile b43: N-PHY: init 0x2057 radio 2012-08-06 14:56:35 -04:00
pcmcia.c b43: remove __dev* attributes 2012-12-06 15:04:56 -05:00
pcmcia.h
phy_a.c
phy_a.h
phy_common.c b43: add helper waiting for given value in radio reg 2012-08-06 14:56:35 -04:00
phy_common.h b43: add helper waiting for given value in radio reg 2012-08-06 14:56:35 -04:00
phy_g.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
phy_g.h
phy_ht.c
phy_ht.h
phy_lcn.c b43: LCN-PHY: minor clean ups 2011-09-27 14:34:02 -04:00
phy_lcn.h b43: LCN-PHY: finish sense setup 2011-09-19 16:10:14 -04:00
phy_lp.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
phy_lp.h
phy_n.c b43: N-PHY: fix 0x2057 radio calib copy/paste mistake 2012-08-10 15:27:01 -04:00
phy_n.h b43: N-PHY: finish 0x2056 radio setup 2012-08-06 14:56:35 -04:00
pio.c b43: fix tx path skb leaks 2012-12-10 15:49:59 -05:00
pio.h
radio_2055.c
radio_2055.h
radio_2056.c b43: N-PHY: finish 2.4GHz 0x2056 radio setup 2011-12-13 15:33:56 -05:00
radio_2056.h b43: N-PHY: finish 2.4GHz 0x2056 radio setup 2011-12-13 15:33:56 -05:00
radio_2057.c b43: N-PHY: init 0x2057 radio 2012-08-06 14:56:35 -04:00
radio_2057.h b43: N-PHY: init 0x2057 radio 2012-08-06 14:56:35 -04:00
radio_2059.c
radio_2059.h
rfkill.c
rfkill.h
sdio.c b43: remove __dev* attributes 2012-12-06 15:04:56 -05:00
sdio.h
sysfs.c
sysfs.h
tables_lpphy.c
tables_lpphy.h
tables_nphy.c b43: N-PHY: add overriding RF control for rev7+ 2012-08-06 15:01:56 -04:00
tables_nphy.h b43: N-PHY: add overriding RF control for rev7+ 2012-08-06 15:01:56 -04:00
tables_phy_ht.c
tables_phy_ht.h
tables_phy_lcn.c b43: LCN-PHY: minor clean ups 2011-09-27 14:34:02 -04:00
tables_phy_lcn.h
tables.c
tables.h
wa.c
wa.h
xmit.c mac80211: support RX_FLAG_MACTIME_END 2012-11-13 21:43:55 +01:00
xmit.h b43: HT-PHY: report signal to mac80211 2011-11-07 13:19:12 -05:00