Lines Matching refs:sc

310 ural_read(struct ural_softc *sc, uint16_t reg)  in ural_read()  argument
327 err = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, &req, &mp, in ural_read()
347 ural_read_multi(struct ural_softc *sc, uint16_t reg, void *buf, int len) in ural_read_multi() argument
364 err = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, &req, &mp, in ural_read_multi()
382 ural_write(struct ural_softc *sc, uint16_t reg, uint16_t val) in ural_write() argument
397 err = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, &req, NULL, in ural_write()
412 struct ural_softc *sc = (struct ural_softc *)req->bulk_client_private; in ural_txeof() local
413 struct ieee80211com *ic = &sc->sc_ic; in ural_txeof()
420 sc->tx_queued); in ural_txeof()
423 sc->sc_tx_err++; in ural_txeof()
425 mutex_enter(&sc->tx_lock); in ural_txeof()
427 sc->tx_queued--; in ural_txeof()
428 sc->sc_tx_timer = 0; in ural_txeof()
430 if (sc->sc_need_sched) { in ural_txeof()
431 sc->sc_need_sched = 0; in ural_txeof()
435 mutex_exit(&sc->tx_lock); in ural_txeof()
443 struct ural_softc *sc = (struct ural_softc *)req->bulk_client_private; in ural_rxeof() local
444 struct ieee80211com *ic = &sc->sc_ic; in ural_rxeof()
462 sc->rx_queued); in ural_rxeof()
465 sc->sc_rx_err++; in ural_rxeof()
475 sc->sc_rx_err++; in ural_rxeof()
489 sc->sc_rx_err++; in ural_rxeof()
507 sc->sc_rx_nobuf++; in ural_rxeof()
523 mutex_enter(&sc->rx_lock); in ural_rxeof()
524 sc->rx_queued--; in ural_rxeof()
525 mutex_exit(&sc->rx_lock); in ural_rxeof()
530 if (RAL_IS_RUNNING(sc)) in ural_rxeof()
531 (void) ural_rx_trigger(sc); in ural_rxeof()
619 ural_setup_tx_desc(struct ural_softc *sc, struct ural_tx_desc *desc, in ural_setup_tx_desc() argument
622 struct ieee80211com *ic = &sc->sc_ic; in ural_setup_tx_desc()
667 struct ural_softc *sc = (struct ural_softc *)ic; in ural_send() local
682 if (!RAL_IS_RUNNING(sc)) { in ural_send()
687 mutex_enter(&sc->tx_lock); in ural_send()
689 if (sc->tx_queued > RAL_TX_LIST_COUNT) { in ural_send()
694 sc->sc_need_sched = 1; in ural_send()
696 sc->sc_tx_nobuf++; in ural_send()
723 sc->sc_tx_err++; in ural_send()
736 sc->sc_tx_err++; in ural_send()
788 ural_setup_tx_desc(sc, desc, flags, pktlen, rate); in ural_send()
805 (void) ural_tx_trigger(sc, m); in ural_send()
819 mutex_exit(&sc->tx_lock); in ural_send()
827 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_tx() local
828 struct ieee80211com *ic = &sc->sc_ic; in ural_m_tx()
857 ural_set_testmode(struct ural_softc *sc) in ural_set_testmode() argument
872 err = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, &req, NULL, in ural_set_testmode()
884 ural_eeprom_read(struct ural_softc *sc, uint16_t addr, void *buf, int len) in ural_eeprom_read() argument
900 err = usb_pipe_ctrl_xfer_wait(sc->sc_udev->dev_default_ph, &req, &mp, in ural_eeprom_read()
918 ural_bbp_write(struct ural_softc *sc, uint8_t reg, uint8_t val) in ural_bbp_write() argument
924 if (!(ural_read(sc, RAL_PHY_CSR8) & RAL_BBP_BUSY)) in ural_bbp_write()
934 ural_write(sc, RAL_PHY_CSR7, tmp); in ural_bbp_write()
938 ural_bbp_read(struct ural_softc *sc, uint8_t reg) in ural_bbp_read() argument
944 ural_write(sc, RAL_PHY_CSR7, val); in ural_bbp_read()
947 if (!(ural_read(sc, RAL_PHY_CSR8) & RAL_BBP_BUSY)) in ural_bbp_read()
955 return (ural_read(sc, RAL_PHY_CSR7) & 0xff); in ural_bbp_read()
959 ural_rf_write(struct ural_softc *sc, uint8_t reg, uint32_t val) in ural_rf_write() argument
965 if (!(ural_read(sc, RAL_PHY_CSR10) & RAL_RF_LOBUSY)) in ural_rf_write()
975 ural_write(sc, RAL_PHY_CSR9, tmp & 0xffff); in ural_rf_write()
976 ural_write(sc, RAL_PHY_CSR10, tmp >> 16); in ural_rf_write()
979 sc->rf_regs[reg] = val; in ural_rf_write()
988 ural_disable_rf_tune(struct ural_softc *sc) in ural_disable_rf_tune() argument
992 if (sc->rf_rev != RAL_RF_2523) { in ural_disable_rf_tune()
993 tmp = sc->rf_regs[RAL_RF1] & ~RAL_RF1_AUTOTUNE; in ural_disable_rf_tune()
994 ural_rf_write(sc, RAL_RF1, tmp); in ural_disable_rf_tune()
997 tmp = sc->rf_regs[RAL_RF3] & ~RAL_RF3_AUTOTUNE; in ural_disable_rf_tune()
998 ural_rf_write(sc, RAL_RF3, tmp); in ural_disable_rf_tune()
1005 ural_set_chan(struct ural_softc *sc, struct ieee80211_channel *c) in ural_set_chan() argument
1007 struct ieee80211com *ic = &sc->sc_ic; in ural_set_chan()
1016 power = min(sc->txpow[chan - 1], 31); in ural_set_chan()
1026 switch (sc->rf_rev) { in ural_set_chan()
1028 ural_rf_write(sc, RAL_RF1, 0x00814); in ural_set_chan()
1029 ural_rf_write(sc, RAL_RF2, ural_rf2522_r2[chan - 1]); in ural_set_chan()
1030 ural_rf_write(sc, RAL_RF3, power << 7 | 0x00040); in ural_set_chan()
1034 ural_rf_write(sc, RAL_RF1, 0x08804); in ural_set_chan()
1035 ural_rf_write(sc, RAL_RF2, ural_rf2523_r2[chan - 1]); in ural_set_chan()
1036 ural_rf_write(sc, RAL_RF3, power << 7 | 0x38044); in ural_set_chan()
1037 ural_rf_write(sc, RAL_RF4, (chan == 14) ? 0x00280 : 0x00286); in ural_set_chan()
1041 ural_rf_write(sc, RAL_RF1, 0x0c808); in ural_set_chan()
1042 ural_rf_write(sc, RAL_RF2, ural_rf2524_r2[chan - 1]); in ural_set_chan()
1043 ural_rf_write(sc, RAL_RF3, power << 7 | 0x00040); in ural_set_chan()
1044 ural_rf_write(sc, RAL_RF4, (chan == 14) ? 0x00280 : 0x00286); in ural_set_chan()
1048 ural_rf_write(sc, RAL_RF1, 0x08808); in ural_set_chan()
1049 ural_rf_write(sc, RAL_RF2, ural_rf2525_hi_r2[chan - 1]); in ural_set_chan()
1050 ural_rf_write(sc, RAL_RF3, power << 7 | 0x18044); in ural_set_chan()
1051 ural_rf_write(sc, RAL_RF4, (chan == 14) ? 0x00280 : 0x00286); in ural_set_chan()
1053 ural_rf_write(sc, RAL_RF1, 0x08808); in ural_set_chan()
1054 ural_rf_write(sc, RAL_RF2, ural_rf2525_r2[chan - 1]); in ural_set_chan()
1055 ural_rf_write(sc, RAL_RF3, power << 7 | 0x18044); in ural_set_chan()
1056 ural_rf_write(sc, RAL_RF4, (chan == 14) ? 0x00280 : 0x00286); in ural_set_chan()
1060 ural_rf_write(sc, RAL_RF1, 0x08808); in ural_set_chan()
1061 ural_rf_write(sc, RAL_RF2, ural_rf2525e_r2[chan - 1]); in ural_set_chan()
1062 ural_rf_write(sc, RAL_RF3, power << 7 | 0x18044); in ural_set_chan()
1063 ural_rf_write(sc, RAL_RF4, (chan == 14) ? 0x00286 : 0x00282); in ural_set_chan()
1067 ural_rf_write(sc, RAL_RF2, ural_rf2526_hi_r2[chan - 1]); in ural_set_chan()
1068 ural_rf_write(sc, RAL_RF4, (chan & 1) ? 0x00386 : 0x00381); in ural_set_chan()
1069 ural_rf_write(sc, RAL_RF1, 0x08804); in ural_set_chan()
1071 ural_rf_write(sc, RAL_RF2, ural_rf2526_r2[chan - 1]); in ural_set_chan()
1072 ural_rf_write(sc, RAL_RF3, power << 7 | 0x18044); in ural_set_chan()
1073 ural_rf_write(sc, RAL_RF4, (chan & 1) ? 0x00386 : 0x00381); in ural_set_chan()
1082 ural_rf_write(sc, RAL_RF1, ural_rf5222[i].r1); in ural_set_chan()
1083 ural_rf_write(sc, RAL_RF2, ural_rf5222[i].r2); in ural_set_chan()
1084 ural_rf_write(sc, RAL_RF3, power << 7 | 0x00040); in ural_set_chan()
1085 ural_rf_write(sc, RAL_RF4, ural_rf5222[i].r4); in ural_set_chan()
1092 tmp = ural_bbp_read(sc, 70); in ural_set_chan()
1098 ural_bbp_write(sc, 70, tmp); in ural_set_chan()
1101 (void) ural_read(sc, RAL_STA_CSR0); in ural_set_chan()
1104 ural_disable_rf_tune(sc); in ural_set_chan()
1113 ural_enable_tsf_sync(struct ural_softc *sc) in ural_enable_tsf_sync() argument
1115 struct ieee80211com *ic = &sc->sc_ic; in ural_enable_tsf_sync()
1119 ural_write(sc, RAL_TXRX_CSR19, 0); in ural_enable_tsf_sync()
1122 ural_write(sc, RAL_TXRX_CSR18, tmp); in ural_enable_tsf_sync()
1127 ural_write(sc, RAL_TXRX_CSR20, tmp); in ural_enable_tsf_sync()
1135 ural_write(sc, RAL_TXRX_CSR19, tmp); in ural_enable_tsf_sync()
1148 struct ural_softc *sc = (struct ural_softc *)ic; in ural_update_slot() local
1166 ural_write(sc, RAL_MAC_CSR10, slottime); in ural_update_slot()
1167 ural_write(sc, RAL_MAC_CSR11, sifs); in ural_update_slot()
1168 ural_write(sc, RAL_MAC_CSR12, eifs); in ural_update_slot()
1172 ural_set_txpreamble(struct ural_softc *sc) in ural_set_txpreamble() argument
1176 tmp = ural_read(sc, RAL_TXRX_CSR10); in ural_set_txpreamble()
1179 if (sc->sc_ic.ic_flags & IEEE80211_F_SHPREAMBLE) in ural_set_txpreamble()
1182 ural_write(sc, RAL_TXRX_CSR10, tmp); in ural_set_txpreamble()
1186 ural_set_basicrates(struct ural_softc *sc) in ural_set_basicrates() argument
1188 struct ieee80211com *ic = &sc->sc_ic; in ural_set_basicrates()
1193 ural_write(sc, RAL_TXRX_CSR11, 0x3); in ural_set_basicrates()
1196 ural_write(sc, RAL_TXRX_CSR11, 0x150); in ural_set_basicrates()
1199 ural_write(sc, RAL_TXRX_CSR11, 0x15f); in ural_set_basicrates()
1204 ural_set_bssid(struct ural_softc *sc, uint8_t *bssid) in ural_set_bssid() argument
1209 ural_write(sc, RAL_MAC_CSR5, tmp); in ural_set_bssid()
1212 ural_write(sc, RAL_MAC_CSR6, tmp); in ural_set_bssid()
1215 ural_write(sc, RAL_MAC_CSR7, tmp); in ural_set_bssid()
1221 ural_set_macaddr(struct ural_softc *sc, uint8_t *addr) in ural_set_macaddr() argument
1226 ural_write(sc, RAL_MAC_CSR2, tmp); in ural_set_macaddr()
1229 ural_write(sc, RAL_MAC_CSR3, tmp); in ural_set_macaddr()
1232 ural_write(sc, RAL_MAC_CSR4, tmp); in ural_set_macaddr()
1239 ural_update_promisc(struct ural_softc *sc) in ural_update_promisc() argument
1243 tmp = ural_read(sc, RAL_TXRX_CSR2); in ural_update_promisc()
1246 if (!(sc->sc_rcr & RAL_RCR_PROMISC)) in ural_update_promisc()
1249 ural_write(sc, RAL_TXRX_CSR2, tmp); in ural_update_promisc()
1252 (sc->sc_rcr & RAL_RCR_PROMISC) ? "entering" : "leaving"); in ural_update_promisc()
1271 ural_read_eeprom(struct ural_softc *sc) in ural_read_eeprom() argument
1273 struct ieee80211com *ic = &sc->sc_ic; in ural_read_eeprom()
1276 ural_eeprom_read(sc, RAL_EEPROM_CONFIG0, &val, 2); in ural_read_eeprom()
1278 sc->rf_rev = (val >> 11) & 0x7; in ural_read_eeprom()
1279 sc->hw_radio = (val >> 10) & 0x1; in ural_read_eeprom()
1280 sc->led_mode = (val >> 6) & 0x7; in ural_read_eeprom()
1281 sc->rx_ant = (val >> 4) & 0x3; in ural_read_eeprom()
1282 sc->tx_ant = (val >> 2) & 0x3; in ural_read_eeprom()
1283 sc->nb_ant = val & 0x3; in ural_read_eeprom()
1286 ural_eeprom_read(sc, RAL_EEPROM_ADDRESS, ic->ic_macaddr, 6); in ural_read_eeprom()
1289 ural_eeprom_read(sc, RAL_EEPROM_BBP_BASE, sc->bbp_prom, 2 * 16); in ural_read_eeprom()
1292 ural_eeprom_read(sc, RAL_EEPROM_TXPOWER, sc->txpow, 14); in ural_read_eeprom()
1296 ural_bbp_init(struct ural_softc *sc) in ural_bbp_init() argument
1302 if (ural_bbp_read(sc, RAL_BBP_VERSION) != 0) in ural_bbp_init()
1313 ural_bbp_write(sc, ural_def_bbp[i].reg, ural_def_bbp[i].val); in ural_bbp_init()
1319 ural_set_txantenna(struct ural_softc *sc, int antenna) in ural_set_txantenna() argument
1324 tx = ural_bbp_read(sc, RAL_BBP_TX) & ~RAL_BBP_ANTMASK; in ural_set_txantenna()
1333 if (sc->rf_rev == RAL_RF_2525E || sc->rf_rev == RAL_RF_2526 || in ural_set_txantenna()
1334 sc->rf_rev == RAL_RF_5222) in ural_set_txantenna()
1337 ural_bbp_write(sc, RAL_BBP_TX, tx); in ural_set_txantenna()
1340 tmp = ural_read(sc, RAL_PHY_CSR5) & ~0x7; in ural_set_txantenna()
1341 ural_write(sc, RAL_PHY_CSR5, tmp | (tx & 0x7)); in ural_set_txantenna()
1343 tmp = ural_read(sc, RAL_PHY_CSR6) & ~0x7; in ural_set_txantenna()
1344 ural_write(sc, RAL_PHY_CSR6, tmp | (tx & 0x7)); in ural_set_txantenna()
1348 ural_set_rxantenna(struct ural_softc *sc, int antenna) in ural_set_rxantenna() argument
1352 rx = ural_bbp_read(sc, RAL_BBP_RX) & ~RAL_BBP_ANTMASK; in ural_set_rxantenna()
1361 if (sc->rf_rev == RAL_RF_2525E || sc->rf_rev == RAL_RF_2526) in ural_set_rxantenna()
1364 ural_bbp_write(sc, RAL_BBP_RX, rx); in ural_set_rxantenna()
1374 struct ural_softc *sc = arg; in ural_next_scan() local
1375 struct ieee80211com *ic = &sc->sc_ic; in ural_next_scan()
1384 struct ural_softc *sc = (struct ural_softc *)ic; in ural_newstate() local
1389 RAL_LOCK(sc); in ural_newstate()
1393 if (sc->sc_scan_id != 0) { in ural_newstate()
1394 (void) untimeout(sc->sc_scan_id); in ural_newstate()
1395 sc->sc_scan_id = 0; in ural_newstate()
1398 if (sc->sc_amrr_id != 0) { in ural_newstate()
1399 (void) untimeout(sc->sc_amrr_id); in ural_newstate()
1400 sc->sc_amrr_id = 0; in ural_newstate()
1407 ural_write(sc, RAL_TXRX_CSR19, 0); in ural_newstate()
1409 ural_write(sc, RAL_MAC_CSR20, 0); in ural_newstate()
1414 ural_set_chan(sc, ic->ic_curchan); in ural_newstate()
1415 sc->sc_scan_id = timeout(ural_next_scan, (void *)sc, in ural_newstate()
1416 drv_usectohz(sc->dwelltime * 1000)); in ural_newstate()
1420 ural_set_chan(sc, ic->ic_curchan); in ural_newstate()
1424 ural_set_chan(sc, ic->ic_curchan); in ural_newstate()
1428 ural_set_chan(sc, ic->ic_curchan); in ural_newstate()
1434 ural_set_txpreamble(sc); in ural_newstate()
1435 ural_set_basicrates(sc); in ural_newstate()
1436 ural_set_bssid(sc, ni->in_bssid); in ural_newstate()
1441 ural_write(sc, RAL_MAC_CSR20, 1); in ural_newstate()
1444 ural_enable_tsf_sync(sc); in ural_newstate()
1449 ural_amrr_start(sc, ni); in ural_newstate()
1454 RAL_UNLOCK(sc); in ural_newstate()
1456 err = sc->sc_newstate(ic, nstate, arg); in ural_newstate()
1469 ural_close_pipes(struct ural_softc *sc) in ural_close_pipes() argument
1473 if (sc->sc_rx_pipeh != NULL) { in ural_close_pipes()
1474 usb_pipe_reset(sc->sc_dev, sc->sc_rx_pipeh, flags, NULL, 0); in ural_close_pipes()
1475 usb_pipe_close(sc->sc_dev, sc->sc_rx_pipeh, flags, NULL, 0); in ural_close_pipes()
1476 sc->sc_rx_pipeh = NULL; in ural_close_pipes()
1479 if (sc->sc_tx_pipeh != NULL) { in ural_close_pipes()
1480 usb_pipe_reset(sc->sc_dev, sc->sc_tx_pipeh, flags, NULL, 0); in ural_close_pipes()
1481 usb_pipe_close(sc->sc_dev, sc->sc_tx_pipeh, flags, NULL, 0); in ural_close_pipes()
1482 sc->sc_tx_pipeh = NULL; in ural_close_pipes()
1487 ural_open_pipes(struct ural_softc *sc) in ural_open_pipes() argument
1493 ep_node = usb_lookup_ep_data(sc->sc_dev, sc->sc_udev, 0, 0, 0, in ural_open_pipes()
1499 if ((err = usb_pipe_open(sc->sc_dev, in ural_open_pipes()
1501 &sc->sc_tx_pipeh)) != USB_SUCCESS) { in ural_open_pipes()
1507 ep_node = usb_lookup_ep_data(sc->sc_dev, sc->sc_udev, 0, 0, 0, in ural_open_pipes()
1513 if ((err = usb_pipe_open(sc->sc_dev, in ural_open_pipes()
1515 &sc->sc_rx_pipeh)) != USB_SUCCESS) { in ural_open_pipes()
1524 if (sc->sc_rx_pipeh != NULL) { in ural_open_pipes()
1525 usb_pipe_close(sc->sc_dev, sc->sc_rx_pipeh, in ural_open_pipes()
1527 sc->sc_rx_pipeh = NULL; in ural_open_pipes()
1530 if (sc->sc_tx_pipeh != NULL) { in ural_open_pipes()
1531 usb_pipe_close(sc->sc_dev, sc->sc_tx_pipeh, in ural_open_pipes()
1533 sc->sc_tx_pipeh = NULL; in ural_open_pipes()
1540 ural_tx_trigger(struct ural_softc *sc, mblk_t *mp) in ural_tx_trigger() argument
1545 sc->sc_tx_timer = RAL_TX_TIMEOUT; in ural_tx_trigger()
1547 req = usb_alloc_bulk_req(sc->sc_dev, 0, USB_FLAGS_SLEEP); in ural_tx_trigger()
1557 req->bulk_client_private = (usb_opaque_t)sc; in ural_tx_trigger()
1565 if ((err = usb_pipe_bulk_xfer(sc->sc_tx_pipeh, req, 0)) in ural_tx_trigger()
1574 sc->tx_queued++; in ural_tx_trigger()
1580 ural_rx_trigger(struct ural_softc *sc) in ural_rx_trigger() argument
1585 req = usb_alloc_bulk_req(sc->sc_dev, RAL_RXBUF_SIZE, USB_FLAGS_SLEEP); in ural_rx_trigger()
1593 req->bulk_client_private = (usb_opaque_t)sc; in ural_rx_trigger()
1602 err = usb_pipe_bulk_xfer(sc->sc_rx_pipeh, req, 0); in ural_rx_trigger()
1612 mutex_enter(&sc->rx_lock); in ural_rx_trigger()
1613 sc->rx_queued++; in ural_rx_trigger()
1614 mutex_exit(&sc->rx_lock); in ural_rx_trigger()
1620 ural_init_tx_queue(struct ural_softc *sc) in ural_init_tx_queue() argument
1622 sc->tx_queued = 0; in ural_init_tx_queue()
1626 ural_init_rx_queue(struct ural_softc *sc) in ural_init_rx_queue() argument
1630 sc->rx_queued = 0; in ural_init_rx_queue()
1633 if (ural_rx_trigger(sc) != 0) { in ural_init_rx_queue()
1642 ural_stop(struct ural_softc *sc) in ural_stop() argument
1644 struct ieee80211com *ic = &sc->sc_ic; in ural_stop()
1649 RAL_LOCK(sc); in ural_stop()
1651 sc->sc_tx_timer = 0; in ural_stop()
1652 sc->sc_flags &= ~RAL_FLAG_RUNNING; /* STOP */ in ural_stop()
1655 ural_write(sc, RAL_TXRX_CSR2, RAL_DISABLE_RX); in ural_stop()
1658 ural_write(sc, RAL_MAC_CSR1, RAL_RESET_ASIC | RAL_RESET_BBP); in ural_stop()
1659 ural_write(sc, RAL_MAC_CSR1, 0); in ural_stop()
1661 ural_close_pipes(sc); in ural_stop()
1663 RAL_UNLOCK(sc); in ural_stop()
1667 ural_init(struct ural_softc *sc) in ural_init() argument
1669 struct ieee80211com *ic = &sc->sc_ic; in ural_init()
1673 ural_set_testmode(sc); in ural_init()
1674 ural_write(sc, 0x308, 0x00f0); /* magic */ in ural_init()
1676 ural_stop(sc); in ural_init()
1680 ural_write(sc, ural_def_mac[i].reg, ural_def_mac[i].val); in ural_init()
1684 tmp = ural_read(sc, RAL_MAC_CSR17); in ural_init()
1697 ural_write(sc, RAL_MAC_CSR1, RAL_HOST_READY); in ural_init()
1700 ural_write(sc, RAL_TXRX_CSR11, 0x15f); in ural_init()
1702 if (ural_bbp_init(sc) != 0) in ural_init()
1706 ural_set_chan(sc, ic->ic_curchan); in ural_init()
1709 ural_read_multi(sc, RAL_STA_CSR0, sc->sta, sizeof (sc->sta)); in ural_init()
1711 ural_set_txantenna(sc, sc->tx_ant); in ural_init()
1712 ural_set_rxantenna(sc, sc->rx_ant); in ural_init()
1714 ural_set_macaddr(sc, ic->ic_macaddr); in ural_init()
1716 if (ural_open_pipes(sc) != USB_SUCCESS) { in ural_init()
1722 ural_init_tx_queue(sc); in ural_init()
1724 if (ural_init_rx_queue(sc) != USB_SUCCESS) in ural_init()
1733 if (!(sc->sc_rcr & RAL_RCR_PROMISC)) in ural_init()
1736 ural_write(sc, RAL_TXRX_CSR2, tmp); in ural_init()
1737 sc->sc_flags |= RAL_FLAG_RUNNING; /* RUNNING */ in ural_init()
1741 ural_stop(sc); in ural_init()
1748 struct ural_softc *sc; in ural_disconnect() local
1755 sc = ddi_get_soft_state(ural_soft_state_p, ddi_get_instance(devinfo)); in ural_disconnect()
1756 ASSERT(sc != NULL); in ural_disconnect()
1758 if (!RAL_IS_RUNNING(sc)) /* different device or not inited */ in ural_disconnect()
1761 ic = &sc->sc_ic; in ural_disconnect()
1765 RAL_LOCK(sc); in ural_disconnect()
1767 sc->sc_tx_timer = 0; in ural_disconnect()
1768 sc->sc_flags &= ~RAL_FLAG_RUNNING; /* STOP */ in ural_disconnect()
1770 ural_close_pipes(sc); in ural_disconnect()
1772 RAL_UNLOCK(sc); in ural_disconnect()
1780 struct ural_softc *sc; in ural_reconnect() local
1783 sc = ddi_get_soft_state(ural_soft_state_p, ddi_get_instance(devinfo)); in ural_reconnect()
1784 ASSERT(sc != NULL); in ural_reconnect()
1787 if (usb_check_same_device(sc->sc_dev, NULL, USB_LOG_L2, -1, in ural_reconnect()
1793 err = ural_init(sc); in ural_reconnect()
1799 ural_resume(struct ural_softc *sc) in ural_resume() argument
1802 if (usb_check_same_device(sc->sc_dev, NULL, USB_LOG_L2, -1, in ural_resume()
1808 (void) ural_init(sc); in ural_resume()
1887 struct ural_softc *sc = (struct ural_softc *)arg; in ural_amrr_timeout() local
1888 struct ural_amrr *amrr = &sc->amrr; in ural_amrr_timeout()
1890 ural_read_multi(sc, RAL_STA_CSR0, sc->sta, sizeof (sc->sta)); in ural_amrr_timeout()
1893 sc->sc_tx_err += sc->sta[9]; in ural_amrr_timeout()
1894 sc->sc_tx_retries += (sc->sta[7] + sc->sta[8]); in ural_amrr_timeout()
1897 sc->sta[7] + /* TX one-retry ok count */ in ural_amrr_timeout()
1898 sc->sta[8] + /* TX more-retry ok count */ in ural_amrr_timeout()
1899 sc->sta[9]; /* TX retry-fail count */ in ural_amrr_timeout()
1903 sc->sta[6]; /* TX no-retry ok count */ in ural_amrr_timeout()
1905 ural_ratectl(amrr, sc->sc_ic.ic_bss); in ural_amrr_timeout()
1907 sc->sc_amrr_id = timeout(ural_amrr_timeout, (void *)sc, in ural_amrr_timeout()
1913 ural_amrr_start(struct ural_softc *sc, struct ieee80211_node *ni) in ural_amrr_start() argument
1915 struct ural_amrr *amrr = &sc->amrr; in ural_amrr_start()
1919 ural_read_multi(sc, RAL_STA_CSR0, sc->sta, sizeof (sc->sta)); in ural_amrr_start()
1934 sc->sc_amrr_id = timeout(ural_amrr_timeout, (void *)sc, in ural_amrr_start()
1941 struct ural_softc *sc = arg; in ural_watchdog() local
1942 struct ieee80211com *ic = &sc->sc_ic; in ural_watchdog()
1945 RAL_LOCK(sc); in ural_watchdog()
1948 if (!RAL_IS_RUNNING(sc)) { in ural_watchdog()
1949 RAL_UNLOCK(sc); in ural_watchdog()
1953 if (sc->sc_tx_timer > 0) { in ural_watchdog()
1954 if (--sc->sc_tx_timer == 0) { in ural_watchdog()
1956 RAL_UNLOCK(sc); in ural_watchdog()
1957 (void) ural_init(sc); in ural_watchdog()
1966 RAL_UNLOCK(sc); in ural_watchdog()
1977 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_start() local
1983 err = ural_init(sc); in ural_m_start()
1988 sc->sc_flags |= RAL_FLAG_RUNNING; /* RUNNING */ in ural_m_start()
1992 ural_stop(sc); in ural_m_start()
1999 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_stop() local
2001 (void) ural_stop(sc); in ural_m_stop()
2002 sc->sc_flags &= ~RAL_FLAG_RUNNING; /* STOP */ in ural_m_stop()
2008 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_unicst() local
2009 struct ieee80211com *ic = &sc->sc_ic; in ural_m_unicst()
2015 (void) ural_set_macaddr(sc, (uint8_t *)macaddr); in ural_m_unicst()
2016 (void) ural_init(sc); in ural_m_unicst()
2031 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_promisc() local
2034 sc->sc_rcr |= RAL_RCR_PROMISC; in ural_m_promisc()
2035 sc->sc_rcr |= RAL_RCR_MULTI; in ural_m_promisc()
2037 sc->sc_rcr &= ~RAL_RCR_PROMISC; in ural_m_promisc()
2038 sc->sc_rcr &= ~RAL_RCR_PROMISC; in ural_m_promisc()
2041 ural_update_promisc(sc); in ural_m_promisc()
2052 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_setprop() local
2053 struct ieee80211com *ic = &sc->sc_ic; in ural_m_setprop()
2058 RAL_LOCK(sc); in ural_m_setprop()
2060 if (RAL_IS_RUNNING(sc)) { in ural_m_setprop()
2061 RAL_UNLOCK(sc); in ural_m_setprop()
2062 (void) ural_init(sc); in ural_m_setprop()
2064 RAL_LOCK(sc); in ural_m_setprop()
2068 RAL_UNLOCK(sc); in ural_m_setprop()
2077 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_getprop() local
2080 err = ieee80211_getprop(&sc->sc_ic, pr_name, wldp_pr_num, in ural_m_getprop()
2090 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_propinfo() local
2092 ieee80211_propinfo(&sc->sc_ic, pr_name, wldp_pr_num, mph); in ural_m_propinfo()
2098 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_ioctl() local
2099 struct ieee80211com *ic = &sc->sc_ic; in ural_m_ioctl()
2103 RAL_LOCK(sc); in ural_m_ioctl()
2105 if (RAL_IS_RUNNING(sc)) { in ural_m_ioctl()
2106 RAL_UNLOCK(sc); in ural_m_ioctl()
2107 (void) ural_init(sc); in ural_m_ioctl()
2109 RAL_LOCK(sc); in ural_m_ioctl()
2112 RAL_UNLOCK(sc); in ural_m_ioctl()
2118 struct ural_softc *sc = (struct ural_softc *)arg; in ural_m_stat() local
2119 ieee80211com_t *ic = &sc->sc_ic; in ural_m_stat()
2123 RAL_LOCK(sc); in ural_m_stat()
2131 *val = sc->sc_tx_nobuf; in ural_m_stat()
2134 *val = sc->sc_rx_nobuf; in ural_m_stat()
2137 *val = sc->sc_rx_err; in ural_m_stat()
2153 *val = sc->sc_tx_err; in ural_m_stat()
2156 *val = sc->sc_tx_retries; in ural_m_stat()
2168 RAL_UNLOCK(sc); in ural_m_stat()
2171 RAL_UNLOCK(sc); in ural_m_stat()
2174 RAL_UNLOCK(sc); in ural_m_stat()
2183 struct ural_softc *sc; in ural_attach() local
2197 sc = ddi_get_soft_state(ural_soft_state_p, in ural_attach()
2199 ASSERT(sc != NULL); in ural_attach()
2200 ural_resume(sc); in ural_attach()
2214 sc = ddi_get_soft_state(ural_soft_state_p, instance); in ural_attach()
2215 ic = (ieee80211com_t *)&sc->sc_ic; in ural_attach()
2216 sc->sc_dev = devinfo; in ural_attach()
2224 if (usb_get_dev_data(devinfo, &sc->sc_udev, in ural_attach()
2226 sc->sc_udev = NULL; in ural_attach()
2230 mutex_init(&sc->sc_genlock, NULL, MUTEX_DRIVER, NULL); in ural_attach()
2231 mutex_init(&sc->tx_lock, NULL, MUTEX_DRIVER, NULL); in ural_attach()
2232 mutex_init(&sc->rx_lock, NULL, MUTEX_DRIVER, NULL); in ural_attach()
2235 sc->asic_rev = ural_read(sc, RAL_MAC_CSR0); in ural_attach()
2238 ural_read_eeprom(sc); in ural_attach()
2241 sc->asic_rev, ural_get_rf(sc->rf_rev)); in ural_attach()
2262 if (sc->rf_rev == RAL_RF_5222) { in ural_attach()
2304 sc->sc_newstate = ic->ic_newstate; in ural_attach()
2310 sc->sc_rcr = 0; in ural_attach()
2311 sc->dwelltime = 300; in ural_attach()
2312 sc->sc_flags &= 0; in ural_attach()
2329 macp->m_driver = sc; in ural_attach()
2373 mutex_destroy(&sc->sc_genlock); in ural_attach()
2374 mutex_destroy(&sc->tx_lock); in ural_attach()
2375 mutex_destroy(&sc->rx_lock); in ural_attach()
2377 usb_client_detach(sc->sc_dev, sc->sc_udev); in ural_attach()
2387 struct ural_softc *sc; in ural_detach() local
2389 sc = ddi_get_soft_state(ural_soft_state_p, ddi_get_instance(devinfo)); in ural_detach()
2390 ASSERT(sc != NULL); in ural_detach()
2396 if (RAL_IS_RUNNING(sc)) in ural_detach()
2397 (void) ural_stop(sc); in ural_detach()
2403 if (mac_disable(sc->sc_ic.ic_mach) != 0) in ural_detach()
2406 ural_stop(sc); in ural_detach()
2412 (void) mac_unregister(sc->sc_ic.ic_mach); in ural_detach()
2417 ieee80211_detach(&sc->sc_ic); in ural_detach()
2419 mutex_destroy(&sc->sc_genlock); in ural_detach()
2420 mutex_destroy(&sc->tx_lock); in ural_detach()
2421 mutex_destroy(&sc->rx_lock); in ural_detach()
2424 usb_client_detach(devinfo, sc->sc_udev); in ural_detach()
2425 sc->sc_udev = NULL; in ural_detach()