Added support for Gemalto's Cinterion PH8 and AHxx products
with 2 RmNet Interfaces and products with 1 RmNet + 1 USB Audio interface.
The RmNet and USB Audio interfaces are blacklisted because they will be
handled by other drivers.

Signed-off-by: Hans-Christoph Schemmel <[email protected]>
--- linux/drivers/usb/serial/option.c.orig      2016-03-14 10:46:19.386185946 
+0100
+++ linux/drivers/usb/serial/option.c   2016-03-14 11:18:35.211785186 +0100
@@ -375,18 +375,22 @@ static void option_instat_callback(struc
 #define HAIER_PRODUCT_CE81B                    0x10f8
 #define HAIER_PRODUCT_CE100                    0x2009

-/* Cinterion (formerly Siemens) products */
-#define SIEMENS_VENDOR_ID                              0x0681
-#define CINTERION_VENDOR_ID                            0x1e2d
+/* Gemalto's Cinterion products (formerly Siemens)*/
+#define SIEMENS_VENDOR_ID                      0x0681
+#define CINTERION_VENDOR_ID                    0x1e2d
 #define CINTERION_PRODUCT_HC25_MDM             0x0047
-#define CINTERION_PRODUCT_HC25_MDMNET  0x0040
+#define CINTERION_PRODUCT_HC25_MDMNET          0x0040
 #define CINTERION_PRODUCT_HC28_MDM             0x004C
-#define CINTERION_PRODUCT_HC28_MDMNET  0x004A /* same for HC28J */
+#define CINTERION_PRODUCT_HC28_MDMNET          0x004A /* same for HC28J */
 #define CINTERION_PRODUCT_EU3_E                        0x0051
 #define CINTERION_PRODUCT_EU3_P                        0x0052
 #define CINTERION_PRODUCT_PH8                  0x0053
 #define CINTERION_PRODUCT_AHXX                 0x0055
 #define CINTERION_PRODUCT_PLXX                 0x0060
+#define CINTERION_PRODUCT_PH8_2RMNET           0x0082
+#define CINTERION_PRODUCT_PH8_AUDIO            0x0083
+#define CINTERION_PRODUCT_AHXX_2RMNET          0x0084
+#define CINTERION_PRODUCT_AHXX_AUDIO           0x0085

 /* Olivetti products */
 #define OLIVETTI_VENDOR_ID                     0x0b3c
@@ -600,6 +604,18 @@ static const struct option_blacklist_inf
        .reserved = BIT(6),
 };

+static const struct option_blacklist_info cinterion_rmnet1_blacklist = {
+       .reserved = BIT(4) | BIT(5),
+};
+
+static const struct option_blacklist_info cinterion_rmnet2_blacklist = {
+       .reserved = BIT(4) | BIT(5) | BIT(6) | BIT(7),
+};
+
+static const struct option_blacklist_info cinterion_audio_blacklist = {
+       .reserved = BIT(4) | BIT(5) | BIT(6) | BIT(7) | BIT(8),
+};
+
 static const struct option_blacklist_info zte_mf626_blacklist = {
        .sendsetup = BIT(0) | BIT(1),
        .reserved = BIT(4),
@@ -1708,8 +1724,17 @@ static const struct usb_device_id option
        { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) },
        { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) },
        { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8),
-               .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
-       { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, 
CINTERION_PRODUCT_AHXX, 0xff) },
+               .driver_info = (kernel_ulong_t)&cinterion_rmnet1_blacklist },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX),
+               .driver_info = (kernel_ulong_t)&cinterion_rmnet1_blacklist },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_2RMNET),
+               .driver_info = (kernel_ulong_t)&cinterion_rmnet2_blacklist },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8_AUDIO),
+               .driver_info = (kernel_ulong_t)&cinterion_audio_blacklist },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_2RMNET),
+               .driver_info = (kernel_ulong_t)&cinterion_rmnet2_blacklist },
+       { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX_AUDIO),
+               .driver_info = (kernel_ulong_t)&cinterion_audio_blacklist },
        { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX),
                .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
        { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) },
________________________________
 This message and any attachments are intended solely for the addressees and 
may contain confidential information. Any unauthorized use or disclosure, 
either whole or partial, is prohibited.
E-mails are susceptible to alteration. Our company shall not be liable for the 
message if altered, changed or falsified. If you are not the intended recipient 
of this message, please delete it and notify the sender.
Although all reasonable efforts have been made to keep this transmission free 
from viruses, the sender will not be liable for damages caused by a transmitted 
virus.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to