usbnet: int51x1: apply introduced usb command APIs
Acked-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Ming Lei <ming.lei@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
24b1042c4e
commit
3898cdf9ab
|
@ -116,23 +116,8 @@ static struct sk_buff *int51x1_tx_fixup(struct usbnet *dev,
|
|||
return skb;
|
||||
}
|
||||
|
||||
static void int51x1_async_cmd_callback(struct urb *urb)
|
||||
{
|
||||
struct usb_ctrlrequest *req = (struct usb_ctrlrequest *)urb->context;
|
||||
int status = urb->status;
|
||||
|
||||
if (status < 0)
|
||||
dev_warn(&urb->dev->dev, "async callback failed with %d\n", status);
|
||||
|
||||
kfree(req);
|
||||
usb_free_urb(urb);
|
||||
}
|
||||
|
||||
static void int51x1_set_multicast(struct net_device *netdev)
|
||||
{
|
||||
struct usb_ctrlrequest *req;
|
||||
int status;
|
||||
struct urb *urb;
|
||||
struct usbnet *dev = netdev_priv(netdev);
|
||||
u16 filter = PACKET_TYPE_DIRECTED | PACKET_TYPE_BROADCAST;
|
||||
|
||||
|
@ -149,40 +134,9 @@ static void int51x1_set_multicast(struct net_device *netdev)
|
|||
netdev_dbg(dev->net, "receive own packets only\n");
|
||||
}
|
||||
|
||||
urb = usb_alloc_urb(0, GFP_ATOMIC);
|
||||
if (!urb) {
|
||||
netdev_warn(dev->net, "Error allocating URB\n");
|
||||
return;
|
||||
}
|
||||
|
||||
req = kmalloc(sizeof(*req), GFP_ATOMIC);
|
||||
if (!req) {
|
||||
netdev_warn(dev->net, "Error allocating control msg\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
req->bRequestType = USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE;
|
||||
req->bRequest = SET_ETHERNET_PACKET_FILTER;
|
||||
req->wValue = cpu_to_le16(filter);
|
||||
req->wIndex = 0;
|
||||
req->wLength = 0;
|
||||
|
||||
usb_fill_control_urb(urb, dev->udev, usb_sndctrlpipe(dev->udev, 0),
|
||||
(void *)req, NULL, 0,
|
||||
int51x1_async_cmd_callback,
|
||||
(void *)req);
|
||||
|
||||
status = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
if (status < 0) {
|
||||
netdev_warn(dev->net, "Error submitting control msg, sts=%d\n",
|
||||
status);
|
||||
goto out1;
|
||||
}
|
||||
return;
|
||||
out1:
|
||||
kfree(req);
|
||||
out:
|
||||
usb_free_urb(urb);
|
||||
usbnet_write_cmd_async(dev, SET_ETHERNET_PACKET_FILTER,
|
||||
USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
|
||||
filter, 0, NULL, 0);
|
||||
}
|
||||
|
||||
static const struct net_device_ops int51x1_netdev_ops = {
|
||||
|
|
Loading…
Reference in New Issue