| .. | .. |
|---|
| 54 | 54 | #include <linux/workqueue.h> |
|---|
| 55 | 55 | |
|---|
| 56 | 56 | #define USB_VENDOR_APPLE 0x05ac |
|---|
| 57 | | -#define USB_PRODUCT_IPHONE 0x1290 |
|---|
| 58 | | -#define USB_PRODUCT_IPHONE_3G 0x1292 |
|---|
| 59 | | -#define USB_PRODUCT_IPHONE_3GS 0x1294 |
|---|
| 60 | | -#define USB_PRODUCT_IPHONE_4 0x1297 |
|---|
| 61 | | -#define USB_PRODUCT_IPAD 0x129a |
|---|
| 62 | | -#define USB_PRODUCT_IPAD_2 0x12a2 |
|---|
| 63 | | -#define USB_PRODUCT_IPAD_3 0x12a6 |
|---|
| 64 | | -#define USB_PRODUCT_IPAD_MINI 0x12ab |
|---|
| 65 | | -#define USB_PRODUCT_IPHONE_4_VZW 0x129c |
|---|
| 66 | | -#define USB_PRODUCT_IPHONE_4S 0x12a0 |
|---|
| 67 | | -#define USB_PRODUCT_IPHONE_5 0x12a8 |
|---|
| 68 | 57 | |
|---|
| 69 | 58 | #define IPHETH_USBINTF_CLASS 255 |
|---|
| 70 | 59 | #define IPHETH_USBINTF_SUBCLASS 253 |
|---|
| .. | .. |
|---|
| 88 | 77 | #define IPHETH_CARRIER_ON 0x04 |
|---|
| 89 | 78 | |
|---|
| 90 | 79 | static const struct usb_device_id ipheth_table[] = { |
|---|
| 91 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 92 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE, |
|---|
| 93 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 94 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 95 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 96 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3G, |
|---|
| 97 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 98 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 99 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 100 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3GS, |
|---|
| 101 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 102 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 103 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 104 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4, |
|---|
| 105 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 106 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 107 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 108 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPAD, |
|---|
| 109 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 110 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 111 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 112 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPAD_2, |
|---|
| 113 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 114 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 115 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 116 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPAD_3, |
|---|
| 117 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 118 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 119 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 120 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPAD_MINI, |
|---|
| 121 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 122 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 123 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 124 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4_VZW, |
|---|
| 125 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 126 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 127 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 128 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4S, |
|---|
| 129 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 130 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 131 | | - { USB_DEVICE_AND_INTERFACE_INFO( |
|---|
| 132 | | - USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_5, |
|---|
| 133 | | - IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS, |
|---|
| 134 | | - IPHETH_USBINTF_PROTO) }, |
|---|
| 80 | + { USB_VENDOR_AND_INTERFACE_INFO(USB_VENDOR_APPLE, IPHETH_USBINTF_CLASS, |
|---|
| 81 | + IPHETH_USBINTF_SUBCLASS, |
|---|
| 82 | + IPHETH_USBINTF_PROTO) }, |
|---|
| 135 | 83 | { } |
|---|
| 136 | 84 | }; |
|---|
| 137 | 85 | MODULE_DEVICE_TABLE(usb, ipheth_table); |
|---|
| .. | .. |
|---|
| 293 | 241 | struct usb_device *udev; |
|---|
| 294 | 242 | int retval; |
|---|
| 295 | 243 | |
|---|
| 296 | | - if (!dev) |
|---|
| 297 | | - return 0; |
|---|
| 298 | 244 | if (!dev->confirmed_pairing) |
|---|
| 299 | 245 | return 0; |
|---|
| 300 | 246 | |
|---|
| .. | .. |
|---|
| 412 | 358 | return 0; |
|---|
| 413 | 359 | } |
|---|
| 414 | 360 | |
|---|
| 415 | | -static int ipheth_tx(struct sk_buff *skb, struct net_device *net) |
|---|
| 361 | +static netdev_tx_t ipheth_tx(struct sk_buff *skb, struct net_device *net) |
|---|
| 416 | 362 | { |
|---|
| 417 | 363 | struct ipheth_device *dev = netdev_priv(net); |
|---|
| 418 | 364 | struct usb_device *udev = dev->udev; |
|---|
| .. | .. |
|---|
| 454 | 400 | return NETDEV_TX_OK; |
|---|
| 455 | 401 | } |
|---|
| 456 | 402 | |
|---|
| 457 | | -static void ipheth_tx_timeout(struct net_device *net) |
|---|
| 403 | +static void ipheth_tx_timeout(struct net_device *net, unsigned int txqueue) |
|---|
| 458 | 404 | { |
|---|
| 459 | 405 | struct ipheth_device *dev = netdev_priv(net); |
|---|
| 460 | 406 | |
|---|