diff options
Diffstat (limited to 'drivers/net/wireless/orinoco')
-rw-r--r-- | drivers/net/wireless/orinoco/main.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/orinoco_cs.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/spectrum_cs.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/wext.c | 4 |
4 files changed, 22 insertions, 16 deletions
diff --git a/drivers/net/wireless/orinoco/main.c b/drivers/net/wireless/orinoco/main.c index e8e2d0f4763d..f800ef4e6554 100644 --- a/drivers/net/wireless/orinoco/main.c +++ b/drivers/net/wireless/orinoco/main.c | |||
@@ -1813,6 +1813,12 @@ static int __orinoco_commit(struct orinoco_private *priv) | |||
1813 | struct net_device *dev = priv->ndev; | 1813 | struct net_device *dev = priv->ndev; |
1814 | int err = 0; | 1814 | int err = 0; |
1815 | 1815 | ||
1816 | /* If we've called commit, we are reconfiguring or bringing the | ||
1817 | * interface up. Maintaining countermeasures across this would | ||
1818 | * be confusing, so note that we've disabled them. The port will | ||
1819 | * be enabled later in orinoco_commit or __orinoco_up. */ | ||
1820 | priv->tkip_cm_active = 0; | ||
1821 | |||
1816 | err = orinoco_hw_program_rids(priv); | 1822 | err = orinoco_hw_program_rids(priv); |
1817 | 1823 | ||
1818 | /* FIXME: what about netif_tx_lock */ | 1824 | /* FIXME: what about netif_tx_lock */ |
diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c index ef46a2d88539..083999faaa98 100644 --- a/drivers/net/wireless/orinoco/orinoco_cs.c +++ b/drivers/net/wireless/orinoco/orinoco_cs.c | |||
@@ -248,20 +248,20 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
248 | goto failed; | 248 | goto failed; |
249 | } | 249 | } |
250 | 250 | ||
251 | ret = pcmcia_request_irq(link, orinoco_interrupt); | ||
252 | if (ret) | ||
253 | goto failed; | ||
254 | |||
255 | /* We initialize the hermes structure before completing PCMCIA | ||
256 | * configuration just in case the interrupt handler gets | ||
257 | * called. */ | ||
258 | mem = ioport_map(link->resource[0]->start, | 251 | mem = ioport_map(link->resource[0]->start, |
259 | resource_size(link->resource[0])); | 252 | resource_size(link->resource[0])); |
260 | if (!mem) | 253 | if (!mem) |
261 | goto failed; | 254 | goto failed; |
262 | 255 | ||
256 | /* We initialize the hermes structure before completing PCMCIA | ||
257 | * configuration just in case the interrupt handler gets | ||
258 | * called. */ | ||
263 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); | 259 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); |
264 | 260 | ||
261 | ret = pcmcia_request_irq(link, orinoco_interrupt); | ||
262 | if (ret) | ||
263 | goto failed; | ||
264 | |||
265 | /* | 265 | /* |
266 | * This actually configures the PCMCIA socket -- setting up | 266 | * This actually configures the PCMCIA socket -- setting up |
267 | * the I/O windows and the interrupt mapping, and putting the | 267 | * the I/O windows and the interrupt mapping, and putting the |
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c index 873877e17e1b..93070a3a5233 100644 --- a/drivers/net/wireless/orinoco/spectrum_cs.c +++ b/drivers/net/wireless/orinoco/spectrum_cs.c | |||
@@ -310,21 +310,21 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
310 | goto failed; | 310 | goto failed; |
311 | } | 311 | } |
312 | 312 | ||
313 | ret = pcmcia_request_irq(link, orinoco_interrupt); | ||
314 | if (ret) | ||
315 | goto failed; | ||
316 | |||
317 | /* We initialize the hermes structure before completing PCMCIA | ||
318 | * configuration just in case the interrupt handler gets | ||
319 | * called. */ | ||
320 | mem = ioport_map(link->resource[0]->start, | 313 | mem = ioport_map(link->resource[0]->start, |
321 | resource_size(link->resource[0])); | 314 | resource_size(link->resource[0])); |
322 | if (!mem) | 315 | if (!mem) |
323 | goto failed; | 316 | goto failed; |
324 | 317 | ||
318 | /* We initialize the hermes structure before completing PCMCIA | ||
319 | * configuration just in case the interrupt handler gets | ||
320 | * called. */ | ||
325 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); | 321 | hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); |
326 | hw->eeprom_pda = true; | 322 | hw->eeprom_pda = true; |
327 | 323 | ||
324 | ret = pcmcia_request_irq(link, orinoco_interrupt); | ||
325 | if (ret) | ||
326 | goto failed; | ||
327 | |||
328 | /* | 328 | /* |
329 | * This actually configures the PCMCIA socket -- setting up | 329 | * This actually configures the PCMCIA socket -- setting up |
330 | * the I/O windows and the interrupt mapping, and putting the | 330 | * the I/O windows and the interrupt mapping, and putting the |
diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c index cf7be1eb6124..56aab61fd4cb 100644 --- a/drivers/net/wireless/orinoco/wext.c +++ b/drivers/net/wireless/orinoco/wext.c | |||
@@ -904,10 +904,10 @@ static int orinoco_ioctl_set_auth(struct net_device *dev, | |||
904 | */ | 904 | */ |
905 | if (param->value) { | 905 | if (param->value) { |
906 | priv->tkip_cm_active = 1; | 906 | priv->tkip_cm_active = 1; |
907 | ret = hermes_enable_port(hw, 0); | 907 | ret = hermes_disable_port(hw, 0); |
908 | } else { | 908 | } else { |
909 | priv->tkip_cm_active = 0; | 909 | priv->tkip_cm_active = 0; |
910 | ret = hermes_disable_port(hw, 0); | 910 | ret = hermes_enable_port(hw, 0); |
911 | } | 911 | } |
912 | break; | 912 | break; |
913 | 913 | ||