linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next,02/19] net: usb: aqc111: Add bind and empty unbind callbacks
@ 2018-10-05 10:24 Igor Russkikh
  0 siblings, 0 replies; 2+ messages in thread
From: Igor Russkikh @ 2018-10-05 10:24 UTC (permalink / raw)
  To: David S . Miller
  Cc: linux-usb@vger.kernel.org, netdev@vger.kernel.org, Igor Russkikh,
	Dmitry Bezrukov

From: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>

Initialize net_device_ops structure

Signed-off-by: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/usb/aqc111.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/drivers/net/usb/aqc111.c b/drivers/net/usb/aqc111.c
index 250e8ff65110..c914e19387f2 100644
--- a/drivers/net/usb/aqc111.c
+++ b/drivers/net/usb/aqc111.c
@@ -14,8 +14,43 @@
 #include <linux/usb/cdc.h>
 #include <linux/usb/usbnet.h>
 
+static const struct net_device_ops aqc111_netdev_ops = {
+	.ndo_open		= usbnet_open,
+	.ndo_stop		= usbnet_stop,
+};
+
+static int aqc111_bind(struct usbnet *dev, struct usb_interface *intf)
+{
+	int ret;
+	struct usb_device *udev = interface_to_usbdev(intf);
+
+	/* Check if vendor configuration */
+	if (udev->actconfig->desc.bConfigurationValue != 1) {
+		usb_driver_set_configuration(udev, 1);
+		return -ENODEV;
+	}
+
+	usb_reset_configuration(dev->udev);
+
+	ret = usbnet_get_endpoints(dev, intf);
+	if (ret < 0) {
+		netdev_dbg(dev->net, "usbnet_get_endpoints failed");
+		return ret;
+	}
+
+	dev->net->netdev_ops = &aqc111_netdev_ops;
+
+	return 0;
+}
+
+static void aqc111_unbind(struct usbnet *dev, struct usb_interface *intf)
+{
+}
+
 static const struct driver_info aqc111_info = {
 	.description	= "Aquantia AQtion USB to 5GbE Controller",
+	.bind		= aqc111_bind,
+	.unbind		= aqc111_unbind,
 };
 
 #define AQC111_USB_ETH_DEV(vid, pid, table) \

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [net-next,02/19] net: usb: aqc111: Add bind and empty unbind callbacks
@ 2018-10-05 17:39 David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2018-10-05 17:39 UTC (permalink / raw)
  To: Igor.Russkikh; +Cc: linux-usb, netdev, Dmitry.Bezrukov

From: Igor Russkikh <Igor.Russkikh@aquantia.com>
Date: Fri, 5 Oct 2018 10:24:42 +0000

> +static int aqc111_bind(struct usbnet *dev, struct usb_interface *intf)
> +{
> +	int ret;
> +	struct usb_device *udev = interface_to_usbdev(intf);

Please always order local variable declarations from longest to shortest
line (reverse christmas tree).

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-10-05 17:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-05 17:39 [net-next,02/19] net: usb: aqc111: Add bind and empty unbind callbacks David Miller
  -- strict thread matches above, loose matches on Subject: below --
2018-10-05 10:24 Igor Russkikh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).