diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-04-23 14:43:45 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-23 14:43:45 -0400 |
commit | 3b51cc996e81d8a113416d8094fa4a88f8360a51 (patch) | |
tree | e75b98b228bb4e456c30673fcc4b56ffa1d09cf5 /drivers/net/wireless/orinoco | |
parent | c68ed255265968c3948fa2678bf59d15c471b055 (diff) | |
parent | 672724403b42da1d276c6cf811e8e34d15efd964 (diff) |
Merge branch 'master' into for-davem
Conflicts:
drivers/net/wireless/ath/ath9k/phy.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-debugfs.c
Diffstat (limited to 'drivers/net/wireless/orinoco')
-rw-r--r-- | drivers/net/wireless/orinoco/Makefile | 3 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/cfg.c | 88 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/hw.c | 26 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/main.h | 12 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/orinoco.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/scan.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/wext.c | 183 |
7 files changed, 125 insertions, 193 deletions
diff --git a/drivers/net/wireless/orinoco/Makefile b/drivers/net/wireless/orinoco/Makefile index 9abd6329bcbd..e6452698eba9 100644 --- a/drivers/net/wireless/orinoco/Makefile +++ b/drivers/net/wireless/orinoco/Makefile | |||
@@ -11,3 +11,6 @@ obj-$(CONFIG_PCI_HERMES) += orinoco_pci.o | |||
11 | obj-$(CONFIG_TMD_HERMES) += orinoco_tmd.o | 11 | obj-$(CONFIG_TMD_HERMES) += orinoco_tmd.o |
12 | obj-$(CONFIG_NORTEL_HERMES) += orinoco_nortel.o | 12 | obj-$(CONFIG_NORTEL_HERMES) += orinoco_nortel.o |
13 | obj-$(CONFIG_PCMCIA_SPECTRUM) += spectrum_cs.o | 13 | obj-$(CONFIG_PCMCIA_SPECTRUM) += spectrum_cs.o |
14 | |||
15 | # Orinoco should be endian clean. | ||
16 | ccflags-y += -D__CHECK_ENDIAN__ | ||
diff --git a/drivers/net/wireless/orinoco/cfg.c b/drivers/net/wireless/orinoco/cfg.c index 27f2d3342645..90dd4d0595c3 100644 --- a/drivers/net/wireless/orinoco/cfg.c +++ b/drivers/net/wireless/orinoco/cfg.c | |||
@@ -88,7 +88,9 @@ int orinoco_wiphy_register(struct wiphy *wiphy) | |||
88 | 88 | ||
89 | wiphy->rts_threshold = priv->rts_thresh; | 89 | wiphy->rts_threshold = priv->rts_thresh; |
90 | if (!priv->has_mwo) | 90 | if (!priv->has_mwo) |
91 | wiphy->frag_threshold = priv->frag_thresh; | 91 | wiphy->frag_threshold = priv->frag_thresh + 1; |
92 | wiphy->retry_short = priv->short_retry_limit; | ||
93 | wiphy->retry_long = priv->long_retry_limit; | ||
92 | 94 | ||
93 | return wiphy_register(wiphy); | 95 | return wiphy_register(wiphy); |
94 | } | 96 | } |
@@ -196,8 +198,92 @@ static int orinoco_set_channel(struct wiphy *wiphy, | |||
196 | return err; | 198 | return err; |
197 | } | 199 | } |
198 | 200 | ||
201 | static int orinoco_set_wiphy_params(struct wiphy *wiphy, u32 changed) | ||
202 | { | ||
203 | struct orinoco_private *priv = wiphy_priv(wiphy); | ||
204 | int frag_value = -1; | ||
205 | int rts_value = -1; | ||
206 | int err = 0; | ||
207 | |||
208 | if (changed & WIPHY_PARAM_RETRY_SHORT) { | ||
209 | /* Setting short retry not supported */ | ||
210 | err = -EINVAL; | ||
211 | } | ||
212 | |||
213 | if (changed & WIPHY_PARAM_RETRY_LONG) { | ||
214 | /* Setting long retry not supported */ | ||
215 | err = -EINVAL; | ||
216 | } | ||
217 | |||
218 | if (changed & WIPHY_PARAM_FRAG_THRESHOLD) { | ||
219 | /* Set fragmentation */ | ||
220 | if (priv->has_mwo) { | ||
221 | if (wiphy->frag_threshold < 0) | ||
222 | frag_value = 0; | ||
223 | else { | ||
224 | printk(KERN_WARNING "%s: Fixed fragmentation " | ||
225 | "is not supported on this firmware. " | ||
226 | "Using MWO robust instead.\n", | ||
227 | priv->ndev->name); | ||
228 | frag_value = 1; | ||
229 | } | ||
230 | } else { | ||
231 | if (wiphy->frag_threshold < 0) | ||
232 | frag_value = 2346; | ||
233 | else if ((wiphy->frag_threshold < 257) || | ||
234 | (wiphy->frag_threshold > 2347)) | ||
235 | err = -EINVAL; | ||
236 | else | ||
237 | /* cfg80211 value is 257-2347 (odd only) | ||
238 | * orinoco rid has range 256-2346 (even only) */ | ||
239 | frag_value = wiphy->frag_threshold & ~0x1; | ||
240 | } | ||
241 | } | ||
242 | |||
243 | if (changed & WIPHY_PARAM_RTS_THRESHOLD) { | ||
244 | /* Set RTS. | ||
245 | * | ||
246 | * Prism documentation suggests default of 2432, | ||
247 | * and a range of 0-3000. | ||
248 | * | ||
249 | * Current implementation uses 2347 as the default and | ||
250 | * the upper limit. | ||
251 | */ | ||
252 | |||
253 | if (wiphy->rts_threshold < 0) | ||
254 | rts_value = 2347; | ||
255 | else if (wiphy->rts_threshold > 2347) | ||
256 | err = -EINVAL; | ||
257 | else | ||
258 | rts_value = wiphy->rts_threshold; | ||
259 | } | ||
260 | |||
261 | if (!err) { | ||
262 | unsigned long flags; | ||
263 | |||
264 | if (orinoco_lock(priv, &flags) != 0) | ||
265 | return -EBUSY; | ||
266 | |||
267 | if (frag_value >= 0) { | ||
268 | if (priv->has_mwo) | ||
269 | priv->mwo_robust = frag_value; | ||
270 | else | ||
271 | priv->frag_thresh = frag_value; | ||
272 | } | ||
273 | if (rts_value >= 0) | ||
274 | priv->rts_thresh = rts_value; | ||
275 | |||
276 | err = orinoco_commit(priv); | ||
277 | |||
278 | orinoco_unlock(priv, &flags); | ||
279 | } | ||
280 | |||
281 | return err; | ||
282 | } | ||
283 | |||
199 | const struct cfg80211_ops orinoco_cfg_ops = { | 284 | const struct cfg80211_ops orinoco_cfg_ops = { |
200 | .change_virtual_intf = orinoco_change_vif, | 285 | .change_virtual_intf = orinoco_change_vif, |
201 | .set_channel = orinoco_set_channel, | 286 | .set_channel = orinoco_set_channel, |
202 | .scan = orinoco_scan, | 287 | .scan = orinoco_scan, |
288 | .set_wiphy_params = orinoco_set_wiphy_params, | ||
203 | }; | 289 | }; |
diff --git a/drivers/net/wireless/orinoco/hw.c b/drivers/net/wireless/orinoco/hw.c index 9f657afaa3e5..741f8cea95b9 100644 --- a/drivers/net/wireless/orinoco/hw.c +++ b/drivers/net/wireless/orinoco/hw.c | |||
@@ -374,6 +374,32 @@ int orinoco_hw_read_card_settings(struct orinoco_private *priv, u8 *dev_addr) | |||
374 | err = hermes_read_wordrec(hw, USER_BAP, | 374 | err = hermes_read_wordrec(hw, USER_BAP, |
375 | HERMES_RID_CNFPREAMBLE_SYMBOL, | 375 | HERMES_RID_CNFPREAMBLE_SYMBOL, |
376 | &priv->preamble); | 376 | &priv->preamble); |
377 | if (err) { | ||
378 | dev_err(dev, "Failed to read preamble setup\n"); | ||
379 | goto out; | ||
380 | } | ||
381 | } | ||
382 | |||
383 | /* Retry settings */ | ||
384 | err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_SHORTRETRYLIMIT, | ||
385 | &priv->short_retry_limit); | ||
386 | if (err) { | ||
387 | dev_err(dev, "Failed to read short retry limit\n"); | ||
388 | goto out; | ||
389 | } | ||
390 | |||
391 | err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_LONGRETRYLIMIT, | ||
392 | &priv->long_retry_limit); | ||
393 | if (err) { | ||
394 | dev_err(dev, "Failed to read long retry limit\n"); | ||
395 | goto out; | ||
396 | } | ||
397 | |||
398 | err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_MAXTRANSMITLIFETIME, | ||
399 | &priv->retry_lifetime); | ||
400 | if (err) { | ||
401 | dev_err(dev, "Failed to read max retry lifetime\n"); | ||
402 | goto out; | ||
377 | } | 403 | } |
378 | 404 | ||
379 | out: | 405 | out: |
diff --git a/drivers/net/wireless/orinoco/main.h b/drivers/net/wireless/orinoco/main.h index 21ab36cd76c7..4dadf9880a97 100644 --- a/drivers/net/wireless/orinoco/main.h +++ b/drivers/net/wireless/orinoco/main.h | |||
@@ -33,18 +33,6 @@ int orinoco_commit(struct orinoco_private *priv); | |||
33 | void orinoco_reset(struct work_struct *work); | 33 | void orinoco_reset(struct work_struct *work); |
34 | 34 | ||
35 | /* Information element helpers - find a home for these... */ | 35 | /* Information element helpers - find a home for these... */ |
36 | static inline u8 *orinoco_get_ie(u8 *data, size_t len, | ||
37 | enum ieee80211_eid eid) | ||
38 | { | ||
39 | u8 *p = data; | ||
40 | while ((p + 2) < (data + len)) { | ||
41 | if (p[0] == eid) | ||
42 | return p; | ||
43 | p += p[1] + 2; | ||
44 | } | ||
45 | return NULL; | ||
46 | } | ||
47 | |||
48 | #define WPA_OUI_TYPE "\x00\x50\xF2\x01" | 36 | #define WPA_OUI_TYPE "\x00\x50\xF2\x01" |
49 | #define WPA_SELECTOR_LEN 4 | 37 | #define WPA_SELECTOR_LEN 4 |
50 | static inline u8 *orinoco_get_wpa_ie(u8 *data, size_t len) | 38 | static inline u8 *orinoco_get_wpa_ie(u8 *data, size_t len) |
diff --git a/drivers/net/wireless/orinoco/orinoco.h b/drivers/net/wireless/orinoco/orinoco.h index 665ef56f8382..ff6b7b1d421d 100644 --- a/drivers/net/wireless/orinoco/orinoco.h +++ b/drivers/net/wireless/orinoco/orinoco.h | |||
@@ -131,6 +131,8 @@ struct orinoco_private { | |||
131 | u16 ap_density, rts_thresh; | 131 | u16 ap_density, rts_thresh; |
132 | u16 pm_on, pm_mcast, pm_period, pm_timeout; | 132 | u16 pm_on, pm_mcast, pm_period, pm_timeout; |
133 | u16 preamble; | 133 | u16 preamble; |
134 | u16 short_retry_limit, long_retry_limit; | ||
135 | u16 retry_lifetime; | ||
134 | #ifdef WIRELESS_SPY | 136 | #ifdef WIRELESS_SPY |
135 | struct iw_spy_data spy_data; /* iwspy support */ | 137 | struct iw_spy_data spy_data; /* iwspy support */ |
136 | struct iw_public_data wireless_data; | 138 | struct iw_public_data wireless_data; |
diff --git a/drivers/net/wireless/orinoco/scan.c b/drivers/net/wireless/orinoco/scan.c index 330d42d45333..4300d9db7d8c 100644 --- a/drivers/net/wireless/orinoco/scan.c +++ b/drivers/net/wireless/orinoco/scan.c | |||
@@ -127,7 +127,7 @@ void orinoco_add_extscan_result(struct orinoco_private *priv, | |||
127 | { | 127 | { |
128 | struct wiphy *wiphy = priv_to_wiphy(priv); | 128 | struct wiphy *wiphy = priv_to_wiphy(priv); |
129 | struct ieee80211_channel *channel; | 129 | struct ieee80211_channel *channel; |
130 | u8 *ie; | 130 | const u8 *ie; |
131 | u64 timestamp; | 131 | u64 timestamp; |
132 | s32 signal; | 132 | s32 signal; |
133 | u16 capability; | 133 | u16 capability; |
@@ -136,7 +136,7 @@ void orinoco_add_extscan_result(struct orinoco_private *priv, | |||
136 | int chan, freq; | 136 | int chan, freq; |
137 | 137 | ||
138 | ie_len = len - sizeof(*bss); | 138 | ie_len = len - sizeof(*bss); |
139 | ie = orinoco_get_ie(bss->data, ie_len, WLAN_EID_DS_PARAMS); | 139 | ie = cfg80211_find_ie(WLAN_EID_DS_PARAMS, bss->data, ie_len); |
140 | chan = ie ? ie[2] : 0; | 140 | chan = ie ? ie[2] : 0; |
141 | freq = ieee80211_dsss_chan_to_freq(chan); | 141 | freq = ieee80211_dsss_chan_to_freq(chan); |
142 | channel = ieee80211_get_channel(wiphy, freq); | 142 | channel = ieee80211_get_channel(wiphy, freq); |
diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c index 57b850ebfeb2..a1006bf430cc 100644 --- a/drivers/net/wireless/orinoco/wext.c +++ b/drivers/net/wireless/orinoco/wext.c | |||
@@ -538,125 +538,6 @@ static int orinoco_ioctl_setsens(struct net_device *dev, | |||
538 | return -EINPROGRESS; /* Call commit handler */ | 538 | return -EINPROGRESS; /* Call commit handler */ |
539 | } | 539 | } |
540 | 540 | ||
541 | static int orinoco_ioctl_setrts(struct net_device *dev, | ||
542 | struct iw_request_info *info, | ||
543 | struct iw_param *rrq, | ||
544 | char *extra) | ||
545 | { | ||
546 | struct orinoco_private *priv = ndev_priv(dev); | ||
547 | int val = rrq->value; | ||
548 | unsigned long flags; | ||
549 | |||
550 | if (rrq->disabled) | ||
551 | val = 2347; | ||
552 | |||
553 | if ((val < 0) || (val > 2347)) | ||
554 | return -EINVAL; | ||
555 | |||
556 | if (orinoco_lock(priv, &flags) != 0) | ||
557 | return -EBUSY; | ||
558 | |||
559 | priv->rts_thresh = val; | ||
560 | orinoco_unlock(priv, &flags); | ||
561 | |||
562 | return -EINPROGRESS; /* Call commit handler */ | ||
563 | } | ||
564 | |||
565 | static int orinoco_ioctl_getrts(struct net_device *dev, | ||
566 | struct iw_request_info *info, | ||
567 | struct iw_param *rrq, | ||
568 | char *extra) | ||
569 | { | ||
570 | struct orinoco_private *priv = ndev_priv(dev); | ||
571 | |||
572 | rrq->value = priv->rts_thresh; | ||
573 | rrq->disabled = (rrq->value == 2347); | ||
574 | rrq->fixed = 1; | ||
575 | |||
576 | return 0; | ||
577 | } | ||
578 | |||
579 | static int orinoco_ioctl_setfrag(struct net_device *dev, | ||
580 | struct iw_request_info *info, | ||
581 | struct iw_param *frq, | ||
582 | char *extra) | ||
583 | { | ||
584 | struct orinoco_private *priv = ndev_priv(dev); | ||
585 | int err = -EINPROGRESS; /* Call commit handler */ | ||
586 | unsigned long flags; | ||
587 | |||
588 | if (orinoco_lock(priv, &flags) != 0) | ||
589 | return -EBUSY; | ||
590 | |||
591 | if (priv->has_mwo) { | ||
592 | if (frq->disabled) | ||
593 | priv->mwo_robust = 0; | ||
594 | else { | ||
595 | if (frq->fixed) | ||
596 | printk(KERN_WARNING "%s: Fixed fragmentation " | ||
597 | "is not supported on this firmware. " | ||
598 | "Using MWO robust instead.\n", | ||
599 | dev->name); | ||
600 | priv->mwo_robust = 1; | ||
601 | } | ||
602 | } else { | ||
603 | if (frq->disabled) | ||
604 | priv->frag_thresh = 2346; | ||
605 | else { | ||
606 | if ((frq->value < 256) || (frq->value > 2346)) | ||
607 | err = -EINVAL; | ||
608 | else | ||
609 | /* must be even */ | ||
610 | priv->frag_thresh = frq->value & ~0x1; | ||
611 | } | ||
612 | } | ||
613 | |||
614 | orinoco_unlock(priv, &flags); | ||
615 | |||
616 | return err; | ||
617 | } | ||
618 | |||
619 | static int orinoco_ioctl_getfrag(struct net_device *dev, | ||
620 | struct iw_request_info *info, | ||
621 | struct iw_param *frq, | ||
622 | char *extra) | ||
623 | { | ||
624 | struct orinoco_private *priv = ndev_priv(dev); | ||
625 | hermes_t *hw = &priv->hw; | ||
626 | int err; | ||
627 | u16 val; | ||
628 | unsigned long flags; | ||
629 | |||
630 | if (orinoco_lock(priv, &flags) != 0) | ||
631 | return -EBUSY; | ||
632 | |||
633 | if (priv->has_mwo) { | ||
634 | err = hermes_read_wordrec(hw, USER_BAP, | ||
635 | HERMES_RID_CNFMWOROBUST_AGERE, | ||
636 | &val); | ||
637 | if (err) | ||
638 | val = 0; | ||
639 | |||
640 | frq->value = val ? 2347 : 0; | ||
641 | frq->disabled = !val; | ||
642 | frq->fixed = 0; | ||
643 | } else { | ||
644 | err = hermes_read_wordrec(hw, USER_BAP, | ||
645 | HERMES_RID_CNFFRAGMENTATIONTHRESHOLD, | ||
646 | &val); | ||
647 | if (err) | ||
648 | val = 0; | ||
649 | |||
650 | frq->value = val; | ||
651 | frq->disabled = (val >= 2346); | ||
652 | frq->fixed = 1; | ||
653 | } | ||
654 | |||
655 | orinoco_unlock(priv, &flags); | ||
656 | |||
657 | return err; | ||
658 | } | ||
659 | |||
660 | static int orinoco_ioctl_setrate(struct net_device *dev, | 541 | static int orinoco_ioctl_setrate(struct net_device *dev, |
661 | struct iw_request_info *info, | 542 | struct iw_request_info *info, |
662 | struct iw_param *rrq, | 543 | struct iw_param *rrq, |
@@ -1201,60 +1082,6 @@ static int orinoco_ioctl_set_mlme(struct net_device *dev, | |||
1201 | return ret; | 1082 | return ret; |
1202 | } | 1083 | } |
1203 | 1084 | ||
1204 | static int orinoco_ioctl_getretry(struct net_device *dev, | ||
1205 | struct iw_request_info *info, | ||
1206 | struct iw_param *rrq, | ||
1207 | char *extra) | ||
1208 | { | ||
1209 | struct orinoco_private *priv = ndev_priv(dev); | ||
1210 | hermes_t *hw = &priv->hw; | ||
1211 | int err = 0; | ||
1212 | u16 short_limit, long_limit, lifetime; | ||
1213 | unsigned long flags; | ||
1214 | |||
1215 | if (orinoco_lock(priv, &flags) != 0) | ||
1216 | return -EBUSY; | ||
1217 | |||
1218 | err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_SHORTRETRYLIMIT, | ||
1219 | &short_limit); | ||
1220 | if (err) | ||
1221 | goto out; | ||
1222 | |||
1223 | err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_LONGRETRYLIMIT, | ||
1224 | &long_limit); | ||
1225 | if (err) | ||
1226 | goto out; | ||
1227 | |||
1228 | err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_MAXTRANSMITLIFETIME, | ||
1229 | &lifetime); | ||
1230 | if (err) | ||
1231 | goto out; | ||
1232 | |||
1233 | rrq->disabled = 0; /* Can't be disabled */ | ||
1234 | |||
1235 | /* Note : by default, display the retry number */ | ||
1236 | if ((rrq->flags & IW_RETRY_TYPE) == IW_RETRY_LIFETIME) { | ||
1237 | rrq->flags = IW_RETRY_LIFETIME; | ||
1238 | rrq->value = lifetime * 1000; /* ??? */ | ||
1239 | } else { | ||
1240 | /* By default, display the min number */ | ||
1241 | if ((rrq->flags & IW_RETRY_LONG)) { | ||
1242 | rrq->flags = IW_RETRY_LIMIT | IW_RETRY_LONG; | ||
1243 | rrq->value = long_limit; | ||
1244 | } else { | ||
1245 | rrq->flags = IW_RETRY_LIMIT; | ||
1246 | rrq->value = short_limit; | ||
1247 | if (short_limit != long_limit) | ||
1248 | rrq->flags |= IW_RETRY_SHORT; | ||
1249 | } | ||
1250 | } | ||
1251 | |||
1252 | out: | ||
1253 | orinoco_unlock(priv, &flags); | ||
1254 | |||
1255 | return err; | ||
1256 | } | ||
1257 | |||
1258 | static int orinoco_ioctl_reset(struct net_device *dev, | 1085 | static int orinoco_ioctl_reset(struct net_device *dev, |
1259 | struct iw_request_info *info, | 1086 | struct iw_request_info *info, |
1260 | void *wrqu, | 1087 | void *wrqu, |
@@ -1528,11 +1355,11 @@ static const iw_handler orinoco_handler[] = { | |||
1528 | IW_HANDLER(SIOCGIWESSID, (iw_handler)orinoco_ioctl_getessid), | 1355 | IW_HANDLER(SIOCGIWESSID, (iw_handler)orinoco_ioctl_getessid), |
1529 | IW_HANDLER(SIOCSIWRATE, (iw_handler)orinoco_ioctl_setrate), | 1356 | IW_HANDLER(SIOCSIWRATE, (iw_handler)orinoco_ioctl_setrate), |
1530 | IW_HANDLER(SIOCGIWRATE, (iw_handler)orinoco_ioctl_getrate), | 1357 | IW_HANDLER(SIOCGIWRATE, (iw_handler)orinoco_ioctl_getrate), |
1531 | IW_HANDLER(SIOCSIWRTS, (iw_handler)orinoco_ioctl_setrts), | 1358 | IW_HANDLER(SIOCSIWRTS, (iw_handler)cfg80211_wext_siwrts), |
1532 | IW_HANDLER(SIOCGIWRTS, (iw_handler)orinoco_ioctl_getrts), | 1359 | IW_HANDLER(SIOCGIWRTS, (iw_handler)cfg80211_wext_giwrts), |
1533 | IW_HANDLER(SIOCSIWFRAG, (iw_handler)orinoco_ioctl_setfrag), | 1360 | IW_HANDLER(SIOCSIWFRAG, (iw_handler)cfg80211_wext_siwfrag), |
1534 | IW_HANDLER(SIOCGIWFRAG, (iw_handler)orinoco_ioctl_getfrag), | 1361 | IW_HANDLER(SIOCGIWFRAG, (iw_handler)cfg80211_wext_giwfrag), |
1535 | IW_HANDLER(SIOCGIWRETRY, (iw_handler)orinoco_ioctl_getretry), | 1362 | IW_HANDLER(SIOCGIWRETRY, (iw_handler)cfg80211_wext_giwretry), |
1536 | IW_HANDLER(SIOCSIWENCODE, (iw_handler)orinoco_ioctl_setiwencode), | 1363 | IW_HANDLER(SIOCSIWENCODE, (iw_handler)orinoco_ioctl_setiwencode), |
1537 | IW_HANDLER(SIOCGIWENCODE, (iw_handler)orinoco_ioctl_getiwencode), | 1364 | IW_HANDLER(SIOCGIWENCODE, (iw_handler)orinoco_ioctl_getiwencode), |
1538 | IW_HANDLER(SIOCSIWPOWER, (iw_handler)orinoco_ioctl_setpower), | 1365 | IW_HANDLER(SIOCSIWPOWER, (iw_handler)orinoco_ioctl_setpower), |