On Wed, Apr 24, 2019 at 10:58:24AM -0700, Guenter Roeck wrote: > All Apple products use the same protocol for tethering over USB. > To simplify the code and make it future proof, use > USB_VENDOR_AND_INTERFACE_INFO() instead of > USB_DEVICE_AND_INTERFACE_INFO() to automatically detect and support > all existing and future Apple products using the same interface. What if future Apple products behave differently? > Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> > --- > Tested with various iPads and iPhones up to X. iPhone 6 and later > up to and including X all use product ID 0x12a8, so this patch is > not strictly required, but it does simplify the code. > > drivers/net/usb/ipheth.c | 58 +++--------------------------------------------- > 1 file changed, 3 insertions(+), 55 deletions(-) > > diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c > index 3d8a70d3ea9b..a01a71a7e48d 100644 > --- a/drivers/net/usb/ipheth.c > +++ b/drivers/net/usb/ipheth.c > @@ -54,17 +54,6 @@ > #include <linux/workqueue.h> > > #define USB_VENDOR_APPLE 0x05ac > -#define USB_PRODUCT_IPHONE 0x1290 > -#define USB_PRODUCT_IPHONE_3G 0x1292 > -#define USB_PRODUCT_IPHONE_3GS 0x1294 > -#define USB_PRODUCT_IPHONE_4 0x1297 > -#define USB_PRODUCT_IPAD 0x129a > -#define USB_PRODUCT_IPAD_2 0x12a2 > -#define USB_PRODUCT_IPAD_3 0x12a6 > -#define USB_PRODUCT_IPAD_MINI 0x12ab > -#define USB_PRODUCT_IPHONE_4_VZW 0x129c > -#define USB_PRODUCT_IPHONE_4S 0x12a0 > -#define USB_PRODUCT_IPHONE_5 0x12a8 > > #define IPHETH_USBINTF_CLASS 255 > #define IPHETH_USBINTF_SUBCLASS 253 > @@ -88,50 +77,9 @@ > #define IPHETH_CARRIER_ON 0x04 > > static const struct usb_device_id ipheth_table[] = { > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3G, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3GS, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPAD, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPAD_2, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPAD_3, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPAD_MINI, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4_VZW, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4S, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > - { USB_DEVICE_AND_INTERFACE_INFO( > - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_5, > - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, > - IPHETH_USBINTF_PROTO) }, > + { USB_VENDOR_AND_INTERFACE_INFO(USB_VENDOR_APPLE, IPHETH_USBINTF_CLASS, > + IPHETH_USBINTF_SUBCLASS, > + IPHETH_USBINTF_PROTO) }, > { } > }; > MODULE_DEVICE_TABLE(usb, ipheth_table); > -- > 2.7.4 >