Lines Matching +full:rev +full:- +full:mii
1 /*-
2 * SPDX-License-Identifier: (BSD-1-Clause AND BSD-4-Clause)
19 /*-
35 /*-
51 /*-
52 * Copyright (c) 1997, 1998, 1999, 2000-2003
66 * 4. Neither the name of the author nor the names of any co-contributors
122 #include <dev/mii/mii.h>
123 #include <dev/mii/miivar.h>
231 /* MII interface */
278 err = uether_do_request(&sc->sc_ue, &req, &val, 1000); in mos_reg_read_1()
282 return (-1); in mos_reg_read_1()
302 err = uether_do_request(&sc->sc_ue, &req, &val, 1000); in mos_reg_read_2()
306 return (-1); in mos_reg_read_2()
325 err = uether_do_request(&sc->sc_ue, &req, &val, 1000); in mos_reg_write_1()
329 return (-1); in mos_reg_write_1()
349 err = uether_do_request(&sc->sc_ue, &req, &val, 1000); in mos_reg_write_2()
353 return (-1); in mos_reg_write_2()
370 err = uether_do_request(&sc->sc_ue, &req, mac, 1000); in mos_readmac()
373 return (-1); in mos_readmac()
390 err = uether_do_request(&sc->sc_ue, &req, mac, 1000); in mos_writemac()
394 return (-1); in mos_writemac()
411 err = uether_do_request(&sc->sc_ue, &req, hashtbl, 1000); in mos_write_mcast()
415 return (-1); in mos_write_mcast()
426 locked = mtx_owned(&sc->sc_mtx); in mos_miibus_readreg()
441 MOS_DPRINTFN("MII read timeout"); in mos_miibus_readreg()
456 locked = mtx_owned(&sc->sc_mtx); in mos_miibus_writereg()
471 MOS_DPRINTFN("MII write timeout"); in mos_miibus_writereg()
482 struct mii_data *mii = GET_MII(sc); in mos_miibus_statchg() local
485 locked = mtx_owned(&sc->sc_mtx); in mos_miibus_statchg()
497 if ((mii->mii_media_active & IFM_GMASK) == IFM_FDX) in mos_miibus_statchg()
502 switch (IFM_SUBTYPE(mii->mii_media_active)) { in mos_miibus_statchg()
511 /* re-enable TX, RX */ in mos_miibus_statchg()
529 struct mii_data *mii = GET_MII(sc); in mos_ifmedia_upd() local
535 sc->mos_link = 0; in mos_ifmedia_upd()
536 LIST_FOREACH(miisc, &mii->mii_phys, mii_list) in mos_ifmedia_upd()
538 error = mii_mediachg(mii); in mos_ifmedia_upd()
549 struct mii_data *mii = GET_MII(sc); in mos_ifmedia_sts() local
552 mii_pollstat(mii); in mos_ifmedia_sts()
554 ifmr->ifm_active = mii->mii_media_active; in mos_ifmedia_sts()
555 ifmr->ifm_status = mii->mii_media_status; in mos_ifmedia_sts()
638 usb_pause_mtx(&sc->sc_mtx, hz / 128); in mos_reset()
648 * Rev.C devices have a pause threshold register which needs to be set in mos_chip_init()
651 if (mos_reg_read_1(sc, MOS_PAUSE_TRHD) != -1) { in mos_chip_init()
655 sc->mos_phyaddrs[0] = 1; in mos_chip_init()
656 sc->mos_phyaddrs[1] = 0xFF; in mos_chip_init()
668 if (uaa->usb_mode != USB_MODE_HOST) in mos_probe()
670 if (uaa->info.bConfigIndex != MOS_CONFIG_IDX) in mos_probe()
672 if (uaa->info.bIfaceIndex != MOS_IFACE_IDX) in mos_probe()
688 struct usb_ether *ue = &sc->sc_ue; in mos_attach()
692 sc->mos_flags = USB_GET_DRIVER_INFO(uaa); in mos_attach()
695 mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); in mos_attach()
698 error = usbd_transfer_setup(uaa->device, &iface_index, in mos_attach()
699 sc->sc_xfer, mos_config, MOS_ENDPT_MAX, in mos_attach()
700 sc, &sc->sc_mtx); in mos_attach()
706 ue->ue_sc = sc; in mos_attach()
707 ue->ue_dev = dev; in mos_attach()
708 ue->ue_udev = uaa->device; in mos_attach()
709 ue->ue_mtx = &sc->sc_mtx; in mos_attach()
710 ue->ue_methods = &mos_ue_methods; in mos_attach()
712 if (sc->mos_flags & MCS7730) { in mos_attach()
714 } else if (sc->mos_flags & MCS7830) { in mos_attach()
716 } else if (sc->mos_flags & MCS7832) { in mos_attach()
738 err = mos_readmac(sc, ue->ue_eaddr); in mos_attach_post()
743 MOS_DPRINTFN("address: %s", ether_sprintf(ue->ue_eaddr)); in mos_attach_post()
752 struct usb_ether *ue = &sc->sc_ue; in mos_detach()
754 usbd_transfer_unsetup(sc->sc_xfer, MOS_ENDPT_MAX); in mos_detach()
756 mtx_destroy(&sc->sc_mtx); in mos_detach()
769 struct usb_ether *ue = &sc->sc_ue; in mos_bulk_read_callback()
788 usbd_copy_out(pc, actlen - sizeof(rxstat), &rxstat, in mos_bulk_read_callback()
807 pktlen = actlen - 1; in mos_bulk_read_callback()
842 if_t ifp = uether_getifp(&sc->sc_ue); in mos_bulk_write_callback()
861 usbd_m_copy_in(pc, 0, m, 0, m->m_pkthdr.len); in mos_bulk_write_callback()
863 usbd_xfer_set_frame_len(xfer, 0, m->m_pkthdr.len); in mos_bulk_write_callback()
892 struct mii_data *mii = GET_MII(sc); in mos_tick() local
896 mii_tick(mii); in mos_tick()
897 if (!sc->mos_link && mii->mii_media_status & IFM_ACTIVE && in mos_tick()
898 IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) { in mos_tick()
900 sc->mos_link++; in mos_tick()
913 usbd_transfer_start(sc->sc_xfer[MOS_ENDPT_TX]); in mos_start()
914 usbd_transfer_start(sc->sc_xfer[MOS_ENDPT_RX]); in mos_start()
915 usbd_transfer_start(sc->sc_xfer[MOS_ENDPT_INTR]); in mos_start()
934 sc->mos_ipgs[0] = mos_reg_read_1(sc, MOS_IPG0); in mos_init()
935 sc->mos_ipgs[1] = mos_reg_read_1(sc, MOS_IPG1); in mos_init()
936 mos_reg_write_1(sc, MOS_IPG0, sc->mos_ipgs[0]); in mos_init()
937 mos_reg_write_1(sc, MOS_IPG1, sc->mos_ipgs[1]); in mos_init()
963 if_t ifp = uether_getifp(&sc->sc_ue); in mos_intr_callback()
1007 usbd_transfer_stop(sc->sc_xfer[MOS_ENDPT_TX]); in mos_stop()
1008 usbd_transfer_stop(sc->sc_xfer[MOS_ENDPT_RX]); in mos_stop()
1009 usbd_transfer_stop(sc->sc_xfer[MOS_ENDPT_INTR]); in mos_stop()
1011 sc->mos_link = 0; in mos_stop()