diff options
author | David Kilroy <kilroyd@googlemail.com> | 2009-06-18 18:21:30 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-10 15:01:46 -0400 |
commit | 6415f7df10573bf1ec42644f42bef565127114a1 (patch) | |
tree | 6aa981f181010faca22989ffd70ef89b0d32ff07 /drivers/net/wireless/orinoco/airport.c | |
parent | ef96b5c9ed6ba4b45fd4cf45810c34978bb8d8bb (diff) |
orinoco: Handle suspend/restore in core driver
Each device does almost exactly the same things on suspend and resume
when upping and downing the interface. So move this logic into a common
routine.
Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/orinoco/airport.c')
-rw-r--r-- | drivers/net/wireless/orinoco/airport.c | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/drivers/net/wireless/orinoco/airport.c b/drivers/net/wireless/orinoco/airport.c index 70f1331512bd..c60df2c1aca3 100644 --- a/drivers/net/wireless/orinoco/airport.c +++ b/drivers/net/wireless/orinoco/airport.c | |||
@@ -50,15 +50,7 @@ airport_suspend(struct macio_dev *mdev, pm_message_t state) | |||
50 | return 0; | 50 | return 0; |
51 | } | 51 | } |
52 | 52 | ||
53 | err = __orinoco_down(priv); | 53 | orinoco_down(priv); |
54 | if (err) | ||
55 | printk(KERN_WARNING "%s: PBOOK_SLEEP_NOW: Error %d downing interface\n", | ||
56 | dev->name, err); | ||
57 | |||
58 | netif_device_detach(dev); | ||
59 | |||
60 | priv->hw_unavailable++; | ||
61 | |||
62 | orinoco_unlock(priv, &flags); | 54 | orinoco_unlock(priv, &flags); |
63 | 55 | ||
64 | disable_irq(card->irq); | 56 | disable_irq(card->irq); |
@@ -85,30 +77,11 @@ airport_resume(struct macio_dev *mdev) | |||
85 | 77 | ||
86 | enable_irq(card->irq); | 78 | enable_irq(card->irq); |
87 | 79 | ||
88 | err = orinoco_reinit_firmware(priv); | ||
89 | if (err) { | ||
90 | printk(KERN_ERR "%s: Error %d re-initializing firmware on PBOOK_WAKE\n", | ||
91 | dev->name, err); | ||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | spin_lock_irqsave(&priv->lock, flags); | 80 | spin_lock_irqsave(&priv->lock, flags); |
96 | 81 | err = orinoco_up(priv); | |
97 | netif_device_attach(dev); | ||
98 | |||
99 | priv->hw_unavailable--; | ||
100 | |||
101 | if (priv->open && (!priv->hw_unavailable)) { | ||
102 | err = __orinoco_up(priv); | ||
103 | if (err) | ||
104 | printk(KERN_ERR "%s: Error %d restarting card on PBOOK_WAKE\n", | ||
105 | dev->name, err); | ||
106 | } | ||
107 | |||
108 | |||
109 | spin_unlock_irqrestore(&priv->lock, flags); | 82 | spin_unlock_irqrestore(&priv->lock, flags); |
110 | 83 | ||
111 | return 0; | 84 | return err; |
112 | } | 85 | } |
113 | 86 | ||
114 | static int | 87 | static int |