Lines Matching refs:sc
207 struct zyd_softc *sc = arg; in zyd_next_scan() local
208 struct ieee80211com *ic = &sc->ic; in zyd_next_scan()
223 zyd_receive(struct zyd_softc *sc, const uint8_t *buf, uint16_t len) in zyd_receive() argument
226 struct ieee80211com *ic = &sc->ic; in zyd_receive()
235 sc->rx_err++; in zyd_receive()
243 sc->rx_err++; in zyd_receive()
253 sc->rx_nobuf++; in zyd_receive()
283 struct zyd_softc *sc = ZYD_IC_TO_SOFTC(ic); in zyd_send() local
297 if (!sc->usb.connected || sc->suspended || !sc->running) { in zyd_send()
306 if (sc->tx_queued >= ZYD_TX_LIST_COUNT) { in zyd_send()
311 (void) zyd_serial_enter(sc, ZYD_NO_SIG); in zyd_send()
312 sc->resched = B_TRUE; in zyd_send()
313 zyd_serial_exit(sc); in zyd_send()
321 sc->tx_nobuf++; in zyd_send()
322 (void) zyd_serial_enter(sc, ZYD_NO_SIG); in zyd_send()
323 sc->resched = B_TRUE; in zyd_send()
324 zyd_serial_exit(sc); in zyd_send()
342 sc->tx_err++; in zyd_send()
354 sc->tx_err++; in zyd_send()
396 if (sc->mac_rev == ZYD_ZD1211) in zyd_send()
445 res = zyd_usb_send_packet(&sc->usb, m); in zyd_send()
447 sc->tx_err++; in zyd_send()
449 (void) zyd_serial_enter(sc, ZYD_NO_SIG); in zyd_send()
450 sc->tx_queued++; in zyd_send()
451 zyd_serial_exit(sc); in zyd_send()
466 zyd_mac_init(struct zyd_softc *sc) in zyd_mac_init() argument
468 struct ieee80211com *ic = &sc->ic; in zyd_mac_init()
486 wd.wd_opmode = sc->ic.ic_opmode; in zyd_mac_init()
490 macp->m_driver = sc; in zyd_mac_init()
491 macp->m_dip = sc->dip; in zyd_mac_init()
502 err = mac_register(macp, &sc->ic.ic_mach); in zyd_mac_init()
517 zyd_wifi_init(struct zyd_softc *sc) in zyd_wifi_init() argument
519 struct ieee80211com *ic = &sc->ic; in zyd_wifi_init()
537 IEEE80211_ADDR_COPY(ic->ic_macaddr, sc->macaddr); in zyd_wifi_init()
562 ieee80211_register_door(ic, ddi_driver_name(sc->dip), in zyd_wifi_init()
563 ddi_get_instance(sc->dip)); in zyd_wifi_init()
566 sc->newstate = ic->ic_newstate; in zyd_wifi_init()
586 struct zyd_softc *sc; in zyd_attach() local
596 sc = ddi_get_soft_state(zyd_ssp, ddi_get_instance(dip)); in zyd_attach()
597 ASSERT(sc != NULL); in zyd_attach()
599 (void) zyd_resume(sc); in zyd_attach()
614 sc = ddi_get_soft_state(zyd_ssp, instance); in zyd_attach()
615 sc->dip = dip; in zyd_attach()
616 sc->timeout_id = 0; in zyd_attach()
618 if (zyd_usb_init(sc) != ZYD_SUCCESS) { in zyd_attach()
623 if (zyd_hw_init(sc) != ZYD_SUCCESS) { in zyd_attach()
624 zyd_usb_deinit(sc); in zyd_attach()
629 zyd_wifi_init(sc); in zyd_attach()
631 if (zyd_mac_init(sc) != DDI_SUCCESS) { in zyd_attach()
632 ieee80211_detach(&sc->ic); in zyd_attach()
633 zyd_usb_deinit(sc); in zyd_attach()
648 zyd_serial_init(sc); in zyd_attach()
662 struct zyd_softc *sc = NULL; in zyd_detach() local
669 sc = ddi_get_soft_state(zyd_ssp, ddi_get_instance(dip)); in zyd_detach()
670 ASSERT(sc != NULL); in zyd_detach()
672 return (zyd_suspend(sc)); in zyd_detach()
678 sc = ddi_get_soft_state(zyd_ssp, ddi_get_instance(dip)); in zyd_detach()
679 ASSERT(sc != NULL); in zyd_detach()
681 if (mac_disable(sc->ic.ic_mach) != 0) in zyd_detach()
686 (void) mac_unregister(sc->ic.ic_mach); in zyd_detach()
691 ieee80211_detach(&sc->ic); in zyd_detach()
693 zyd_hw_deinit(sc); in zyd_detach()
694 zyd_usb_deinit(sc); in zyd_detach()
697 zyd_serial_deinit(sc); in zyd_detach()
714 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_stat() local
715 ieee80211com_t *ic = &sc->ic; in zyd_m_stat()
720 if (!sc->usb.connected || sc->suspended || !sc->running) in zyd_m_stat()
729 *val = sc->tx_nobuf; in zyd_m_stat()
732 *val = sc->rx_nobuf; in zyd_m_stat()
735 *val = sc->rx_err; in zyd_m_stat()
751 *val = sc->tx_err; in zyd_m_stat()
779 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_start() local
781 (void) zyd_serial_enter(sc, ZYD_NO_SIG); in zyd_m_start()
782 if ((!sc->usb.connected) || (zyd_hw_start(sc) != ZYD_SUCCESS)) { in zyd_m_start()
783 zyd_serial_exit(sc); in zyd_m_start()
786 zyd_serial_exit(sc); in zyd_m_start()
788 ieee80211_new_state(&sc->ic, IEEE80211_S_INIT, -1); in zyd_m_start()
789 sc->running = B_TRUE; in zyd_m_start()
800 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_stop() local
802 sc->running = B_FALSE; in zyd_m_stop()
803 ieee80211_new_state(&sc->ic, IEEE80211_S_INIT, -1); in zyd_m_stop()
805 (void) zyd_serial_enter(sc, ZYD_NO_SIG); in zyd_m_stop()
806 sc->resched = B_FALSE; in zyd_m_stop()
807 zyd_hw_stop(sc); in zyd_m_stop()
808 zyd_serial_exit(sc); in zyd_m_stop()
849 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_ioctl() local
850 struct ieee80211com *ic = &sc->ic; in zyd_m_ioctl()
852 if (!sc->usb.connected || sc->suspended || !sc->running) { in zyd_m_ioctl()
858 if (sc->running && ic->ic_des_esslen) { in zyd_m_ioctl()
859 zyd_m_stop(sc); in zyd_m_ioctl()
860 if (zyd_m_start(sc) != DDI_SUCCESS) in zyd_m_ioctl()
874 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_setprop() local
875 struct ieee80211com *ic = &sc->ic; in zyd_m_setprop()
878 if (!sc->usb.connected || sc->suspended || !sc->running) { in zyd_m_setprop()
885 if (sc->running && ic->ic_des_esslen) { in zyd_m_setprop()
886 zyd_m_stop(sc); in zyd_m_setprop()
887 if (zyd_m_start(sc) != DDI_SUCCESS) in zyd_m_setprop()
901 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_getprop() local
904 if (!sc->usb.connected || sc->suspended || !sc->running) { in zyd_m_getprop()
908 err = ieee80211_getprop(&sc->ic, pr_name, wldp_pr_num, in zyd_m_getprop()
918 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_propinfo() local
920 ieee80211_propinfo(&sc->ic, pr_name, wldp_pr_num, mph); in zyd_m_propinfo()
929 struct zyd_softc *sc = (struct zyd_softc *)arg; in zyd_m_tx() local
930 struct ieee80211com *ic = &sc->ic; in zyd_m_tx()
963 struct zyd_softc *sc = ZYD_IC_TO_SOFTC(ic); in zyd_newstate() local
967 if (sc->timeout_id != 0) { in zyd_newstate()
968 (void) untimeout(sc->timeout_id); in zyd_newstate()
969 sc->timeout_id = 0; in zyd_newstate()
972 if (!sc->usb.connected || sc->suspended || !sc->running) { in zyd_newstate()
973 return (sc->newstate(ic, nstate, arg)); in zyd_newstate()
979 sc->timeout_id = timeout(zyd_next_scan, sc, in zyd_newstate()
990 (void) zyd_serial_enter(sc, ZYD_SER_SIG); in zyd_newstate()
991 zyd_hw_set_channel(sc, chan); in zyd_newstate()
992 zyd_serial_exit(sc); in zyd_newstate()
1000 return (sc->newstate(ic, nstate, arg)); in zyd_newstate()
1018 zyd_serial_init(struct zyd_softc *sc) in zyd_serial_init() argument
1020 mutex_init(&sc->serial.lock, NULL, MUTEX_DRIVER, in zyd_serial_init()
1021 sc->usb.cdata->dev_iblock_cookie); in zyd_serial_init()
1022 cv_init(&sc->serial.wait, NULL, CV_DRIVER, NULL); in zyd_serial_init()
1024 sc->serial.held = B_FALSE; in zyd_serial_init()
1025 sc->serial.initialized = B_TRUE; in zyd_serial_init()
1039 zyd_serial_enter(struct zyd_softc *sc, boolean_t wait_sig) in zyd_serial_enter() argument
1043 mutex_enter(&sc->serial.lock); in zyd_serial_enter()
1047 while (sc->serial.held != B_FALSE) { in zyd_serial_enter()
1049 res = cv_wait_sig(&sc->serial.wait, &sc->serial.lock); in zyd_serial_enter()
1051 cv_wait(&sc->serial.wait, &sc->serial.lock); in zyd_serial_enter()
1054 sc->serial.held = B_TRUE; in zyd_serial_enter()
1056 mutex_exit(&sc->serial.lock); in zyd_serial_enter()
1065 zyd_serial_exit(struct zyd_softc *sc) in zyd_serial_exit() argument
1067 mutex_enter(&sc->serial.lock); in zyd_serial_exit()
1068 sc->serial.held = B_FALSE; in zyd_serial_exit()
1069 cv_broadcast(&sc->serial.wait); in zyd_serial_exit()
1070 mutex_exit(&sc->serial.lock); in zyd_serial_exit()
1077 zyd_serial_deinit(struct zyd_softc *sc) in zyd_serial_deinit() argument
1079 cv_destroy(&sc->serial.wait); in zyd_serial_deinit()
1080 mutex_destroy(&sc->serial.lock); in zyd_serial_deinit()
1082 sc->serial.initialized = B_FALSE; in zyd_serial_deinit()