Lines Matching defs:un
100 #define UDAV_SETBIT(un, reg, x) \
101 udav_csr_write1(un, reg, udav_csr_read1(un, reg) | (x))
103 #define UDAV_CLRBIT(un, reg, x) \
104 udav_csr_write1(un, reg, udav_csr_read1(un, reg) & ~(x))
159 struct usbnet * const un = device_private(self);
175 un->un_dev = self;
176 un->un_udev = dev;
177 un->un_sc = un;
178 un->un_ops = &udav_ops;
179 un->un_rx_xfer_flags = USBD_SHORT_XFER_OK;
180 un->un_tx_xfer_flags = USBD_FORCE_SHORT_XFER;
181 un->un_rx_list_cnt = UDAV_RX_LIST_CNT;
182 un->un_tx_list_cnt = UDAV_TX_LIST_CNT;
183 un->un_rx_bufsz = UDAV_BUFSZ;
184 un->un_tx_bufsz = UDAV_BUFSZ;
202 un->un_iface = iface;
203 un->un_flags = udav_lookup(uaa->uaa_vendor,
207 id = usbd_get_interface_descriptor(un->un_iface);
210 un->un_ed[USBNET_ENDPT_RX] = un->un_ed[USBNET_ENDPT_TX] =
211 un->un_ed[USBNET_ENDPT_INTR] = -1;
213 ed = usbd_interface2endpoint_descriptor(un->un_iface, i);
220 un->un_ed[USBNET_ENDPT_RX] = ed->bEndpointAddress;
223 un->un_ed[USBNET_ENDPT_TX] = ed->bEndpointAddress;
226 un->un_ed[USBNET_ENDPT_INTR] = ed->bEndpointAddress;
229 if (un->un_ed[USBNET_ENDPT_RX] == 0 ||
230 un->un_ed[USBNET_ENDPT_TX] == 0 ||
231 un->un_ed[USBNET_ENDPT_INTR] == 0) {
237 un->un_ed[USBNET_ENDPT_INTR] = 0;
239 usbnet_attach(un);
242 // udav_reset(un);
245 err = udav_csr_read(un, UDAV_PAR, un->un_eaddr, ETHER_ADDR_LEN);
251 if (ISSET(un->un_flags, UDAV_NO_PHY))
257 usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST,
266 udav_mem_read(struct usbnet *un, int offset, void *buf, int len)
272 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
274 if (usbnet_isdying(un))
286 err = usbd_do_request(un->un_udev, &req, buf);
289 device_xname(un->un_dev), __func__, offset, err));
297 udav_mem_write(struct usbnet *un, int offset, void *buf, int len)
303 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
305 if (usbnet_isdying(un))
317 err = usbd_do_request(un->un_udev, &req, buf);
320 device_xname(un->un_dev), __func__, offset, err));
328 udav_mem_write1(struct usbnet *un, int offset, unsigned char ch)
334 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
336 if (usbnet_isdying(un))
347 err = usbd_do_request(un->un_udev, &req, NULL);
350 device_xname(un->un_dev), __func__, offset, err));
359 udav_csr_read(struct usbnet *un, int offset, void *buf, int len)
364 if (usbnet_isdying(un))
368 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
379 err = usbd_do_request(un->un_udev, &req, buf);
382 device_xname(un->un_dev), __func__, offset, err));
391 udav_csr_write(struct usbnet *un, int offset, void *buf, int len)
396 if (usbnet_isdying(un))
400 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
411 err = usbd_do_request(un->un_udev, &req, buf);
414 device_xname(un->un_dev), __func__, offset, err));
421 udav_csr_read1(struct usbnet *un, int offset)
426 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
428 if (usbnet_isdying(un))
431 return udav_csr_read(un, offset, &val, 1) ? 0 : val;
436 udav_csr_write1(struct usbnet *un, int offset, unsigned char ch)
441 if (usbnet_isdying(un))
445 ("%s: %s: enter\n", device_xname(un->un_dev), __func__));
455 err = usbd_do_request(un->un_udev, &req, NULL);
458 device_xname(un->un_dev), __func__, offset, err));
467 struct usbnet * const un = ifp->if_softc;
468 struct mii_data * const mii = usbnet_mii(un);
472 DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__));
475 udav_csr_write(un, UDAV_PAR, eaddr, ETHER_ADDR_LEN);
479 UDAV_CLRBIT(un, UDAV_NCR, UDAV_NCR_LBK0 | UDAV_NCR_LBK1);
482 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_DIS_LONG | UDAV_RCR_DIS_CRC);
485 if (usbnet_ispromisc(un))
486 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_ALL | UDAV_RCR_PRMSC);
488 UDAV_CLRBIT(un, UDAV_RCR, UDAV_RCR_ALL | UDAV_RCR_PRMSC);
491 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_RXEN);
494 UDAV_SETBIT(un, UDAV_GPCR, UDAV_GPCR_GEP_CNTL0);
495 UDAV_CLRBIT(un, UDAV_GPR, UDAV_GPR_GEPIO0);
504 if (usbnet_isdying(un))
511 udav_reset(struct usbnet *un)
514 if (usbnet_isdying(un))
517 DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__));
519 udav_chip_init(un);
523 udav_chip_init(struct usbnet *un)
532 UDAV_CLRBIT(un, UDAV_NCR, UDAV_NCR_EXT_PHY);
534 if (un->un_flags & UDAV_EXT_PHY) {
535 UDAV_SETBIT(un, UDAV_NCR, UDAV_NCR_EXT_PHY);
537 UDAV_CLRBIT(un, UDAV_NCR, UDAV_NCR_EXT_PHY);
541 UDAV_SETBIT(un, UDAV_NCR, UDAV_NCR_RST);
544 if (usbnet_isdying(un))
546 if (!(udav_csr_read1(un, UDAV_NCR) & UDAV_NCR_RST))
561 struct usbnet * const un = ifp->if_softc;
562 struct ethercom *ec = usbnet_ec(un);
568 DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__));
570 if (usbnet_isdying(un))
573 if (ISSET(un->un_flags, UDAV_NO_PHY)) {
574 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_ALL);
575 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_PRMSC);
579 if (usbnet_ispromisc(un)) {
583 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_ALL | UDAV_RCR_PRMSC);
590 udav_csr_write(un, UDAV_MAR, hashes, sizeof(hashes));
600 UDAV_SETBIT(un, UDAV_RCR, UDAV_RCR_ALL);
601 UDAV_CLRBIT(un, UDAV_RCR, UDAV_RCR_PRMSC);
613 UDAV_CLRBIT(un, UDAV_RCR, UDAV_RCR_ALL);
616 udav_csr_write(un, UDAV_MAR, hashes, sizeof(hashes));
620 udav_uno_tx_prepare(struct usbnet *un, struct mbuf *m, struct usbnet_chain *c)
625 DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__));
627 un->un_tx_bufsz - 2)
644 DPRINTF(("%s: %s: send %d bytes\n", device_xname(un->un_dev),
651 udav_uno_rx_loop(struct usbnet *un, struct usbnet_chain *c, uint32_t total_len)
653 struct ifnet *ifp = usbnet_ifp(un);
658 DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__));
665 DPRINTF(("%s: RX Status: 0x%02x\n", device_xname(un->un_dev), pktstat));
671 DPRINTF(("%s: RX Length: 0x%02x\n", device_xname(un->un_dev), pkt_len));
687 DPRINTF(("%s: Rx deliver: 0x%02x\n", device_xname(un->un_dev), pkt_len));
689 usbnet_enqueue(un, buf, pkt_len, 0, 0, 0);
696 struct usbnet * const un = ifp->if_softc;
698 DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__));
700 udav_reset(un);
704 udav_uno_mii_read_reg(struct usbnet *un, int phy, int reg, uint16_t *val)
709 device_xname(un->un_dev), __func__, phy, reg));
711 if (usbnet_isdying(un)) {
713 printf("%s: %s: dying\n", device_xname(un->un_dev),
723 device_xname(un->un_dev), __func__, phy));
729 udav_csr_write1(un, UDAV_EPAR,
733 udav_csr_write1(un, UDAV_EPCR, UDAV_EPCR_EPOS | UDAV_EPCR_ERPRR);
738 UDAV_CLRBIT(un, UDAV_EPCR, UDAV_EPCR_ERPRR);
741 udav_csr_read(un, UDAV_EPDRL, data, 2);
746 device_xname(un->un_dev), __func__, phy, reg, *val));
752 udav_uno_mii_write_reg(struct usbnet *un, int phy, int reg, uint16_t val)
757 device_xname(un->un_dev), __func__, phy, reg, val));
759 if (usbnet_isdying(un)) {
761 printf("%s: %s: dying\n", device_xname(un->un_dev),
770 device_xname(un->un_dev), __func__, phy));
775 udav_csr_write1(un, UDAV_EPAR,
781 udav_csr_write(un, UDAV_EPDRL, data, 2);
784 udav_csr_write1(un, UDAV_EPCR, UDAV_EPCR_EPOS | UDAV_EPCR_ERPRW);
789 UDAV_CLRBIT(un, UDAV_EPCR, UDAV_EPCR_ERPRW);
797 struct usbnet * const un = ifp->if_softc;
798 struct mii_data * const mii = usbnet_mii(un);
802 if (usbnet_isdying(un))
808 device_xname(un->un_dev), __func__));
809 usbnet_set_link(un, true);