Lines Matching refs:sc
46 static void axge_miibus_statchg(struct axge_softc *sc, uint8_t link_status);
149 axge_write_mem(struct axge_softc *sc, uint8_t cmd, uint16_t index, in axge_write_mem() argument
160 if (uether_do_request(&sc->sc_ue, &req, buf, 1000)) { in axge_write_mem()
166 axge_write_cmd_1(struct axge_softc *sc, uint8_t cmd, uint16_t reg, uint8_t val) in axge_write_cmd_1() argument
168 axge_write_mem(sc, cmd, 1, reg, &val, 1); in axge_write_cmd_1()
172 axge_write_cmd_2(struct axge_softc *sc, uint8_t cmd, uint16_t index, in axge_write_cmd_2() argument
178 axge_write_mem(sc, cmd, index, reg, &temp, 2); in axge_write_cmd_2()
183 axge_read_mem(struct axge_softc *sc, uint8_t cmd, uint16_t index, in axge_read_mem() argument
188 AXGE_LOCK_ASSERT(sc, MA_OWNED); in axge_read_mem()
196 return (uether_do_request(&sc->sc_ue, &req, buf, 1000)); in axge_read_mem()
200 axge_read_cmd_1(struct axge_softc *sc, uint8_t cmd, uint16_t reg) in axge_read_cmd_1() argument
204 (void)axge_read_mem(sc, cmd, 1, reg, &val, 1); in axge_read_cmd_1()
209 axge_read_cmd_2(struct axge_softc *sc, uint8_t cmd, uint16_t index, uint16_t reg) in axge_read_cmd_2() argument
213 (void)axge_read_mem(sc, cmd, index, reg, &val, 2); in axge_read_cmd_2()
218 axge_chip_init(struct axge_softc *sc) in axge_chip_init() argument
221 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_EPPRCR, 0); in axge_chip_init()
222 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_EPPRCR, EPPRCR_IPRL); in axge_chip_init()
223 (void)uether_pause(&sc->sc_ue, hz / 4); in axge_chip_init()
224 axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CLK_SELECT, in axge_chip_init()
226 (void)uether_pause(&sc->sc_ue, hz / 10); in axge_chip_init()
232 struct axge_softc *sc = ue->ue_sc; in axge_csum_cfg() local
237 axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CTCR, csum); in axge_csum_cfg()
241 axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CRCR, csum); in axge_csum_cfg()
247 struct axge_softc *sc = ue->ue_sc; in axge_setmulti() local
251 rxmode = axge_read_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR); in axge_setmulti()
254 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR, rxmode); in axge_setmulti()
259 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR, rxmode); in axge_setmulti()
265 struct axge_softc *sc = uether_getsc(ue); in axge_setpromisc() local
269 rxmode = axge_read_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR); in axge_setpromisc()
276 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR, rxmode); in axge_setpromisc()
283 struct axge_softc *sc = uether_getsc(ue); in axge_tick() local
286 AXGE_LOCK_ASSERT(sc, MA_OWNED); in axge_tick()
288 link_status = axge_read_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PLSR); in axge_tick()
290 if (sc->sc_link_status != (link_status & AXGE_LINK_MASK)) { in axge_tick()
291 axge_miibus_statchg(sc, link_status); in axge_tick()
292 sc->sc_link_status = link_status & AXGE_LINK_MASK; in axge_tick()
297 axge_reset(struct axge_softc *sc) in axge_reset() argument
302 cd = usbd_get_config_descriptor(sc->sc_ue.ue_udev); in axge_reset()
304 err = usbd_req_set_config(sc->sc_ue.ue_udev, &sc->sc_mtx, in axge_reset()
310 (void)uether_pause(&sc->sc_ue, hz / 100); in axge_reset()
312 axge_chip_init(sc); in axge_reset()
318 struct axge_softc *sc = uether_getsc(ue); in axge_attach_post() local
321 axge_chip_init(sc); in axge_attach_post()
322 (void)axge_read_mem(sc, AXGE_ACCESS_MAC, NETIF_MAX_HWADDR_LEN, AXGE_NIDR, in axge_attach_post()
351 struct axge_softc *sc = device_get_softc(dev); in axge_attach() local
352 struct usb_ether *ue = &sc->sc_ue; in axge_attach()
355 sc->sc_flags = USB_GET_DRIVER_INFO(uaa); in axge_attach()
356 sc->sc_link_status = AXGE_LINK_MASK; in axge_attach()
359 mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_RECURSE); in axge_attach()
362 error = usbd_transfer_setup(uaa->device, &iface_index, sc->sc_xfer, in axge_attach()
363 axge_config, AXGE_N_TRANSFER, sc, &sc->sc_mtx); in axge_attach()
368 ue->ue_sc = sc; in axge_attach()
371 ue->ue_mtx = &sc->sc_mtx; in axge_attach()
388 struct axge_softc *sc = device_get_softc(dev); in axge_detach() local
389 struct usb_ether *ue = &sc->sc_ue; in axge_detach()
391 usbd_transfer_unsetup(sc->sc_xfer, AXGE_N_TRANSFER); in axge_detach()
393 mtx_destroy(&sc->sc_mtx); in axge_detach()
399 axge_miibus_statchg(struct axge_softc *sc, uint8_t link_status) in axge_miibus_statchg() argument
401 struct usb_ether *ue = &sc->sc_ue; in axge_miibus_statchg()
433 axge_write_mem(sc, AXGE_ACCESS_MAC, 5, AXGE_RX_BULKIN_QCTRL, tmp, 5); in axge_miibus_statchg()
434 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_MSR, val); in axge_miibus_statchg()
450 struct axge_softc *sc = usbd_xfer_softc(xfer); in axge_bulk_read_callback() local
451 struct usb_ether *ue = &sc->sc_ue; in axge_bulk_read_callback()
571 struct axge_softc *sc = usbd_xfer_softc(xfer); in axge_bulk_write_callback() local
572 struct usb_ether *ue = &(sc->sc_ue); in axge_bulk_write_callback()
652 struct axge_softc *sc = ue->ue_sc; in axge_start() local
657 usbd_transfer_start(sc->sc_xfer[AXGE_BULK_DT_WR]); in axge_start()
658 usbd_transfer_start(sc->sc_xfer[AXGE_BULK_DT_RD]); in axge_start()
664 struct axge_softc *sc = uether_getsc(ue); in axge_init() local
671 AXGE_LOCK_ASSERT(sc, MA_OWNED); in axge_init()
677 axge_reset(sc); in axge_init()
681 (void)axge_read_mem(sc, AXGE_ACCESS_MAC, 6, AXGE_NIDR, ifp ->ac_if.hwaddr, 6); in axge_init()
683 axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PWLLR, 0x34); in axge_init()
684 axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PWLHR, 0x52); in axge_init()
701 axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR, rxmode); in axge_init()
703 axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_MMSR, in axge_init()
715 struct axge_softc *sc = uether_getsc(ue); in axge_stop() local
719 AXGE_LOCK_ASSERT(sc, MA_OWNED); in axge_stop()
721 sc->sc_flags &= ~AXE_FLAG_LINK; in axge_stop()
725 usbd_transfer_stop(sc->sc_xfer[AXGE_BULK_DT_WR]); in axge_stop()
726 usbd_transfer_stop(sc->sc_xfer[AXGE_BULK_DT_RD]); in axge_stop()