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 ---