Lines Matching refs:wimax_dev

23  * wimax_dev for more information.
35 * wimax_dev->op_rfkill_sw_toggle() Driver backend
62 * @wimax_dev: WiMAX device descriptor
78 void wimax_report_rfkill_hw(struct wimax_dev *wimax_dev,
82 struct device *dev = wimax_dev_to_dev(wimax_dev);
85 d_fnstart(3, dev, "(wimax_dev %p state %u)\n", wimax_dev, state);
89 mutex_lock(&wimax_dev->mutex);
90 result = wimax_dev_is_ready(wimax_dev);
94 if (state != wimax_dev->rf_hw) {
95 wimax_dev->rf_hw = state;
96 if (wimax_dev->rf_hw == WIMAX_RF_ON &&
97 wimax_dev->rf_sw == WIMAX_RF_ON)
102 result = rfkill_set_hw_state(wimax_dev->rfkill,
105 __wimax_state_change(wimax_dev, wimax_state);
108 mutex_unlock(&wimax_dev->mutex);
109 d_fnend(3, dev, "(wimax_dev %p state %u) = void [%d]\n",
110 wimax_dev, state, result);
118 * @wimax_dev: WiMAX device descriptor
133 void wimax_report_rfkill_sw(struct wimax_dev *wimax_dev,
137 struct device *dev = wimax_dev_to_dev(wimax_dev);
140 d_fnstart(3, dev, "(wimax_dev %p state %u)\n", wimax_dev, state);
144 mutex_lock(&wimax_dev->mutex);
145 result = wimax_dev_is_ready(wimax_dev);
149 if (state != wimax_dev->rf_sw) {
150 wimax_dev->rf_sw = state;
151 if (wimax_dev->rf_hw == WIMAX_RF_ON &&
152 wimax_dev->rf_sw == WIMAX_RF_ON)
156 __wimax_state_change(wimax_dev, wimax_state);
157 rfkill_set_sw_state(wimax_dev->rfkill, state == WIMAX_RF_OFF);
160 mutex_unlock(&wimax_dev->mutex);
161 d_fnend(3, dev, "(wimax_dev %p state %u) = void [%d]\n",
162 wimax_dev, state, result);
187 * WARNING: wimax_dev must be locked
190 int __wimax_rf_toggle_radio(struct wimax_dev *wimax_dev,
194 struct device *dev = wimax_dev_to_dev(wimax_dev);
198 d_fnstart(3, dev, "(wimax_dev %p state %u)\n", wimax_dev, state);
199 if (wimax_dev->rf_sw == state)
201 if (wimax_dev->op_rfkill_sw_toggle != NULL)
202 result = wimax_dev->op_rfkill_sw_toggle(wimax_dev, state);
209 wimax_dev->rf_sw = state;
212 __wimax_state_change(wimax_dev, wimax_state);
215 d_fnend(3, dev, "(wimax_dev %p state %u) = %d\n",
216 wimax_dev, state, result);
236 struct wimax_dev *wimax_dev = data;
237 struct device *dev = wimax_dev_to_dev(wimax_dev);
240 d_fnstart(3, dev, "(wimax_dev %p blocked %u)\n", wimax_dev, blocked);
244 mutex_lock(&wimax_dev->mutex);
245 if (wimax_dev->state <= __WIMAX_ST_QUIESCING)
248 result = __wimax_rf_toggle_radio(wimax_dev, rf_state);
249 mutex_unlock(&wimax_dev->mutex);
250 d_fnend(3, dev, "(wimax_dev %p blocked %u) = %d\n",
251 wimax_dev, blocked, result);
262 * @wimax_dev: WiMAX device descriptor
285 int wimax_rfkill(struct wimax_dev *wimax_dev, enum wimax_rf_state state)
288 struct device *dev = wimax_dev_to_dev(wimax_dev);
290 d_fnstart(3, dev, "(wimax_dev %p state %u)\n", wimax_dev, state);
291 mutex_lock(&wimax_dev->mutex);
292 result = wimax_dev_is_ready(wimax_dev);
305 result = __wimax_rf_toggle_radio(wimax_dev, state);
308 rfkill_set_sw_state(wimax_dev->rfkill, state == WIMAX_RF_OFF);
316 result = wimax_dev->rf_sw << 1 | wimax_dev->rf_hw;
319 mutex_unlock(&wimax_dev->mutex);
320 d_fnend(3, dev, "(wimax_dev %p state %u) = %d\n",
321 wimax_dev, state, result);
330 * WARNING: wimax_dev->mutex must be unlocked
332 int wimax_rfkill_add(struct wimax_dev *wimax_dev)
336 struct device *dev = wimax_dev_to_dev(wimax_dev);
338 d_fnstart(3, dev, "(wimax_dev %p)\n", wimax_dev);
341 rfkill = rfkill_alloc(wimax_dev->name, dev, RFKILL_TYPE_WIMAX,
342 &wimax_rfkill_ops, wimax_dev);
348 wimax_dev->rfkill = rfkill;
351 result = rfkill_register(wimax_dev->rfkill);
356 if (wimax_dev->op_rfkill_sw_toggle == NULL)
357 wimax_dev->rf_sw = WIMAX_RF_ON;
359 d_fnend(3, dev, "(wimax_dev %p) = 0\n", wimax_dev);
363 rfkill_destroy(wimax_dev->rfkill);
365 d_fnend(3, dev, "(wimax_dev %p) = %d\n", wimax_dev, result);
376 * WARNING: wimax_dev->mutex must be unlocked
378 void wimax_rfkill_rm(struct wimax_dev *wimax_dev)
380 struct device *dev = wimax_dev_to_dev(wimax_dev);
381 d_fnstart(3, dev, "(wimax_dev %p)\n", wimax_dev);
382 rfkill_unregister(wimax_dev->rfkill);
383 rfkill_destroy(wimax_dev->rfkill);
384 d_fnend(3, dev, "(wimax_dev %p)\n", wimax_dev);
401 struct wimax_dev *wimax_dev;
412 wimax_dev = wimax_dev_get_by_genl_info(info, ifindex);
413 if (wimax_dev == NULL)
415 dev = wimax_dev_to_dev(wimax_dev);
425 result = wimax_rfkill(wimax_dev, new_state);
427 dev_put(wimax_dev->net_dev);