aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/p54/p54usb.h
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2012-03-17 21:16:06 +0100
committerJohn W. Linville <linville@tuxdriver.com>2012-04-09 16:07:35 -0400
commit5612a508d11f81c1ca3290260f86328dfb55d513 (patch)
tree8ff5d03365b9f7e7a0534c577d504b6bc757eabf /drivers/net/wireless/p54/p54usb.h
parentp54: only unregister ieee80211_hw when it has been registered (diff)
downloadlinux-dev-5612a508d11f81c1ca3290260f86328dfb55d513.tar.xz
linux-dev-5612a508d11f81c1ca3290260f86328dfb55d513.zip
p54usb: Load firmware asynchronously
Drivers that load firmware from their probe routine have problems with the latest versions of udev as they get timeouts while waiting for user space to start. The problem is fixed by using request_firmware_nowait() and delaying the start of mac80211 until the firmware is loaded. To prevent the possibility of the driver being unloaded while the firmware loading callback is still active, a completion queue entry is used. Also, to simplify the firmware loading procedure, this patch removes the old, unofficial and confusing fallback firmware names. However, they are still supported! So any user - who is still using them - is hereby advised to link/rename their old firmware filenames: isl3890usb to isl3886usb isl3887usb_bare to isl3887usb Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/p54/p54usb.h')
-rw-r--r--drivers/net/wireless/p54/p54usb.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
index ed4034ade59a..d273be7272b9 100644
--- a/drivers/net/wireless/p54/p54usb.h
+++ b/drivers/net/wireless/p54/p54usb.h
@@ -143,6 +143,9 @@ struct p54u_priv {
struct sk_buff_head rx_queue;
struct usb_anchor submitted;
const struct firmware *fw;
+
+ /* asynchronous firmware callback */
+ struct completion fw_wait_load;
};
#endif /* P54USB_H */