From df03f91a3631e7fd801296b0a9a76d07e438c51b Mon Sep 17 00:00:00 2001 From: Guang Jian Zeng Date: Tue, 18 Mar 2014 18:14:19 -0700 Subject: usb:misc: Add support for HSIC PID 0x909F This is an MDM device composition consisting of the following interfaces: 1. DIAG (Interrupt IN) 2. System Monitor 3. EFS Sync (Interrupt IN) 4. DUN (Interrupt IN) 5. CSVT 6. Tethered RmNet 7. Embedded RmNet Change-Id: I004e511b964d273dbc753b19c6083dcdda7400c9 Signed-off-by: Guang Jian Zeng --- arch/arm/mach-msm/hsic_sysmon.c | 1 + drivers/net/usb/rmnet_usb_data.c | 16 ++++++++++++---- drivers/usb/misc/diag_bridge.c | 2 ++ drivers/usb/misc/ks_bridge.c | 3 +++ drivers/usb/misc/mdm_data_bridge.c | 6 ++++++ drivers/usb/serial/csvt.c | 1 + 6 files changed, 25 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-msm/hsic_sysmon.c b/arch/arm/mach-msm/hsic_sysmon.c index d0247a5deb26..79eeabb4f5b3 100644 --- a/arch/arm/mach-msm/hsic_sysmon.c +++ b/arch/arm/mach-msm/hsic_sysmon.c @@ -411,6 +411,7 @@ static const struct usb_device_id hsic_sysmon_ids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909C, 1), .driver_info = 0, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909D, 1), .driver_info = 0, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909E, 2), .driver_info = 0, }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909F, 1), .driver_info = 0, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A0, 1), .driver_info = 0, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A4, 2), .driver_info = 0, }, diff --git a/drivers/net/usb/rmnet_usb_data.c b/drivers/net/usb/rmnet_usb_data.c index 65cc97ff6cd2..527bd1e3e5b0 100644 --- a/drivers/net/usb/rmnet_usb_data.c +++ b/drivers/net/usb/rmnet_usb_data.c @@ -712,7 +712,8 @@ static const struct usb_device_id vidpids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x904c, 8), .driver_info = (unsigned long)&rmnet_info, }, - { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9075, 6), /*mux over hsic mdm*/ + /* mux over hsic mdm */ + { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9075, 6), .driver_info = (unsigned long)&rmnet_info, }, { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x908E, 8), @@ -730,13 +731,20 @@ static const struct usb_device_id vidpids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x9079, 8), .driver_info = (unsigned long)&rmnet_usb_info, }, - { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x908A, 6), /*mux over hsic mdm*/ + /* mux over hsic mdm */ + { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x908A, 6), .driver_info = (unsigned long)&rmnet_info, }, - { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x90A0, 6), /*mux over hsic mdm*/ + /* mux over hsic mdm */ + { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x909F, 6), .driver_info = (unsigned long)&rmnet_info, }, - { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x90A4, 8), /*mux over hsic mdm*/ + /* mux over hsic mdm */ + { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x90A0, 6), + .driver_info = (unsigned long)&rmnet_info, + }, + /* mux over hsic mdm */ + { USB_DEVICE_INTERFACE_NUMBER(0x05c6, 0x90A4, 8), .driver_info = (unsigned long)&rmnet_info, }, diff --git a/drivers/usb/misc/diag_bridge.c b/drivers/usb/misc/diag_bridge.c index 020e5e24f79e..a4e7143e403c 100644 --- a/drivers/usb/misc/diag_bridge.c +++ b/drivers/usb/misc/diag_bridge.c @@ -603,6 +603,8 @@ static const struct usb_device_id diag_bridge_ids[] = { /* 909E, ifc#1 refers to diag client interface */ { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909E, 1), .driver_info = DEV_ID(1), }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909F, 0), + .driver_info = DEV_ID(0), }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A0, 0), .driver_info = DEV_ID(0), }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A4, 0), diff --git a/drivers/usb/misc/ks_bridge.c b/drivers/usb/misc/ks_bridge.c index 77acb1c6bbd8..5278b28ce8d5 100644 --- a/drivers/usb/misc/ks_bridge.c +++ b/drivers/usb/misc/ks_bridge.c @@ -449,6 +449,8 @@ static const struct usb_device_id ksb_usb_ids[] = { .driver_info = (unsigned long)&ksb_efs_hsic_dev, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909E, 3), .driver_info = (unsigned long)&ksb_efs_hsic_dev, }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909F, 2), + .driver_info = (unsigned long)&ksb_efs_hsic_dev, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A0, 2), .driver_info = (unsigned long)&ksb_efs_hsic_dev, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A4, 3), @@ -666,6 +668,7 @@ ksb_usb_probe(struct usb_interface *ifc, const struct usb_device_id *id) case 0x909C: case 0x909D: case 0x909E: + case 0x909F: case 0x90A4: ksb = __ksb[EFS_HSIC_BRIDGE_INDEX]; break; diff --git a/drivers/usb/misc/mdm_data_bridge.c b/drivers/usb/misc/mdm_data_bridge.c index 3c9d8b24ec86..93e5317d2e45 100644 --- a/drivers/usb/misc/mdm_data_bridge.c +++ b/drivers/usb/misc/mdm_data_bridge.c @@ -1151,6 +1151,12 @@ static const struct usb_device_id bridge_ids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909E, 4), .driver_info = (unsigned long)qdss_hsic_bridge_names, }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909F, 3), + .driver_info = (unsigned long)serial_hsic_bridge_names, + }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x909F, 5), + .driver_info = (unsigned long)rmnet_hsic_bridge_names, + }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x90A0, 3), .driver_info = (unsigned long)serial_hsic_bridge_names, }, diff --git a/drivers/usb/serial/csvt.c b/drivers/usb/serial/csvt.c index a3021d68749e..fea6f6991e98 100644 --- a/drivers/usb/serial/csvt.c +++ b/drivers/usb/serial/csvt.c @@ -54,6 +54,7 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE_INTERFACE_NUMBER(0x05c6 , 0x909C, 4)}, { USB_DEVICE_INTERFACE_NUMBER(0x05c6 , 0x909D, 4)}, { USB_DEVICE_INTERFACE_NUMBER(0x05c6 , 0x909E, 6)}, + { USB_DEVICE_INTERFACE_NUMBER(0x05c6 , 0x909F, 4)}, { USB_DEVICE_INTERFACE_NUMBER(0x05c6 , 0x90A0, 4)}, { USB_DEVICE_INTERFACE_NUMBER(0x05c6 , 0x90A4, 6)}, -- cgit v1.2.3