Lines Matching refs:fp
205 struct f_phonet *fp = ep->driver_data; in pn_tx_complete() local
206 struct net_device *dev = fp->dev; in pn_tx_complete()
229 struct f_phonet *fp; in pn_net_xmit() local
237 fp = port->usb; in pn_net_xmit()
238 if (unlikely(!fp)) /* race with carrier loss */ in pn_net_xmit()
241 req = fp->in_req; in pn_net_xmit()
248 if (unlikely(usb_ep_queue(fp->in_ep, req, GFP_ATOMIC))) in pn_net_xmit()
301 pn_rx_submit(struct f_phonet *fp, struct usb_request *req, gfp_t gfp_flags) in pn_rx_submit() argument
314 err = usb_ep_queue(fp->out_ep, req, gfp_flags); in pn_rx_submit()
322 struct f_phonet *fp = ep->driver_data; in pn_rx_complete() local
323 struct net_device *dev = fp->dev; in pn_rx_complete()
331 spin_lock_irqsave(&fp->rx.lock, flags); in pn_rx_complete()
332 skb = fp->rx.skb; in pn_rx_complete()
334 skb = fp->rx.skb = netdev_alloc_skb(dev, 12); in pn_rx_complete()
336 fp->rx.skb = NULL; in pn_rx_complete()
337 spin_unlock_irqrestore(&fp->rx.lock, flags); in pn_rx_complete()
380 pn_rx_submit(fp, req, GFP_ATOMIC); in pn_rx_complete()
387 struct f_phonet *fp = func_to_pn(f); in __pn_reset() local
388 struct net_device *dev = fp->dev; in __pn_reset()
394 usb_ep_disable(fp->out_ep); in __pn_reset()
395 usb_ep_disable(fp->in_ep); in __pn_reset()
396 if (fp->rx.skb) { in __pn_reset()
397 dev_kfree_skb_irq(fp->rx.skb); in __pn_reset()
398 fp->rx.skb = NULL; in __pn_reset()
404 struct f_phonet *fp = func_to_pn(f); in pn_set_alt() local
405 struct usb_gadget *gadget = fp->function.config->cdev->gadget; in pn_set_alt()
412 struct net_device *dev = fp->dev; in pn_set_alt()
421 if (fp->in_ep->enabled) in pn_set_alt()
427 if (config_ep_by_speed(gadget, f, fp->in_ep) || in pn_set_alt()
428 config_ep_by_speed(gadget, f, fp->out_ep)) { in pn_set_alt()
429 fp->in_ep->desc = NULL; in pn_set_alt()
430 fp->out_ep->desc = NULL; in pn_set_alt()
434 usb_ep_enable(fp->out_ep); in pn_set_alt()
435 usb_ep_enable(fp->in_ep); in pn_set_alt()
437 port->usb = fp; in pn_set_alt()
438 fp->out_ep->driver_data = fp; in pn_set_alt()
439 fp->in_ep->driver_data = fp; in pn_set_alt()
443 pn_rx_submit(fp, fp->out_reqv[i], GFP_ATOMIC); in pn_set_alt()
454 struct f_phonet *fp = func_to_pn(f); in pn_get_alt() local
460 struct phonet_port *port = netdev_priv(fp->dev); in pn_get_alt()
474 struct f_phonet *fp = func_to_pn(f); in pn_disconnect() local
475 struct phonet_port *port = netdev_priv(fp->dev); in pn_disconnect()
490 struct f_phonet *fp = func_to_pn(f); in pn_bind() local
532 fp->out_ep = ep; in pn_bind()
537 fp->in_ep = ep; in pn_bind()
553 req = usb_ep_alloc_request(fp->out_ep, GFP_KERNEL); in pn_bind()
558 fp->out_reqv[i] = req; in pn_bind()
562 fp->in_req = usb_ep_alloc_request(fp->in_ep, GFP_KERNEL); in pn_bind()
563 if (!fp->in_req) in pn_bind()
568 fp->out_ep->name, fp->in_ep->name); in pn_bind()
572 for (i = 0; i < phonet_rxq_size && fp->out_reqv[i]; i++) in pn_bind()
573 usb_ep_free_request(fp->out_ep, fp->out_reqv[i]); in pn_bind()
659 struct f_phonet *fp = func_to_pn(f); in pn_unbind() local
663 if (fp->in_req) in pn_unbind()
664 usb_ep_free_request(fp->in_ep, fp->in_req); in pn_unbind()
666 if (fp->out_reqv[i]) in pn_unbind()
667 usb_ep_free_request(fp->out_ep, fp->out_reqv[i]); in pn_unbind()
674 struct f_phonet *fp; in phonet_alloc() local
678 size = sizeof(*fp) + (phonet_rxq_size * sizeof(struct usb_request *)); in phonet_alloc()
679 fp = kzalloc(size, GFP_KERNEL); in phonet_alloc()
680 if (!fp) in phonet_alloc()
685 fp->dev = opts->net; in phonet_alloc()
686 fp->function.name = "phonet"; in phonet_alloc()
687 fp->function.bind = pn_bind; in phonet_alloc()
688 fp->function.unbind = pn_unbind; in phonet_alloc()
689 fp->function.set_alt = pn_set_alt; in phonet_alloc()
690 fp->function.get_alt = pn_get_alt; in phonet_alloc()
691 fp->function.disable = pn_disconnect; in phonet_alloc()
692 fp->function.free_func = phonet_free; in phonet_alloc()
693 spin_lock_init(&fp->rx.lock); in phonet_alloc()
695 return &fp->function; in phonet_alloc()