Lines Matching refs:sc

75 atu_usb_request(struct atu_softc *sc, uint8_t type,  in atu_usb_request()  argument
95 uret = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, in atu_usb_request()
108 uret = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, in atu_usb_request()
119 atu_get_mib(struct atu_softc *sc, uint8_t type, uint8_t size, in atu_get_mib() argument
122 return atu_usb_request(sc, ATU_VENDOR_IF_IN, 0x033, in atu_get_mib()
127 atu_get_cmd_status(struct atu_softc *sc, uint8_t cmd, uint8_t *status) in atu_get_cmd_status() argument
134 return atu_usb_request(sc, ATU_VENDOR_IF_IN, 0x22, cmd, in atu_get_cmd_status()
139 atu_get_dfu_state(struct atu_softc *sc) in atu_get_dfu_state() argument
143 if (atu_usb_request(sc, DFU_GETSTATE, 0, 0, 1, &state)) in atu_get_dfu_state()
149 atu_get_opmode(struct atu_softc *sc, uint8_t *mode) in atu_get_opmode() argument
151 return atu_usb_request(sc, ATU_VENDOR_IF_IN, 0x33, 0x0001, in atu_get_opmode()
156 atu_get_config(struct atu_softc *sc) in atu_get_config() argument
158 struct ieee80211com *ic = &sc->sc_ic; in atu_get_config()
163 switch (sc->sc_radio) { in atu_get_config()
169 err = atu_usb_request(sc, ATU_VENDOR_IF_IN, 0x33, 0x0a02, in atu_get_config()
173 sc->sc_name); in atu_get_config()
181 err = atu_usb_request(sc, ATU_VENDOR_IF_IN, 0x33, 0x0902, in atu_get_config()
185 sc->sc_name); in atu_get_config()
197 atu_wait_completion(struct atu_softc *sc, uint8_t cmd, uint8_t *status) in atu_wait_completion() argument
202 while ((err = atu_get_cmd_status(sc, cmd, statusreq)) == 0) { in atu_wait_completion()
211 sc->sc_name, cmd); in atu_wait_completion()
222 atu_send_command(struct atu_softc *sc, uint8_t *command, int size) in atu_send_command() argument
224 return atu_usb_request(sc, ATU_VENDOR_DEV_OUT, 0x0e, 0x0000, in atu_send_command()
229 atu_send_mib(struct atu_softc *sc, uint8_t type, uint8_t size, in atu_send_mib() argument
262 err = atu_usb_request(sc, ATU_VENDOR_DEV_OUT, 0x0e, 0x0000, in atu_send_mib()
267 return (atu_wait_completion(sc, CMD_SET_MIB, NULL)); in atu_send_mib()
271 atu_switch_radio(struct atu_softc *sc, boolean_t on) in atu_switch_radio() argument
278 if (sc->sc_radio == RadioIntersil) in atu_switch_radio()
281 ostate = ATU_RADIO_ON(sc) ? B_TRUE : B_FALSE; in atu_switch_radio()
286 err = atu_send_command(sc, (uint8_t *)&radio, in atu_switch_radio()
291 err = atu_wait_completion(sc, radio.Cmd, NULL); in atu_switch_radio()
296 sc->sc_flags |= ATU_FLAG_RADIO_ON; in atu_switch_radio()
298 sc->sc_flags &= ~ATU_FLAG_RADIO_ON; in atu_switch_radio()
305 atu_config(struct atu_softc *sc) in atu_config() argument
307 struct ieee80211com *ic = &sc->sc_ic; in atu_config()
313 err = atu_send_mib(sc, MIB_MAC_ADDR_STA, ic->ic_macaddr); in atu_config()
316 sc->sc_name); in atu_config()
343 sc->sc_name, k->wk_keylen); in atu_config()
364 err = atu_send_command(sc, (uint8_t *)&cmd, sizeof (cmd)); in atu_config()
367 err = atu_wait_completion(sc, CMD_STARTUP, NULL); in atu_config()
371 err = atu_switch_radio(sc, B_TRUE); in atu_config()
375 err = atu_send_mib(sc, MIB_MAC_MGMT_POWER_MODE, in atu_config()
384 atu_start_scan(struct atu_softc *sc) in atu_start_scan() argument
386 struct ieee80211com *ic = &sc->sc_ic; in atu_start_scan()
390 if (!ATU_RUNNING(sc)) in atu_start_scan()
407 err = atu_send_command(sc, (uint8_t *)&scan, sizeof (scan)); in atu_start_scan()
410 sc->sc_name); in atu_start_scan()
414 err = atu_wait_completion(sc, CMD_START_SCAN, NULL); in atu_start_scan()
417 sc->sc_name); in atu_start_scan()
425 atu_join(struct atu_softc *sc, struct ieee80211_node *node) in atu_join() argument
444 join.channel = ieee80211_chan2ieee(&sc->sc_ic, node->in_chan); in atu_join()
448 err = atu_send_command(sc, (uint8_t *)&join, sizeof (join)); in atu_join()
451 sc->sc_name); in atu_join()
454 err = atu_wait_completion(sc, CMD_JOIN, &status); in atu_join()
460 sc->sc_name, status); in atu_join()
470 struct atu_softc *sc = (struct atu_softc *)ic; in atu_newstate() local
474 ATU_LOCK(sc); in atu_newstate()
476 if (sc->sc_scan_timer != 0) { in atu_newstate()
477 ATU_UNLOCK(sc); in atu_newstate()
478 (void) untimeout(sc->sc_scan_timer); in atu_newstate()
479 ATU_LOCK(sc); in atu_newstate()
480 sc->sc_scan_timer = 0; in atu_newstate()
491 ATU_UNLOCK(sc); in atu_newstate()
492 sc->sc_newstate(ic, nstate, arg); in atu_newstate()
493 ATU_LOCK(sc); in atu_newstate()
494 if ((err = atu_start_scan(sc)) != 0) { in atu_newstate()
495 ATU_UNLOCK(sc); in atu_newstate()
499 sc->sc_scan_timer = timeout( in atu_newstate()
501 (void *)&sc->sc_ic, 0); in atu_newstate()
503 ATU_UNLOCK(sc); in atu_newstate()
514 err = atu_join(sc, ic->ic_bss); in atu_newstate()
516 ATU_UNLOCK(sc); in atu_newstate()
527 ATU_UNLOCK(sc); in atu_newstate()
528 err = sc->sc_newstate(ic, nstate, arg); in atu_newstate()
534 atu_open_pipes(struct atu_softc *sc) in atu_open_pipes() argument
540 ep = usb_lookup_ep_data(sc->sc_dip, sc->sc_udev, 0, 0, 0, in atu_open_pipes()
544 uret = usb_pipe_open(sc->sc_dip, &ep->ep_descr, &policy, in atu_open_pipes()
545 USB_FLAGS_SLEEP, &sc->sc_tx_pipe); in atu_open_pipes()
549 ep = usb_lookup_ep_data(sc->sc_dip, sc->sc_udev, 0, 0, 0, in atu_open_pipes()
553 uret = usb_pipe_open(sc->sc_dip, &ep->ep_descr, &policy, in atu_open_pipes()
554 USB_FLAGS_SLEEP, &sc->sc_rx_pipe); in atu_open_pipes()
560 if (sc->sc_rx_pipe != NULL) { in atu_open_pipes()
561 usb_pipe_close(sc->sc_dip, sc->sc_rx_pipe, in atu_open_pipes()
563 sc->sc_rx_pipe = NULL; in atu_open_pipes()
566 if (sc->sc_tx_pipe != NULL) { in atu_open_pipes()
567 usb_pipe_close(sc->sc_dip, sc->sc_tx_pipe, in atu_open_pipes()
569 sc->sc_tx_pipe = NULL; in atu_open_pipes()
576 atu_close_pipes(struct atu_softc *sc) in atu_close_pipes() argument
580 if (sc->sc_rx_pipe != NULL) { in atu_close_pipes()
581 usb_pipe_reset(sc->sc_dip, sc->sc_rx_pipe, flags, NULL, 0); in atu_close_pipes()
582 usb_pipe_close(sc->sc_dip, sc->sc_rx_pipe, flags, NULL, 0); in atu_close_pipes()
583 sc->sc_rx_pipe = NULL; in atu_close_pipes()
586 if (sc->sc_tx_pipe != NULL) { in atu_close_pipes()
587 usb_pipe_reset(sc->sc_dip, sc->sc_tx_pipe, flags, NULL, 0); in atu_close_pipes()
588 usb_pipe_close(sc->sc_dip, sc->sc_tx_pipe, flags, NULL, 0); in atu_close_pipes()
589 sc->sc_tx_pipe = NULL; in atu_close_pipes()
593 static int atu_rx_trigger(struct atu_softc *sc);
599 struct atu_softc *sc = (struct atu_softc *)req->bulk_client_private; in atu_rxeof() local
600 struct ieee80211com *ic = &sc->sc_ic; in atu_rxeof()
609 sc->sc_rx_err++; in atu_rxeof()
616 sc->sc_name, len); in atu_rxeof()
617 sc->sc_rx_err++; in atu_rxeof()
625 sc->sc_name, len, pktlen); in atu_rxeof()
626 sc->sc_rx_err++; in atu_rxeof()
643 mutex_enter(&sc->sc_rxlock); in atu_rxeof()
644 sc->rx_queued--; in atu_rxeof()
645 mutex_exit(&sc->sc_rxlock); in atu_rxeof()
647 if (ATU_RUNNING(sc)) in atu_rxeof()
648 (void) atu_rx_trigger(sc); in atu_rxeof()
659 struct atu_softc *sc = (struct atu_softc *)req->bulk_client_private; in atu_txeof() local
660 struct ieee80211com *ic = &sc->sc_ic; in atu_txeof()
666 mutex_enter(&sc->sc_txlock); in atu_txeof()
667 sc->tx_queued--; in atu_txeof()
669 if (sc->sc_need_sched) { in atu_txeof()
670 sc->sc_need_sched = 0; in atu_txeof()
674 mutex_exit(&sc->sc_txlock); in atu_txeof()
678 atu_rx_trigger(struct atu_softc *sc) in atu_rx_trigger() argument
683 req = usb_alloc_bulk_req(sc->sc_dip, ATU_RX_BUFSZ, USB_FLAGS_SLEEP); in atu_rx_trigger()
688 req->bulk_client_private = (usb_opaque_t)sc; in atu_rx_trigger()
696 uret = usb_pipe_bulk_xfer(sc->sc_rx_pipe, req, 0); in atu_rx_trigger()
702 mutex_enter(&sc->sc_rxlock); in atu_rx_trigger()
703 sc->rx_queued++; in atu_rx_trigger()
704 mutex_exit(&sc->sc_rxlock); in atu_rx_trigger()
710 atu_tx_trigger(struct atu_softc *sc, mblk_t *mp) in atu_tx_trigger() argument
715 req = usb_alloc_bulk_req(sc->sc_dip, 0, USB_FLAGS_SLEEP); in atu_tx_trigger()
721 req->bulk_client_private = (usb_opaque_t)sc; in atu_tx_trigger()
729 uret = usb_pipe_bulk_xfer(sc->sc_tx_pipe, req, 0); in atu_tx_trigger()
736 mutex_enter(&sc->sc_txlock); in atu_tx_trigger()
737 sc->tx_queued++; in atu_tx_trigger()
738 mutex_exit(&sc->sc_txlock); in atu_tx_trigger()
744 atu_init_rx_queue(struct atu_softc *sc) in atu_init_rx_queue() argument
748 mutex_enter(&sc->sc_rxlock); in atu_init_rx_queue()
749 sc->rx_queued = 0; in atu_init_rx_queue()
750 mutex_exit(&sc->sc_rxlock); in atu_init_rx_queue()
753 err = atu_rx_trigger(sc); in atu_init_rx_queue()
762 atu_init_tx_queue(struct atu_softc *sc) in atu_init_tx_queue() argument
764 mutex_enter(&sc->sc_txlock); in atu_init_tx_queue()
765 sc->tx_queued = 0; in atu_init_tx_queue()
766 mutex_exit(&sc->sc_txlock); in atu_init_tx_queue()
772 struct atu_softc *sc = (struct atu_softc *)ic; in atu_send() local
779 mutex_enter(&sc->sc_txlock); in atu_send()
780 if (sc->tx_queued > ATU_TX_LIST_CNT) { in atu_send()
781 sc->sc_tx_nobuf++; in atu_send()
782 mutex_exit(&sc->sc_txlock); in atu_send()
786 mutex_exit(&sc->sc_txlock); in atu_send()
790 sc->sc_tx_nobuf++; in atu_send()
830 err = atu_tx_trigger(sc, m); in atu_send()
846 atu_stop(struct atu_softc *sc) in atu_stop() argument
848 sc->sc_flags &= ~ATU_FLAG_RUNNING; in atu_stop()
849 atu_close_pipes(sc); in atu_stop()
851 return (atu_switch_radio(sc, B_FALSE)); in atu_stop()
855 atu_init(struct atu_softc *sc) in atu_init() argument
859 err = atu_stop(sc); in atu_init()
863 err = atu_open_pipes(sc); in atu_init()
867 err = atu_config(sc); in atu_init()
870 sc->sc_name); in atu_init()
874 atu_init_tx_queue(sc); in atu_init()
876 err = atu_init_rx_queue(sc); in atu_init()
878 cmn_err(CE_WARN, "%s: rx queue init failed\n", sc->sc_name); in atu_init()
882 sc->sc_flags |= ATU_FLAG_RUNNING; in atu_init()
886 (void) atu_stop(sc); in atu_init()
893 struct atu_softc *sc = arg; in atu_watchdog() local
894 struct ieee80211com *ic = &sc->sc_ic; in atu_watchdog()
898 ATU_LOCK(sc); in atu_watchdog()
899 if (!ATU_RUNNING(sc)) { in atu_watchdog()
900 ATU_UNLOCK(sc); in atu_watchdog()
904 ATU_UNLOCK(sc); in atu_watchdog()
919 struct atu_softc *sc = arg; in atu_dfu_stage1() local
942 if (sc->sc_radio == atu_fw_table[i].atur_type) { in atu_dfu_stage1()
947 state = atu_get_dfu_state(sc); in atu_dfu_stage1()
952 err = atu_usb_request(sc, DFU_GETSTATUS, 0, 0, 6, in atu_dfu_stage1()
956 sc->sc_name); in atu_dfu_stage1()
970 err = atu_usb_request(sc, DFU_DNLOAD, block++, 0, in atu_dfu_stage1()
974 sc->sc_name); in atu_dfu_stage1()
985 cmn_err(CE_WARN, "%s: DFU state error\n", sc->sc_name); in atu_dfu_stage1()
992 sc->sc_name); in atu_dfu_stage1()
998 state = atu_get_dfu_state(sc); in atu_dfu_stage1()
1002 sc->sc_name, state); in atu_dfu_stage1()
1004 err = atu_usb_request(sc, DFU_GETSTATUS, 0, 0, 6, status); in atu_dfu_stage1()
1007 sc->sc_name); in atu_dfu_stage1()
1011 err = atu_usb_request(sc, DFU_REMAP, 0, 0, 0, NULL); in atu_dfu_stage1()
1012 if (err && !(sc->sc_quirk & ATU_QUIRK_NO_REMAP)) { in atu_dfu_stage1()
1013 cmn_err(CE_WARN, "%s: DFU remap failed\n", sc->sc_name); in atu_dfu_stage1()
1031 struct atu_softc *sc = arg; in atu_dfu_stage2() local
1036 if (sc->sc_radio == atu_fw_table[i].atur_type) { in atu_dfu_stage2()
1047 err = atu_usb_request(sc, ATU_VENDOR_DEV_OUT, 0x0e, in atu_dfu_stage2()
1051 sc->sc_name); in atu_dfu_stage2()
1060 err = atu_usb_request(sc, ATU_VENDOR_DEV_OUT, 0x0e, 0x0802, in atu_dfu_stage2()
1064 sc->sc_name); in atu_dfu_stage2()
1073 if (sc->sc_quirk & ATU_QUIRK_FW_DELAY) in atu_dfu_stage2()
1080 atu_load_microcode(struct atu_softc *sc, boolean_t attach) in atu_load_microcode() argument
1088 err = atu_get_opmode(sc, &mode); in atu_load_microcode()
1097 if (sc->sc_radio != RadioIntersil && in atu_load_microcode()
1098 atu_get_mib(sc, MIB_PHY_CHANNEL, &chan) == 0) in atu_load_microcode()
1103 return (atu_dfu_stage2(sc)); in atu_load_microcode()
1106 err = atu_dfu_stage1(sc); in atu_load_microcode()
1110 if (usb_reset_device(sc->sc_dip, reset) != USB_SUCCESS) in atu_load_microcode()
1122 struct atu_softc *sc; in atu_disconnect() local
1125 sc = ddi_get_soft_state(atu_soft_state_p, ddi_get_instance(dip)); in atu_disconnect()
1126 ic = &sc->sc_ic; in atu_disconnect()
1131 ATU_LOCK(sc); in atu_disconnect()
1132 if (sc->sc_scan_timer != 0) { in atu_disconnect()
1133 ATU_UNLOCK(sc); in atu_disconnect()
1134 (void) untimeout(sc->sc_scan_timer); in atu_disconnect()
1135 ATU_LOCK(sc); in atu_disconnect()
1136 sc->sc_scan_timer = 0; in atu_disconnect()
1139 sc->sc_flags &= ~(ATU_FLAG_RUNNING | ATU_FLAG_RADIO_ON); in atu_disconnect()
1140 atu_close_pipes(sc); in atu_disconnect()
1142 ATU_UNLOCK(sc); in atu_disconnect()
1149 struct atu_softc *sc; in atu_reconnect() local
1152 sc = ddi_get_soft_state(atu_soft_state_p, ddi_get_instance(dip)); in atu_reconnect()
1153 if (usb_check_same_device(sc->sc_dip, NULL, USB_LOG_L2, -1, in atu_reconnect()
1157 ATU_LOCK(sc); in atu_reconnect()
1158 err = atu_load_microcode(sc, B_FALSE); in atu_reconnect()
1160 err = atu_init(sc); in atu_reconnect()
1162 ATU_UNLOCK(sc); in atu_reconnect()
1169 struct atu_softc *sc; in atu_attach() local
1179 sc = ddi_get_soft_state(atu_soft_state_p, in atu_attach()
1181 if (usb_check_same_device(sc->sc_dip, NULL, USB_LOG_L2, -1, in atu_attach()
1185 if (atu_load_microcode(sc, B_FALSE) == 0) in atu_attach()
1186 (void) atu_init(sc); in atu_attach()
1197 sc = ddi_get_soft_state(atu_soft_state_p, instance); in atu_attach()
1198 ic = &sc->sc_ic; in atu_attach()
1199 sc->sc_dip = dip; in atu_attach()
1201 (void) snprintf(sc->sc_name, sizeof (sc->sc_name), "%s%d", in atu_attach()
1208 err = usb_get_dev_data(dip, &sc->sc_udev, USB_PARSE_LVL_ALL, 0); in atu_attach()
1210 sc->sc_udev = NULL; in atu_attach()
1216 if (sc->sc_udev->dev_descr->idVendor == t->atu_vid && in atu_attach()
1217 sc->sc_udev->dev_descr->idProduct == t->atu_pid) { in atu_attach()
1218 sc->sc_radio = t->atu_radio; in atu_attach()
1219 sc->sc_quirk = t->atu_quirk; in atu_attach()
1223 err = atu_load_microcode(sc, B_TRUE); in atu_attach()
1225 sc->sc_flags |= ATU_FLAG_REATTACH; /* reattaching */ in atu_attach()
1230 sc->sc_flags &= ~ATU_FLAG_REATTACH; in atu_attach()
1233 err = atu_get_config(sc); in atu_attach()
1236 sc->sc_name); in atu_attach()
1240 mutex_init(&sc->sc_genlock, NULL, MUTEX_DRIVER, NULL); in atu_attach()
1241 mutex_init(&sc->sc_txlock, NULL, MUTEX_DRIVER, NULL); in atu_attach()
1242 mutex_init(&sc->sc_rxlock, NULL, MUTEX_DRIVER, NULL); in atu_attach()
1248 ic->ic_maxrssi = atu_fw_table[sc->sc_radio].max_rssi; in atu_attach()
1260 sc->sc_newstate = ic->ic_newstate; in atu_attach()
1275 macp->m_driver = sc; in atu_attach()
1289 err = usb_register_hotplug_cbs(sc->sc_dip, atu_disconnect, in atu_attach()
1294 err = ddi_create_minor_node(dip, sc->sc_name, S_IFCHR, in atu_attach()
1298 sc->sc_name); in atu_attach()
1306 mutex_destroy(&sc->sc_genlock); in atu_attach()
1307 mutex_destroy(&sc->sc_rxlock); in atu_attach()
1308 mutex_destroy(&sc->sc_txlock); in atu_attach()
1310 usb_client_detach(sc->sc_dip, sc->sc_udev); in atu_attach()
1320 struct atu_softc *sc; in atu_detach() local
1323 sc = ddi_get_soft_state(atu_soft_state_p, ddi_get_instance(dip)); in atu_detach()
1329 ieee80211_new_state(&sc->sc_ic, IEEE80211_S_INIT, -1); in atu_detach()
1330 ieee80211_stop_watchdog(&sc->sc_ic); in atu_detach()
1332 ATU_LOCK(sc); in atu_detach()
1333 if (sc->sc_scan_timer != 0) { in atu_detach()
1334 ATU_UNLOCK(sc); in atu_detach()
1335 (void) untimeout(sc->sc_scan_timer); in atu_detach()
1336 ATU_LOCK(sc); in atu_detach()
1337 sc->sc_scan_timer = 0; in atu_detach()
1339 (void) atu_stop(sc); in atu_detach()
1341 ATU_UNLOCK(sc); in atu_detach()
1347 if (!ATU_REATTACH(sc)) { in atu_detach()
1348 err = mac_disable(sc->sc_ic.ic_mach); in atu_detach()
1352 (void) atu_stop(sc); in atu_detach()
1355 (void) mac_unregister(sc->sc_ic.ic_mach); in atu_detach()
1356 ieee80211_detach(&sc->sc_ic); in atu_detach()
1358 mutex_destroy(&sc->sc_genlock); in atu_detach()
1359 mutex_destroy(&sc->sc_txlock); in atu_detach()
1360 mutex_destroy(&sc->sc_rxlock); in atu_detach()
1365 usb_client_detach(dip, sc->sc_udev); in atu_detach()
1427 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_start() local
1430 ATU_LOCK(sc); in atu_m_start()
1431 err = atu_init(sc); in atu_m_start()
1433 ATU_UNLOCK(sc); in atu_m_start()
1440 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_stop() local
1441 struct ieee80211com *ic = &sc->sc_ic; in atu_m_stop()
1446 ATU_LOCK(sc); in atu_m_stop()
1447 if (sc->sc_scan_timer != 0) { in atu_m_stop()
1448 ATU_UNLOCK(sc); in atu_m_stop()
1449 (void) untimeout(sc->sc_scan_timer); in atu_m_stop()
1450 ATU_LOCK(sc); in atu_m_stop()
1451 sc->sc_scan_timer = 0; in atu_m_stop()
1453 (void) atu_stop(sc); in atu_m_stop()
1455 ATU_UNLOCK(sc); in atu_m_stop()
1483 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_setprop() local
1484 struct ieee80211com *ic = &sc->sc_ic; in atu_m_setprop()
1493 ATU_LOCK(sc); in atu_m_setprop()
1494 if (ATU_RUNNING(sc)) { in atu_m_setprop()
1495 if (sc->sc_scan_timer != 0) { in atu_m_setprop()
1496 ATU_UNLOCK(sc); in atu_m_setprop()
1497 (void) untimeout(sc->sc_scan_timer); in atu_m_setprop()
1498 ATU_LOCK(sc); in atu_m_setprop()
1499 sc->sc_scan_timer = 0; in atu_m_setprop()
1501 err = atu_init(sc); in atu_m_setprop()
1503 ATU_UNLOCK(sc); in atu_m_setprop()
1507 ATU_LOCK(sc); in atu_m_setprop()
1510 ATU_UNLOCK(sc); in atu_m_setprop()
1518 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_getprop() local
1519 struct ieee80211com *ic = &sc->sc_ic; in atu_m_getprop()
1528 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_propinfo() local
1529 struct ieee80211com *ic = &sc->sc_ic; in atu_m_propinfo()
1537 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_ioctl() local
1538 struct ieee80211com *ic = &sc->sc_ic; in atu_m_ioctl()
1545 ATU_LOCK(sc); in atu_m_ioctl()
1546 if (ATU_RUNNING(sc)) { in atu_m_ioctl()
1547 if (sc->sc_scan_timer != 0) { in atu_m_ioctl()
1548 ATU_UNLOCK(sc); in atu_m_ioctl()
1549 (void) untimeout(sc->sc_scan_timer); in atu_m_ioctl()
1550 ATU_LOCK(sc); in atu_m_ioctl()
1551 sc->sc_scan_timer = 0; in atu_m_ioctl()
1553 err = atu_init(sc); in atu_m_ioctl()
1555 ATU_UNLOCK(sc); in atu_m_ioctl()
1559 ATU_LOCK(sc); in atu_m_ioctl()
1562 ATU_UNLOCK(sc); in atu_m_ioctl()
1568 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_tx() local
1569 struct ieee80211com *ic = &sc->sc_ic; in atu_m_tx()
1581 mutex_enter(&sc->sc_txlock); in atu_m_tx()
1582 sc->sc_need_sched = 1; in atu_m_tx()
1583 mutex_exit(&sc->sc_txlock); in atu_m_tx()
1597 struct atu_softc *sc = (struct atu_softc *)arg; in atu_m_stat() local
1598 ieee80211com_t *ic = &sc->sc_ic; in atu_m_stat()
1601 ATU_LOCK(sc); in atu_m_stat()
1610 *val = sc->sc_tx_nobuf; in atu_m_stat()
1613 *val = sc->sc_rx_nobuf; in atu_m_stat()
1616 *val = sc->sc_rx_err; in atu_m_stat()
1646 ATU_UNLOCK(sc); in atu_m_stat()
1649 ATU_UNLOCK(sc); in atu_m_stat()
1653 ATU_UNLOCK(sc); in atu_m_stat()