Lines Matching refs:un
177 mos_reg_read_1(struct usbnet *un, int reg) in mos_reg_read_1() argument
183 if (usbnet_isdying(un)) in mos_reg_read_1()
192 err = usbd_do_request(un->un_udev, &req, &val); in mos_reg_read_1()
195 aprint_error_dev(un->un_dev, "read reg %x\n", reg); in mos_reg_read_1()
203 mos_reg_read_2(struct usbnet *un, int reg) in mos_reg_read_2() argument
209 if (usbnet_isdying(un)) in mos_reg_read_2()
220 err = usbd_do_request(un->un_udev, &req, &val); in mos_reg_read_2()
223 aprint_error_dev(un->un_dev, "read reg2 %x\n", reg); in mos_reg_read_2()
231 mos_reg_write_1(struct usbnet *un, int reg, int aval) in mos_reg_write_1() argument
237 if (usbnet_isdying(un)) in mos_reg_write_1()
248 err = usbd_do_request(un->un_udev, &req, &val); in mos_reg_write_1()
251 aprint_error_dev(un->un_dev, "write reg %x <- %x\n", in mos_reg_write_1()
258 mos_reg_write_2(struct usbnet *un, int reg, int aval) in mos_reg_write_2() argument
266 if (usbnet_isdying(un)) in mos_reg_write_2()
275 err = usbd_do_request(un->un_udev, &req, &val); in mos_reg_write_2()
278 aprint_error_dev(un->un_dev, "write reg2 %x <- %x\n", in mos_reg_write_2()
285 mos_readmac(struct usbnet *un) in mos_readmac() argument
290 if (usbnet_isdying(un)) in mos_readmac()
299 err = usbd_do_request(un->un_udev, &req, un->un_eaddr); in mos_readmac()
302 aprint_error_dev(un->un_dev, "%s: failed", __func__); in mos_readmac()
308 mos_writemac(struct usbnet *un) in mos_writemac() argument
313 if (usbnet_isdying(un)) in mos_writemac()
322 err = usbd_do_request(un->un_udev, &req, un->un_eaddr); in mos_writemac()
325 aprint_error_dev(un->un_dev, "%s: failed", __func__); in mos_writemac()
331 mos_write_mcast(struct usbnet *un, uint8_t *hashtbl) in mos_write_mcast() argument
336 if (usbnet_isdying(un)) in mos_write_mcast()
345 err = usbd_do_request(un->un_udev, &req, hashtbl); in mos_write_mcast()
348 aprint_error_dev(un->un_dev, "%s: failed", __func__); in mos_write_mcast()
356 mos_uno_mii_read_reg(struct usbnet *un, int phy, int reg, uint16_t *val) in mos_uno_mii_read_reg() argument
360 mos_reg_write_2(un, MOS_PHY_DATA, 0); in mos_uno_mii_read_reg()
361 mos_reg_write_1(un, MOS_PHY_CTL, (phy & MOS_PHYCTL_PHYADDR) | in mos_uno_mii_read_reg()
363 mos_reg_write_1(un, MOS_PHY_STS, (reg & MOS_PHYSTS_PHYREG) | in mos_uno_mii_read_reg()
367 if (usbnet_isdying(un)) { in mos_uno_mii_read_reg()
371 if (mos_reg_read_1(un, MOS_PHY_STS) & MOS_PHYSTS_READY) in mos_uno_mii_read_reg()
375 aprint_error_dev(un->un_dev, "read PHY failed\n"); in mos_uno_mii_read_reg()
380 res = mos_reg_read_2(un, MOS_PHY_DATA); in mos_uno_mii_read_reg()
384 device_xname(un->un_dev), __func__, phy, reg, res)); in mos_uno_mii_read_reg()
390 mos_uno_mii_write_reg(struct usbnet *un, int phy, int reg, uint16_t val) in mos_uno_mii_write_reg() argument
395 device_xname(un->un_dev), __func__, phy, reg, val)); in mos_uno_mii_write_reg()
397 mos_reg_write_2(un, MOS_PHY_DATA, val); in mos_uno_mii_write_reg()
398 mos_reg_write_1(un, MOS_PHY_CTL, (phy & MOS_PHYCTL_PHYADDR) | in mos_uno_mii_write_reg()
400 mos_reg_write_1(un, MOS_PHY_STS, (reg & MOS_PHYSTS_PHYREG) | in mos_uno_mii_write_reg()
404 if (usbnet_isdying(un)) in mos_uno_mii_write_reg()
406 if (mos_reg_read_1(un, MOS_PHY_STS) & MOS_PHYSTS_READY) in mos_uno_mii_write_reg()
410 aprint_error_dev(un->un_dev, "write PHY failed\n"); in mos_uno_mii_write_reg()
420 struct usbnet * const un = ifp->if_softc; in mos_uno_mii_statchg() local
421 struct mii_data * const mii = usbnet_mii(un); in mos_uno_mii_statchg()
424 if (usbnet_isdying(un)) in mos_uno_mii_statchg()
427 DPRINTFN(10,("%s: %s: enter\n", device_xname(un->un_dev), __func__)); in mos_uno_mii_statchg()
430 val = mos_reg_read_1(un, MOS_CTL); in mos_uno_mii_statchg()
432 mos_reg_write_1(un, MOS_CTL, val); in mos_uno_mii_statchg()
435 mos_reg_write_1(un, MOS_FRAME_DROP_CNT, 0); in mos_uno_mii_statchg()
452 usbnet_set_link(un, true); in mos_uno_mii_statchg()
457 err = mos_reg_write_1(un, MOS_CTL, val); in mos_uno_mii_statchg()
460 aprint_error_dev(un->un_dev, "media change failed\n"); in mos_uno_mii_statchg()
466 struct usbnet *un = ifp->if_softc; in mos_uno_mcast() local
467 struct ethercom *ec = usbnet_ec(un); in mos_uno_mcast()
473 if (usbnet_isdying(un)) in mos_uno_mcast()
476 rxmode = mos_reg_read_1(un, MOS_CTL); in mos_uno_mcast()
480 if (usbnet_ispromisc(un)) { in mos_uno_mcast()
513 mos_write_mcast(un, mchash); in mos_uno_mcast()
514 mos_reg_write_1(un, MOS_CTL, rxmode); in mos_uno_mcast()
518 mos_reset(struct usbnet *un) in mos_reset() argument
522 if (usbnet_isdying(un)) in mos_reset()
525 ctl = mos_reg_read_1(un, MOS_CTL); in mos_reset()
529 mos_reg_write_1(un, MOS_CTL, ctl); in mos_reset()
532 mos_reg_write_1(un, MOS_FRAME_DROP_CNT, 0); in mos_reset()
539 mos_chip_init(struct usbnet *un) in mos_chip_init() argument
547 if (mos_reg_read_1(un, MOS_PAUSE_TRHD) != -1) { in mos_chip_init()
549 mos_reg_write_1(un, MOS_PAUSE_TRHD, 0); in mos_chip_init()
572 struct usbnet * un = device_private(self); in mos_attach() local
587 un->un_dev = self; in mos_attach()
588 un->un_udev = dev; in mos_attach()
589 un->un_sc = un; in mos_attach()
590 un->un_ops = &mos_ops; in mos_attach()
591 un->un_rx_xfer_flags = USBD_SHORT_XFER_OK; in mos_attach()
592 un->un_tx_xfer_flags = USBD_FORCE_SHORT_XFER; in mos_attach()
593 un->un_rx_list_cnt = MOS_RX_LIST_CNT; in mos_attach()
594 un->un_tx_list_cnt = MOS_TX_LIST_CNT; in mos_attach()
595 un->un_rx_bufsz = un->un_tx_bufsz = MOS_BUFSZ; in mos_attach()
604 err = usbd_device2interface_handle(dev, MOS_IFACE_IDX, &un->un_iface); in mos_attach()
611 un->un_flags = mos_lookup(uaa->uaa_vendor, uaa->uaa_product)->mos_flags; in mos_attach()
613 id = usbd_get_interface_descriptor(un->un_iface); in mos_attach()
617 ed = usbd_interface2endpoint_descriptor(un->un_iface, i); in mos_attach()
624 un->un_ed[USBNET_ENDPT_RX] = ed->bEndpointAddress; in mos_attach()
627 un->un_ed[USBNET_ENDPT_TX] = ed->bEndpointAddress; in mos_attach()
630 un->un_ed[USBNET_ENDPT_INTR] = ed->bEndpointAddress; in mos_attach()
634 if (un->un_flags & MCS7730) in mos_attach()
636 else if (un->un_flags & MCS7830) in mos_attach()
638 else if (un->un_flags & MCS7832) in mos_attach()
642 usbnet_attach(un); in mos_attach()
644 mos_chip_init(un); in mos_attach()
649 err = mos_readmac(un); in mos_attach()
655 struct ethercom *ec = usbnet_ec(un); in mos_attach()
658 usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, in mos_attach()
667 mos_uno_rx_loop(struct usbnet * un, struct usbnet_chain *c, uint32_t total_len) in mos_uno_rx_loop() argument
669 struct ifnet *ifp = usbnet_ifp(un); in mos_uno_rx_loop()
675 device_xname(un->un_dev), __func__, total_len)); in mos_uno_rx_loop()
682 if (pktlen > un->un_rx_bufsz) { in mos_uno_rx_loop()
690 device_xname(un->un_dev))); in mos_uno_rx_loop()
708 usbnet_enqueue(un, c->unc_buf, pktlen, 0, 0, 0); in mos_uno_rx_loop()
712 mos_uno_tx_prepare(struct usbnet *un, struct mbuf *m, struct usbnet_chain *c) in mos_uno_tx_prepare() argument
716 if ((unsigned)m->m_pkthdr.len > un->un_tx_bufsz) in mos_uno_tx_prepare()
723 device_xname(un->un_dev), __func__, length)); in mos_uno_tx_prepare()
731 struct usbnet * const un = ifp->if_softc; in mos_uno_init() local
736 mos_reset(un); in mos_uno_init()
739 mos_writemac(un); in mos_uno_init()
742 ipgs[0] = mos_reg_read_1(un, MOS_IPG0); in mos_uno_init()
743 ipgs[1] = mos_reg_read_1(un, MOS_IPG1); in mos_uno_init()
744 mos_reg_write_1(un, MOS_IPG0, ipgs[0]); in mos_uno_init()
745 mos_reg_write_1(un, MOS_IPG1, ipgs[1]); in mos_uno_init()
748 rxmode = mos_reg_read_1(un, MOS_CTL); in mos_uno_init()
751 mos_reg_write_1(un, MOS_CTL, rxmode); in mos_uno_init()
759 struct usbnet * const un = ifp->if_softc; in mos_uno_stop() local
761 mos_reset(un); in mos_uno_stop()