aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Borzenkov <arvidjaar@mail.ru>2008-10-12 12:15:43 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-10-31 19:02:33 -0400
commit0df6cbb7d8a0a8fea69138e9e463671a8ad99f16 (patch)
tree2fa02df802931939e7f9e056296a2ce1d6243d53
parent4c674c60bd567597f1224973712b352f4f474890 (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.c11
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",