diff options
author | Andrey Borzenkov <arvidjaar@mail.ru> | 2008-10-12 12:15:43 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:02:33 -0400 |
commit | 0df6cbb7d8a0a8fea69138e9e463671a8ad99f16 (patch) | |
tree | 2fa02df802931939e7f9e056296a2ce1d6243d53 | |
parent | 4c674c60bd567597f1224973712b352f4f474890 (diff) |
orinoco: reload firmware on resume
On resume card state is likely lost so we have to reload firmware
again.
Signed-off-by: Andrey Borzenkov <arvidjaar@mail.ru>
Acked-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/orinoco.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c index 366556fafaee..7bd1559e8711 100644 --- a/drivers/net/wireless/orinoco.c +++ b/drivers/net/wireless/orinoco.c | |||
@@ -2300,6 +2300,11 @@ int orinoco_reinit_firmware(struct net_device *dev) | |||
2300 | int err; | 2300 | int err; |
2301 | 2301 | ||
2302 | err = hermes_init(hw); | 2302 | err = hermes_init(hw); |
2303 | if (priv->do_fw_download && !err) { | ||
2304 | err = orinoco_download(priv); | ||
2305 | if (err) | ||
2306 | priv->do_fw_download = 0; | ||
2307 | } | ||
2303 | if (!err) | 2308 | if (!err) |
2304 | err = orinoco_allocate_fid(dev); | 2309 | err = orinoco_allocate_fid(dev); |
2305 | 2310 | ||
@@ -2925,12 +2930,6 @@ static void orinoco_reset(struct work_struct *work) | |||
2925 | } | 2930 | } |
2926 | } | 2931 | } |
2927 | 2932 | ||
2928 | if (priv->do_fw_download) { | ||
2929 | err = orinoco_download(priv); | ||
2930 | if (err) | ||
2931 | priv->do_fw_download = 0; | ||
2932 | } | ||
2933 | |||
2934 | err = orinoco_reinit_firmware(dev); | 2933 | err = orinoco_reinit_firmware(dev); |
2935 | if (err) { | 2934 | if (err) { |
2936 | printk(KERN_ERR "%s: orinoco_reset: Error %d re-initializing firmware\n", | 2935 | printk(KERN_ERR "%s: orinoco_reset: Error %d re-initializing firmware\n", |