Lines Matching refs:un
126 #define AXE_IS_178_FAMILY(un) \ argument
127 ((un)->un_flags & (AX178 | AX772 | AX772A | AX772B))
129 #define AXE_IS_772(un) \ argument
130 ((un)->un_flags & (AX772 | AX772A | AX772B))
132 #define AXE_IS_172(un) (AXE_IS_178_FAMILY(un) == 0) argument
292 struct usbnet * const un = &sc->axe_un; in axe_cmd() local
296 if (usbnet_isdying(un)) in axe_cmd()
310 err = usbd_do_request(un->un_udev, &req, buf); in axe_cmd()
318 axe_uno_mii_read_reg(struct usbnet *un, int phy, int reg, uint16_t *val) in axe_uno_mii_read_reg() argument
321 struct axe_softc * const sc = usbnet_softc(un); in axe_uno_mii_read_reg()
327 if (un->un_phyno != phy) { in axe_uno_mii_read_reg()
338 device_printf(un->un_dev, "read PHY failed\n"); in axe_uno_mii_read_reg()
344 if (AXE_IS_772(un) && reg == MII_BMSR) { in axe_uno_mii_read_reg()
360 axe_uno_mii_write_reg(struct usbnet *un, int phy, int reg, uint16_t val) in axe_uno_mii_write_reg() argument
362 struct axe_softc * const sc = usbnet_softc(un); in axe_uno_mii_write_reg()
366 if (un->un_phyno != phy) in axe_uno_mii_write_reg()
385 struct usbnet * const un = ifp->if_softc; in axe_uno_mii_statchg() local
386 struct axe_softc * const sc = usbnet_softc(un); in axe_uno_mii_statchg()
387 struct mii_data *mii = usbnet_mii(un); in axe_uno_mii_statchg()
390 if (usbnet_isdying(un)) in axe_uno_mii_statchg()
394 if (AXE_IS_172(un)) { in axe_uno_mii_statchg()
406 if (un->un_flags & AX178) in axe_uno_mii_statchg()
411 usbnet_set_link(un, true); in axe_uno_mii_statchg()
415 usbnet_set_link(un, true); in axe_uno_mii_statchg()
418 usbnet_set_link(un, true); in axe_uno_mii_statchg()
426 device_printf(un->un_dev, "media change failed\n"); in axe_uno_mii_statchg()
433 struct usbnet * const un = ifp->if_softc; in axe_uno_mcast() local
434 struct axe_softc * const sc = usbnet_softc(un); in axe_uno_mcast()
435 struct ethercom *ec = usbnet_ec(un); in axe_uno_mcast()
442 if (usbnet_isdying(un)) in axe_uno_mcast()
446 device_printf(un->un_dev, "can't read rxmode"); in axe_uno_mcast()
455 if (usbnet_ispromisc(un)) { in axe_uno_mcast()
486 axe_ax_init(struct usbnet *un) in axe_ax_init() argument
488 struct axe_softc * const sc = usbnet_softc(un); in axe_ax_init()
492 if (un->un_flags & AX178) { in axe_ax_init()
494 } else if (un->un_flags & AX772) { in axe_ax_init()
496 } else if (un->un_flags & AX772A) { in axe_ax_init()
498 } else if (un->un_flags & AX772B) { in axe_ax_init()
505 if (axe_cmd(sc, cmd, 0, 0, un->un_eaddr)) { in axe_ax_init()
506 aprint_error_dev(un->un_dev, in axe_ax_init()
513 axe_reset(struct usbnet *un) in axe_reset() argument
516 if (usbnet_isdying(un)) in axe_reset()
532 axe_ax_init(un); in axe_reset()
570 struct usbnet * const un = &sc->axe_un; in axe_ax88178_init() local
654 axe_uno_mii_write_reg(un, un->un_phyno, 0x1F, 0x0005); in axe_ax88178_init()
655 axe_uno_mii_write_reg(un, un->un_phyno, 0x0C, 0x0000); in axe_ax88178_init()
656 axe_uno_mii_read_reg(un, un->un_phyno, 0x0001, &val); in axe_ax88178_init()
657 axe_uno_mii_write_reg(un, un->un_phyno, 0x01, val | 0x0080); in axe_ax88178_init()
658 axe_uno_mii_write_reg(un, un->un_phyno, 0x1F, 0x0000); in axe_ax88178_init()
668 usbd_delay_ms(un->un_udev, 150); in axe_ax88178_init()
671 usbd_delay_ms(un->un_udev, 150); in axe_ax88178_init()
674 usbd_delay_ms(un->un_udev, 10); in axe_ax88178_init()
682 struct usbnet * const un = &sc->axe_un; in axe_ax88772_init() local
685 usbd_delay_ms(un->un_udev, 40); in axe_ax88772_init()
687 if (un->un_phyno == AXE_772_PHY_NO_EPHY) { in axe_ax88772_init()
691 usbd_delay_ms(un->un_udev, 10); in axe_ax88772_init()
695 usbd_delay_ms(un->un_udev, 60); in axe_ax88772_init()
700 usbd_delay_ms(un->un_udev, 150); in axe_ax88772_init()
712 usbd_delay_ms(un->un_udev, 10); in axe_ax88772_init()
719 usbd_delay_ms(un->un_udev, 150); in axe_ax88772_init()
727 struct usbnet * const un = &sc->axe_un; in axe_ax88772_phywake() local
729 if (un->un_phyno == AXE_772_PHY_NO_EPHY) { in axe_ax88772_phywake()
733 usbd_delay_ms(un->un_udev, hztoms(hz / 32)); in axe_ax88772_phywake()
741 usbd_delay_ms(un->un_udev, hztoms(hz / 32)); in axe_ax88772_phywake()
748 usbd_delay_ms(un->un_udev, 150); in axe_ax88772_phywake()
751 if (un->un_phyno == AXE_772_PHY_NO_EPHY) { in axe_ax88772_phywake()
758 usbd_delay_ms(un->un_udev, 600); in axe_ax88772_phywake()
763 usbd_delay_ms(un->un_udev, hztoms(hz / 32)); in axe_ax88772_phywake()
765 usbd_delay_ms(un->un_udev, hztoms(hz / 32)); in axe_ax88772_phywake()
784 struct usbnet * const un = &sc->axe_un; in axe_ax88772b_init() local
797 aprint_error_dev(un->un_dev, "failed to read eeprom\n"); in axe_ax88772b_init()
808 uint8_t *eaddr = un->un_eaddr; in axe_ax88772b_init()
812 aprint_error_dev(un->un_dev, in axe_ax88772b_init()
850 struct usbnet * const un = &sc->axe_un; in axe_attach() local
860 KASSERT((void *)sc == un); in axe_attach()
868 un->un_dev = self; in axe_attach()
869 un->un_udev = dev; in axe_attach()
870 un->un_sc = sc; in axe_attach()
871 un->un_ops = &axe_ops; in axe_attach()
872 un->un_rx_xfer_flags = USBD_SHORT_XFER_OK; in axe_attach()
873 un->un_tx_xfer_flags = USBD_FORCE_SHORT_XFER; in axe_attach()
874 un->un_rx_list_cnt = AXE_RX_LIST_CNT; in axe_attach()
875 un->un_tx_list_cnt = AXE_TX_LIST_CNT; in axe_attach()
884 un->un_flags = axe_lookup(uaa->uaa_vendor, uaa->uaa_product)->axe_flags; in axe_attach()
886 err = usbd_device2interface_handle(dev, AXE_IFACE_IDX, &un->un_iface); in axe_attach()
892 id = usbd_get_interface_descriptor(un->un_iface); in axe_attach()
895 if (AXE_IS_172(un)) in axe_attach()
898 bufsz = (un->un_udev->ud_speed == USB_SPEED_HIGH) ? in axe_attach()
900 un->un_rx_bufsz = un->un_tx_bufsz = bufsz; in axe_attach()
902 un->un_ed[USBNET_ENDPT_RX] = 0; in axe_attach()
903 un->un_ed[USBNET_ENDPT_TX] = 0; in axe_attach()
904 un->un_ed[USBNET_ENDPT_INTR] = 0; in axe_attach()
908 ed = usbd_interface2endpoint_descriptor(un->un_iface, i); in axe_attach()
917 un->un_ed[USBNET_ENDPT_RX] == 0) { in axe_attach()
918 un->un_ed[USBNET_ENDPT_RX] = ed->bEndpointAddress; in axe_attach()
920 un->un_ed[USBNET_ENDPT_TX] == 0) { in axe_attach()
921 un->un_ed[USBNET_ENDPT_TX] = ed->bEndpointAddress; in axe_attach()
923 un->un_ed[USBNET_ENDPT_INTR] = ed->bEndpointAddress; in axe_attach()
928 usbnet_attach(un); in axe_attach()
938 un->un_phyno = axe_get_phyno(sc, AXE_PHY_SEL_PRI); in axe_attach()
939 if (un->un_phyno == -1) in axe_attach()
940 un->un_phyno = axe_get_phyno(sc, AXE_PHY_SEL_SEC); in axe_attach()
941 if (un->un_phyno == -1) { in axe_attach()
944 un->un_phyno = 0; in axe_attach()
949 axe_ax_init(un); in axe_attach()
954 if (un->un_flags & (AX772A | AX772B)) { in axe_attach()
966 if (!AXE_IS_172(un)) in axe_attach()
967 usbnet_ec(un)->ec_capabilities = ETHERCAP_VLAN_MTU; in axe_attach()
968 if (un->un_flags & AX772B) { in axe_attach()
969 struct ifnet *ifp = usbnet_ifp(un); in axe_attach()
985 if (un->un_flags & (AX772A | AX772B | AX178)) in axe_attach()
988 usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, in axe_attach()
993 axe_uno_rx_loop(struct usbnet * un, struct usbnet_chain *c, uint32_t total_len) in axe_uno_rx_loop() argument
996 struct axe_softc * const sc = usbnet_softc(un); in axe_uno_rx_loop()
997 struct ifnet *ifp = usbnet_ifp(un); in axe_uno_rx_loop()
1005 if ((un->un_flags & AXSTD_FRAME) != 0) { in axe_uno_rx_loop()
1040 } else if ((un->un_flags & AXCSUM_FRAME) != 0) { in axe_uno_rx_loop()
1117 usbnet_enqueue(un, buf, pktlen, flags, 0, 0); in axe_uno_rx_loop()
1126 axe_uno_tx_prepare(struct usbnet *un, struct mbuf *m, struct usbnet_chain *c) in axe_uno_tx_prepare() argument
1133 if (!AXE_IS_172(un)) { in axe_uno_tx_prepare()
1138 boundary = (un->un_udev->ud_speed == USB_SPEED_HIGH) ? 512 : 64; in axe_uno_tx_prepare()
1155 if ((unsigned)m->m_pkthdr.len > un->un_tx_bufsz - hdr_len - tlr_len) in axe_uno_tx_prepare()
1171 struct usbnet * const un = &sc->axe_un; in axe_csum_cfg() local
1172 struct ifnet * const ifp = usbnet_ifp(un); in axe_csum_cfg()
1175 if ((un->un_flags & AX772B) != 0) { in axe_csum_cfg()
1210 struct usbnet * const un = ifp->if_softc; in axe_uno_init() local
1211 struct axe_softc * const sc = usbnet_softc(un); in axe_uno_init()
1215 axe_reset(un); in axe_uno_init()
1222 if (AXE_IS_172(un)) { in axe_uno_init()
1223 axe_cmd(sc, AXE_172_CMD_WRITE_NODEID, 0, 0, un->un_eaddr); in axe_uno_init()
1228 axe_cmd(sc, AXE_178_CMD_WRITE_NODEID, 0, 0, un->un_eaddr); in axe_uno_init()
1232 un->un_flags &= ~(AXSTD_FRAME | AXCSUM_FRAME); in axe_uno_init()
1233 if ((un->un_flags & AX772B) != 0 && in axe_uno_init()
1236 un->un_flags |= AXCSUM_FRAME; in axe_uno_init()
1239 un->un_flags |= AXSTD_FRAME; in axe_uno_init()
1246 if (un->un_flags & AX772B) { in axe_uno_init()
1254 if (AXE_IS_172(un)) in axe_uno_init()
1257 if (un->un_flags & AX772B) { in axe_uno_init()
1269 if (un->un_flags & AXCSUM_FRAME) in axe_uno_init()
1277 if (un->un_udev->ud_speed == USB_SPEED_HIGH) { in axe_uno_init()
1295 struct usbnet * const un = ifp->if_softc; in axe_uno_stop() local
1297 axe_reset(un); in axe_uno_stop()