• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/usb/net/

Lines Matching refs:ue

63 static SYSCTL_NODE(_net, OID_AUTO, ue, CTLFLAG_RD, 0,
94 uether_pause(struct usb_ether *ue, unsigned int _ticks)
96 if (usb_proc_is_gone(&ue->ue_tq)) {
100 usb_pause_mtx(ue->ue_mtx, _ticks);
105 ue_queue_command(struct usb_ether *ue,
111 UE_LOCK_ASSERT(ue, MA_OWNED);
113 if (usb_proc_is_gone(&ue->ue_tq)) {
122 usb_proc_msignal(&ue->ue_tq, t0, t1);
126 task->ue = ue;
132 usb_proc_mwait(&ue->ue_tq, t0, t1);
136 uether_getifp(struct usb_ether *ue)
138 return (ue->ue_ifp);
142 uether_getmii(struct usb_ether *ue)
144 return (device_get_softc(ue->ue_miibus));
148 uether_getsc(struct usb_ether *ue)
150 return (ue->ue_sc);
156 struct usb_ether *ue = arg1;
159 name = device_get_nameunit(ue->ue_dev);
164 uether_ifattach(struct usb_ether *ue)
169 if ((ue->ue_dev == NULL) ||
170 (ue->ue_udev == NULL) ||
171 (ue->ue_mtx == NULL) ||
172 (ue->ue_methods == NULL))
175 error = usb_proc_create(&ue->ue_tq, ue->ue_mtx,
176 device_get_nameunit(ue->ue_dev), USB_PRI_MED);
178 device_printf(ue->ue_dev, "could not setup taskqueue\n");
183 UE_LOCK(ue);
184 ue_queue_command(ue, ue_attach_post_task,
185 &ue->ue_sync_task[0].hdr,
186 &ue->ue_sync_task[1].hdr);
187 UE_UNLOCK(ue);
194 uether_ifattach_wait(struct usb_ether *ue)
197 UE_LOCK(ue);
198 usb_proc_mwait(&ue->ue_tq,
199 &ue->ue_sync_task[0].hdr,
200 &ue->ue_sync_task[1].hdr);
201 UE_UNLOCK(ue);
209 struct usb_ether *ue = task->ue;
215 ue->ue_methods->ue_attach_post(ue);
217 UE_UNLOCK(ue);
219 ue->ue_unit = alloc_unr(ueunit);
220 usb_callout_init_mtx(&ue->ue_watchdog, ue->ue_mtx, 0);
221 sysctl_ctx_init(&ue->ue_sysctl_ctx);
227 device_printf(ue->ue_dev, "could not allocate ifnet\n");
231 ifp->if_softc = ue;
232 if_initname(ifp, "ue", ue->ue_unit);
233 if (ue->ue_methods->ue_attach_post_sub != NULL) {
234 ue->ue_ifp = ifp;
235 error = ue->ue_methods->ue_attach_post_sub(ue);
238 if (ue->ue_methods->ue_ioctl != NULL)
239 ifp->if_ioctl = ue->ue_methods->ue_ioctl;
247 ue->ue_ifp = ifp;
249 if (ue->ue_methods->ue_mii_upd != NULL &&
250 ue->ue_methods->ue_mii_sts != NULL) {
253 error = mii_attach(ue->ue_dev, &ue->ue_miibus, ifp,
254 ue_ifmedia_upd, ue->ue_methods->ue_mii_sts,
261 device_printf(ue->ue_dev, "attaching PHYs failed\n");
265 if_printf(ifp, "<USB Ethernet> on %s\n", device_get_nameunit(ue->ue_dev));
266 ether_ifattach(ifp, ue->ue_eaddr);
273 snprintf(num, sizeof(num), "%u", ue->ue_unit);
274 ue->ue_sysctl_oid = SYSCTL_ADD_NODE(&ue->ue_sysctl_ctx,
275 &SYSCTL_NODE_CHILDREN(_net, ue),
277 SYSCTL_ADD_PROC(&ue->ue_sysctl_ctx,
278 SYSCTL_CHILDREN(ue->ue_sysctl_oid), OID_AUTO,
279 "%parent", CTLTYPE_STRING | CTLFLAG_RD, ue, 0,
282 UE_LOCK(ue);
287 free_unr(ueunit, ue->ue_unit);
288 if (ue->ue_ifp != NULL) {
289 if_free(ue->ue_ifp);
290 ue->ue_ifp = NULL;
292 UE_LOCK(ue);
297 uether_ifdetach(struct usb_ether *ue)
302 usb_proc_drain(&ue->ue_tq);
305 ifp = ue->ue_ifp;
310 UE_LOCK(ue);
312 UE_UNLOCK(ue);
315 usb_callout_drain(&ue->ue_watchdog);
318 if (ue->ue_miibus != NULL) {
320 device_delete_child(ue->ue_dev, ue->ue_miibus);
331 sysctl_ctx_free(&ue->ue_sysctl_ctx);
334 free_unr(ueunit, ue->ue_unit);
338 usb_proc_free(&ue->ue_tq);
342 uether_is_gone(struct usb_ether *ue)
344 return (usb_proc_is_gone(&ue->ue_tq));
357 struct usb_ether *ue = arg;
359 UE_LOCK(ue);
360 ue_queue_command(ue, ue_start_task,
361 &ue->ue_sync_task[0].hdr,
362 &ue->ue_sync_task[1].hdr);
363 UE_UNLOCK(ue);
371 struct usb_ether *ue = task->ue;
372 struct ifnet *ifp = ue->ue_ifp;
374 UE_LOCK_ASSERT(ue, MA_OWNED);
376 ue->ue_methods->ue_init(ue);
381 if (ue->ue_methods->ue_tick != NULL)
382 usb_callout_reset(&ue->ue_watchdog, hz, ue_watchdog, ue);
390 struct usb_ether *ue = task->ue;
392 UE_LOCK_ASSERT(ue, MA_OWNED);
394 usb_callout_stop(&ue->ue_watchdog);
396 ue->ue_methods->ue_stop(ue);
409 struct usb_ether *ue = ifp->if_softc;
414 UE_LOCK(ue);
415 ue->ue_methods->ue_start(ue);
416 UE_UNLOCK(ue);
424 struct usb_ether *ue = task->ue;
426 ue->ue_methods->ue_setpromisc(ue);
434 struct usb_ether *ue = task->ue;
436 ue->ue_methods->ue_setmulti(ue);
449 struct usb_ether *ue = ifp->if_softc;
452 UE_LOCK(ue);
453 ue_queue_command(ue, ue_ifmedia_task,
454 &ue->ue_media_task[0].hdr,
455 &ue->ue_media_task[1].hdr);
456 UE_UNLOCK(ue);
466 struct usb_ether *ue = task->ue;
467 struct ifnet *ifp = ue->ue_ifp;
469 ue->ue_methods->ue_mii_upd(ifp);
475 struct usb_ether *ue = arg;
476 struct ifnet *ifp = ue->ue_ifp;
481 ue_queue_command(ue, ue_tick_task,
482 &ue->ue_tick_task[0].hdr,
483 &ue->ue_tick_task[1].hdr);
485 usb_callout_reset(&ue->ue_watchdog, hz, ue_watchdog, ue);
493 struct usb_ether *ue = task->ue;
494 struct ifnet *ifp = ue->ue_ifp;
499 ue->ue_methods->ue_tick(ue);
505 struct usb_ether *ue = ifp->if_softc;
512 UE_LOCK(ue);
515 ue_queue_command(ue, ue_promisc_task,
516 &ue->ue_promisc_task[0].hdr,
517 &ue->ue_promisc_task[1].hdr);
519 ue_queue_command(ue, ue_start_task,
520 &ue->ue_sync_task[0].hdr,
521 &ue->ue_sync_task[1].hdr);
523 ue_queue_command(ue, ue_stop_task,
524 &ue->ue_sync_task[0].hdr,
525 &ue->ue_sync_task[1].hdr);
527 UE_UNLOCK(ue);
531 UE_LOCK(ue);
532 ue_queue_command(ue, ue_setmulti_task,
533 &ue->ue_multi_task[0].hdr,
534 &ue->ue_multi_task[1].hdr);
535 UE_UNLOCK(ue);
539 if (ue->ue_miibus != NULL) {
540 mii = device_get_softc(ue->ue_miibus);
588 uether_rxmbuf(struct usb_ether *ue, struct mbuf *m,
591 struct ifnet *ifp = ue->ue_ifp;
593 UE_LOCK_ASSERT(ue, MA_OWNED);
601 _IF_ENQUEUE(&ue->ue_rxq, m);
606 uether_rxbuf(struct usb_ether *ue, struct usb_page_cache *pc,
609 struct ifnet *ifp = ue->ue_ifp;
612 UE_LOCK_ASSERT(ue, MA_OWNED);
631 _IF_ENQUEUE(&ue->ue_rxq, m);
636 uether_rxflush(struct usb_ether *ue)
638 struct ifnet *ifp = ue->ue_ifp;
641 UE_LOCK_ASSERT(ue, MA_OWNED);
644 _IF_DEQUEUE(&ue->ue_rxq, m);
651 UE_UNLOCK(ue);
653 UE_LOCK(ue);