Lines Matching +full:firmware +full:- +full:initialised
28 wiphy->privid = orinoco_wiphy_privid; in orinoco_wiphy_init()
30 set_wiphy_dev(wiphy, priv->dev); in orinoco_wiphy_init()
33 /* Called after firmware is initialised */
39 if (priv->firmware_type == FIRMWARE_TYPE_AGERE) in orinoco_wiphy_register()
40 wiphy->max_scan_ssids = 1; in orinoco_wiphy_register()
42 wiphy->max_scan_ssids = 0; in orinoco_wiphy_register()
44 wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); in orinoco_wiphy_register()
46 /* TODO: should we set if we only have demo ad-hoc? in orinoco_wiphy_register()
47 * (priv->has_port3) in orinoco_wiphy_register()
49 if (priv->has_ibss) in orinoco_wiphy_register()
50 wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); in orinoco_wiphy_register()
52 if (!priv->broken_monitor || force_monitor) in orinoco_wiphy_register()
53 wiphy->interface_modes |= BIT(NL80211_IFTYPE_MONITOR); in orinoco_wiphy_register()
55 priv->band.bitrates = orinoco_rates; in orinoco_wiphy_register()
56 priv->band.n_bitrates = ARRAY_SIZE(orinoco_rates); in orinoco_wiphy_register()
60 if (priv->channel_mask & (1 << i)) { in orinoco_wiphy_register()
61 priv->channels[i].center_freq = in orinoco_wiphy_register()
67 priv->band.channels = priv->channels; in orinoco_wiphy_register()
68 priv->band.n_channels = channels; in orinoco_wiphy_register()
70 wiphy->bands[NL80211_BAND_2GHZ] = &priv->band; in orinoco_wiphy_register()
71 wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; in orinoco_wiphy_register()
74 if (priv->has_wep) { in orinoco_wiphy_register()
75 priv->cipher_suites[i] = WLAN_CIPHER_SUITE_WEP40; in orinoco_wiphy_register()
78 if (priv->has_big_wep) { in orinoco_wiphy_register()
79 priv->cipher_suites[i] = WLAN_CIPHER_SUITE_WEP104; in orinoco_wiphy_register()
83 if (priv->has_wpa) { in orinoco_wiphy_register()
84 priv->cipher_suites[i] = WLAN_CIPHER_SUITE_TKIP; in orinoco_wiphy_register()
87 wiphy->cipher_suites = priv->cipher_suites; in orinoco_wiphy_register()
88 wiphy->n_cipher_suites = i; in orinoco_wiphy_register()
90 wiphy->rts_threshold = priv->rts_thresh; in orinoco_wiphy_register()
91 if (!priv->has_mwo) in orinoco_wiphy_register()
92 wiphy->frag_threshold = priv->frag_thresh + 1; in orinoco_wiphy_register()
93 wiphy->retry_short = priv->short_retry_limit; in orinoco_wiphy_register()
94 wiphy->retry_long = priv->long_retry_limit; in orinoco_wiphy_register()
108 return -EBUSY; in orinoco_change_vif()
112 if (!priv->has_ibss && !priv->has_port3) in orinoco_change_vif()
113 err = -EINVAL; in orinoco_change_vif()
120 if (priv->broken_monitor && !force_monitor) { in orinoco_change_vif()
122 "Monitor mode support is buggy in this firmware, not enabling\n"); in orinoco_change_vif()
123 err = -EINVAL; in orinoco_change_vif()
128 err = -EINVAL; in orinoco_change_vif()
132 priv->iw_mode = type; in orinoco_change_vif()
149 return -EINVAL; in orinoco_scan()
151 if (priv->scan_request && priv->scan_request != request) in orinoco_scan()
152 return -EBUSY; in orinoco_scan()
154 priv->scan_request = request; in orinoco_scan()
156 err = orinoco_hw_trigger_scan(priv, request->ssids); in orinoco_scan()
159 priv->scan_request = NULL; in orinoco_scan()
172 if (!chandef->chan) in orinoco_set_monitor_channel()
173 return -EINVAL; in orinoco_set_monitor_channel()
176 return -EINVAL; in orinoco_set_monitor_channel()
178 if (chandef->chan->band != NL80211_BAND_2GHZ) in orinoco_set_monitor_channel()
179 return -EINVAL; in orinoco_set_monitor_channel()
181 channel = ieee80211_frequency_to_channel(chandef->chan->center_freq); in orinoco_set_monitor_channel()
184 !(priv->channel_mask & (1 << (channel - 1)))) in orinoco_set_monitor_channel()
185 return -EINVAL; in orinoco_set_monitor_channel()
188 return -EBUSY; in orinoco_set_monitor_channel()
190 priv->channel = channel; in orinoco_set_monitor_channel()
191 if (priv->iw_mode == NL80211_IFTYPE_MONITOR) { in orinoco_set_monitor_channel()
192 /* Fast channel change - no commit if successful */ in orinoco_set_monitor_channel()
193 struct hermes *hw = &priv->hw; in orinoco_set_monitor_channel()
194 err = hw->ops->cmd_wait(hw, HERMES_CMD_TEST | in orinoco_set_monitor_channel()
206 int frag_value = -1; in orinoco_set_wiphy_params()
207 int rts_value = -1; in orinoco_set_wiphy_params()
212 err = -EINVAL; in orinoco_set_wiphy_params()
217 err = -EINVAL; in orinoco_set_wiphy_params()
222 if (priv->has_mwo) { in orinoco_set_wiphy_params()
223 if (wiphy->frag_threshold == -1) in orinoco_set_wiphy_params()
227 "is not supported on this firmware. " in orinoco_set_wiphy_params()
229 priv->ndev->name); in orinoco_set_wiphy_params()
233 if (wiphy->frag_threshold == -1) in orinoco_set_wiphy_params()
235 else if ((wiphy->frag_threshold < 257) || in orinoco_set_wiphy_params()
236 (wiphy->frag_threshold > 2347)) in orinoco_set_wiphy_params()
237 err = -EINVAL; in orinoco_set_wiphy_params()
239 /* cfg80211 value is 257-2347 (odd only) in orinoco_set_wiphy_params()
240 * orinoco rid has range 256-2346 (even only) */ in orinoco_set_wiphy_params()
241 frag_value = wiphy->frag_threshold & ~0x1; in orinoco_set_wiphy_params()
249 * and a range of 0-3000. in orinoco_set_wiphy_params()
255 if (wiphy->rts_threshold == -1) in orinoco_set_wiphy_params()
257 else if (wiphy->rts_threshold > 2347) in orinoco_set_wiphy_params()
258 err = -EINVAL; in orinoco_set_wiphy_params()
260 rts_value = wiphy->rts_threshold; in orinoco_set_wiphy_params()
267 return -EBUSY; in orinoco_set_wiphy_params()
270 if (priv->has_mwo) in orinoco_set_wiphy_params()
271 priv->mwo_robust = frag_value; in orinoco_set_wiphy_params()
273 priv->frag_thresh = frag_value; in orinoco_set_wiphy_params()
276 priv->rts_thresh = rts_value; in orinoco_set_wiphy_params()