Lines Matching refs:pnd
63 struct usbpn_dev *pnd = netdev_priv(dev); in usbpn_xmit() local
74 usb_fill_bulk_urb(req, pnd->usb, pnd->tx_pipe, skb->data, skb->len, in usbpn_xmit()
83 spin_lock_irqsave(&pnd->tx_lock, flags); in usbpn_xmit()
84 pnd->tx_queue++; in usbpn_xmit()
85 if (pnd->tx_queue >= dev->tx_queue_len) in usbpn_xmit()
87 spin_unlock_irqrestore(&pnd->tx_lock, flags); in usbpn_xmit()
100 struct usbpn_dev *pnd = netdev_priv(dev); in tx_complete() local
118 spin_lock(&pnd->tx_lock); in tx_complete()
119 pnd->tx_queue--; in tx_complete()
121 spin_unlock(&pnd->tx_lock); in tx_complete()
127 static int rx_submit(struct usbpn_dev *pnd, struct urb *req, gfp_t gfp_flags) in rx_submit() argument
129 struct net_device *dev = pnd->dev; in rx_submit()
137 usb_fill_bulk_urb(req, pnd->usb, pnd->rx_pipe, page_address(page), in rx_submit()
151 struct usbpn_dev *pnd = netdev_priv(dev); in rx_complete() local
159 spin_lock_irqsave(&pnd->rx_lock, flags); in rx_complete()
160 skb = pnd->rx_skb; in rx_complete()
162 skb = pnd->rx_skb = netdev_alloc_skb(dev, 12); in rx_complete()
178 pnd->rx_skb = NULL; /* Last fragment */ in rx_complete()
181 spin_unlock_irqrestore(&pnd->rx_lock, flags); in rx_complete()
215 rx_submit(pnd, req, GFP_ATOMIC); in rx_complete()
222 struct usbpn_dev *pnd = netdev_priv(dev); in usbpn_open() local
225 unsigned num = pnd->data_intf->cur_altsetting->desc.bInterfaceNumber; in usbpn_open()
227 err = usb_set_interface(pnd->usb, num, pnd->active_setting); in usbpn_open()
234 if (!req || rx_submit(pnd, req, GFP_KERNEL)) { in usbpn_open()
239 pnd->urbs[i] = req; in usbpn_open()
248 struct usbpn_dev *pnd = netdev_priv(dev); in usbpn_close() local
250 unsigned num = pnd->data_intf->cur_altsetting->desc.bInterfaceNumber; in usbpn_close()
255 struct urb *req = pnd->urbs[i]; in usbpn_close()
261 pnd->urbs[i] = NULL; in usbpn_close()
264 return usb_set_interface(pnd->usb, num, !pnd->active_setting); in usbpn_close()
339 struct usbpn_dev *pnd; in usbpn_probe() local
370 dev = alloc_netdev(sizeof(*pnd) + sizeof(pnd->urbs[0]) * rxq_size, in usbpn_probe()
375 pnd = netdev_priv(dev); in usbpn_probe()
378 pnd->dev = dev; in usbpn_probe()
379 pnd->usb = usbdev; in usbpn_probe()
380 pnd->intf = intf; in usbpn_probe()
381 pnd->data_intf = data_intf; in usbpn_probe()
382 spin_lock_init(&pnd->tx_lock); in usbpn_probe()
383 spin_lock_init(&pnd->rx_lock); in usbpn_probe()
386 pnd->rx_pipe = usb_rcvbulkpipe(usbdev, in usbpn_probe()
388 pnd->tx_pipe = usb_sndbulkpipe(usbdev, in usbpn_probe()
391 pnd->rx_pipe = usb_rcvbulkpipe(usbdev, in usbpn_probe()
393 pnd->tx_pipe = usb_sndbulkpipe(usbdev, in usbpn_probe()
396 pnd->active_setting = data_desc - data_intf->altsetting; in usbpn_probe()
398 err = usb_driver_claim_interface(&usbpn_driver, data_intf, pnd); in usbpn_probe()
404 !pnd->active_setting); in usbpn_probe()
405 usb_set_intfdata(intf, pnd); in usbpn_probe()
424 struct usbpn_dev *pnd = usb_get_intfdata(intf); in usbpn_disconnect() local
426 if (pnd->disconnected) in usbpn_disconnect()
429 pnd->disconnected = 1; in usbpn_disconnect()
431 (pnd->intf == intf) ? pnd->data_intf : pnd->intf); in usbpn_disconnect()
432 unregister_netdev(pnd->dev); in usbpn_disconnect()