aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSchemmel Hans-Christoph <Hans-Christoph.Schemmel@gemalto.com>2016-04-29 04:51:06 -0400
committerJohan Hovold <johan@kernel.org>2016-05-03 04:54:01 -0400
commit444f94e9e625f6ec6bbe2cb232a6451c637f35a3 (patch)
tree76812f34da00620c3de7f4eb02707753c7ef8c1b /drivers
parent04974df8049fc4240d22759a91e035082ccd18b4 (diff)
USB: serial: option: add support for Cinterion PH8 and AHxx
Added support for Gemalto's Cinterion PH8 and AHxx products with 2 RmNet Interfaces and products with 1 RmNet + 1 USB Audio interface. In addition some minor renaming and formatting. Signed-off-by: Hans-Christoph Schemmel <hans-christoph.schemmel@gemalto.com> [johan: sort current entries and trim trailing whitespace ] Cc: stable <stable@vger.kernel.org> Signed-off-by: Johan Hovold <johan@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/serial/option.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index c6f497f16526..ab542d3ee2b1 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -375,18 +375,22 @@ static void option_instat_callback(struct urb *urb);
375#define HAIER_PRODUCT_CE81B 0x10f8 375#define HAIER_PRODUCT_CE81B 0x10f8
376#define HAIER_PRODUCT_CE100 0x2009 376#define HAIER_PRODUCT_CE100 0x2009
377 377
378/* Cinterion (formerly Siemens) products */ 378/* Gemalto's Cinterion products (formerly Siemens) */
379#define SIEMENS_VENDOR_ID 0x0681 379#define SIEMENS_VENDOR_ID 0x0681
380#define CINTERION_VENDOR_ID 0x1e2d 380#define CINTERION_VENDOR_ID 0x1e2d
381#define CINTERION_PRODUCT_HC25_MDMNET 0x0040
381#define CINTERION_PRODUCT_HC25_MDM 0x0047 382#define CINTERION_PRODUCT_HC25_MDM 0x0047
382#define CINTERION_PRODUCT_HC25_MDMNET 0x0040 383#define CINTERION_PRODUCT_HC28_MDMNET 0x004A /* same for HC28J */
383#define CINTERION_PRODUCT_HC28_MDM 0x004C 384#define CINTERION_PRODUCT_HC28_MDM 0x004C
384#define CINTERION_PRODUCT_HC28_MDMNET 0x004A /* same for HC28J */
385#define CINTERION_PRODUCT_EU3_E 0x0051 385#define CINTERION_PRODUCT_EU3_E 0x0051
386#define CINTERION_PRODUCT_EU3_P 0x0052 386#define CINTERION_PRODUCT_EU3_P 0x0052
387#define CINTERION_PRODUCT_PH8 0x0053 387#define CINTERION_PRODUCT_PH8 0x0053
388#define CINTERION_PRODUCT_AHXX 0x0055 388#define CINTERION_PRODUCT_AHXX 0x0055
389#define CINTERION_PRODUCT_PLXX 0x0060 389#define CINTERION_PRODUCT_PLXX 0x0060
390#define CINTERION_PRODUCT_PH8_2RMNET 0x0082
391#define CINTERION_PRODUCT_PH8_AUDIO 0x0083
392#define CINTERION_PRODUCT_AHXX_2RMNET 0x0084
393#define CINTERION_PRODUCT_AHXX_AUDIO 0x0085
390 394
391/* Olivetti products */ 395/* Olivetti products */
392#define OLIVETTI_VENDOR_ID 0x0b3c 396#define OLIVETTI_VENDOR_ID 0x0b3c
@@ -633,6 +637,10 @@ static const struct option_blacklist_info telit_le922_blacklist_usbcfg3 = {
633 .reserved = BIT(1) | BIT(2) | BIT(3), 637 .reserved = BIT(1) | BIT(2) | BIT(3),
634}; 638};
635 639
640static const struct option_blacklist_info cinterion_rmnet2_blacklist = {
641 .reserved = BIT(4) | BIT(5),
642};
643
636static const struct usb_device_id option_ids[] = { 644static const struct usb_device_id option_ids[] = {
637 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 645 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
638 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, 646 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -1712,7 +1720,13 @@ static const struct usb_device_id option_ids[] = {
1712 { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX, 0xff) }, 1720 { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX, 0xff) },
1713 { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX), 1721 { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX),
1714 .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, 1722 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
1715 { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, 1723 { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_2RMNET, 0xff),
1724 .driver_info = (kernel_ulong_t)&cinterion_rmnet2_blacklist },
1725 { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_AUDIO, 0xff),
1726 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
1727 { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_2RMNET, 0xff) },
1728 { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_AUDIO, 0xff) },
1729 { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) },
1716 { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) }, 1730 { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) },
1717 { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) }, 1731 { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDM) },
1718 { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) }, 1732 { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) },