option.c (0d3010fa442429f8780976758719af05592ff19f) | option.c (2438c3a19dec5e98905fd3ffcc2f24716aceda6b) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 USB Driver for GSM modems 4 5 Copyright (C) 2005 Matthias Urlichs <smurf@smurf.noris.de> 6 7 Portions copied from the Keyspan driver by Hugh Blemings <hugh@blemings.org> 8 --- 553 unchanged lines hidden (view full) --- 562#define NCTRL(ifnum) ((BIT(ifnum) & 0xff) << 8) 563 564/* Interface is reserved */ 565#define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0) 566 567/* Interface must have two endpoints */ 568#define NUMEP2 BIT(16) 569 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 USB Driver for GSM modems 4 5 Copyright (C) 2005 Matthias Urlichs <smurf@smurf.noris.de> 6 7 Portions copied from the Keyspan driver by Hugh Blemings <hugh@blemings.org> 8 --- 553 unchanged lines hidden (view full) --- 562#define NCTRL(ifnum) ((BIT(ifnum) & 0xff) << 8) 563 564/* Interface is reserved */ 565#define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0) 566 567/* Interface must have two endpoints */ 568#define NUMEP2 BIT(16) 569 |
570/* Device needs ZLP */ 571#define ZLP BIT(17) |
|
570 | 572 |
573 |
|
571static const struct usb_device_id option_ids[] = { 572 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 573 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, 574 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) }, 575 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD) }, 576 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD_LIGHT) }, 577 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS) }, 578 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_LIGHT) }, --- 614 unchanged lines hidden (view full) --- 1193 { USB_DEVICE(TELIT_VENDOR_ID, 0x1260), 1194 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1195 { USB_DEVICE(TELIT_VENDOR_ID, 0x1261), 1196 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1197 { USB_DEVICE(TELIT_VENDOR_ID, 0x1900), /* Telit LN940 (QMI) */ 1198 .driver_info = NCTRL(0) | RSVD(1) }, 1199 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff), /* Telit LN940 (MBIM) */ 1200 .driver_info = NCTRL(0) }, | 574static const struct usb_device_id option_ids[] = { 575 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 576 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, 577 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) }, 578 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD) }, 579 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD_LIGHT) }, 580 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS) }, 581 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_NDIS_LIGHT) }, --- 614 unchanged lines hidden (view full) --- 1196 { USB_DEVICE(TELIT_VENDOR_ID, 0x1260), 1197 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1198 { USB_DEVICE(TELIT_VENDOR_ID, 0x1261), 1199 .driver_info = NCTRL(0) | RSVD(1) | RSVD(2) }, 1200 { USB_DEVICE(TELIT_VENDOR_ID, 0x1900), /* Telit LN940 (QMI) */ 1201 .driver_info = NCTRL(0) | RSVD(1) }, 1202 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1901, 0xff), /* Telit LN940 (MBIM) */ 1203 .driver_info = NCTRL(0) }, |
1204 { USB_DEVICE(TELIT_VENDOR_ID, 0x9010), /* Telit SBL FN980 flashing device */ 1205 .driver_info = NCTRL(0) | ZLP }, |
|
1201 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ 1202 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), 1203 .driver_info = RSVD(1) }, 1204 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0003, 0xff, 0xff, 0xff) }, 1205 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0004, 0xff, 0xff, 0xff) }, 1206 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0005, 0xff, 0xff, 0xff) }, 1207 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0006, 0xff, 0xff, 0xff) }, 1208 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0008, 0xff, 0xff, 0xff) }, --- 885 unchanged lines hidden (view full) --- 2094 /* Retrieve device flags stored at probe. */ 2095 device_flags = (unsigned long)usb_get_serial_data(serial); 2096 2097 iface_desc = &serial->interface->cur_altsetting->desc; 2098 2099 if (!(device_flags & NCTRL(iface_desc->bInterfaceNumber))) 2100 data->use_send_setup = 1; 2101 | 1206 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ 1207 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), 1208 .driver_info = RSVD(1) }, 1209 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0003, 0xff, 0xff, 0xff) }, 1210 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0004, 0xff, 0xff, 0xff) }, 1211 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0005, 0xff, 0xff, 0xff) }, 1212 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0006, 0xff, 0xff, 0xff) }, 1213 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0008, 0xff, 0xff, 0xff) }, --- 885 unchanged lines hidden (view full) --- 2099 /* Retrieve device flags stored at probe. */ 2100 device_flags = (unsigned long)usb_get_serial_data(serial); 2101 2102 iface_desc = &serial->interface->cur_altsetting->desc; 2103 2104 if (!(device_flags & NCTRL(iface_desc->bInterfaceNumber))) 2105 data->use_send_setup = 1; 2106 |
2107 if (device_flags & ZLP) 2108 data->use_zlp = 1; 2109 |
|
2102 spin_lock_init(&data->susp_lock); 2103 2104 usb_set_serial_data(serial, data); 2105 2106 return 0; 2107} 2108 2109static void option_release(struct usb_serial *serial) --- 64 unchanged lines hidden --- | 2110 spin_lock_init(&data->susp_lock); 2111 2112 usb_set_serial_data(serial, data); 2113 2114 return 0; 2115} 2116 2117static void option_release(struct usb_serial *serial) --- 64 unchanged lines hidden --- |