From 64add897a31e1bf3b7c4319ac4d28453dd792a26 Mon Sep 17 00:00:00 2001 From: Ajay Agarwal Date: Thu, 21 Feb 2019 20:06:21 +0530 Subject: [PATCH] usb: misc: Add support for 9902 and 9903 PIDs Add support for creation of misc device, diag and IPC traffic channels, when the connected device has 0x05C6 VID and 0x9902 or 0x9903 PID. 0x9902 : WLAN + QMI + DIAG + Sahara 0x9903 : BT ACL + BT SCO + WLAN + QMI + DIAG + Sahara Change-Id: I7fa081abbb8860ff4d4c802522d4eb77cf573a18 Signed-off-by: Ajay Agarwal --- drivers/usb/misc/diag_ipc_bridge.c | 12 ++++++++++++ drivers/usb/misc/ks_bridge.c | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/usb/misc/diag_ipc_bridge.c b/drivers/usb/misc/diag_ipc_bridge.c index f369f69da6a1..780746e8e630 100644 --- a/drivers/usb/misc/diag_ipc_bridge.c +++ b/drivers/usb/misc/diag_ipc_bridge.c @@ -806,6 +806,18 @@ static const struct usb_device_id diag_bridge_ids[] = { /* 9901, ifc#3 refers to IPC client interface */ { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9901, 3), .driver_info = DEV_ID(1), }, + /* 9902, ifc#2 refers to diag client interface */ + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9902, 2), + .driver_info = DEV_ID(0), }, + /* 9902, ifc#1 refers to IPC client interface */ + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9902, 1), + .driver_info = DEV_ID(1), }, + /* 9903, ifc#4 refers to diag client interface */ + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9903, 4), + .driver_info = DEV_ID(0), }, + /* 9903, ifc#3 refers to IPC client interface */ + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9903, 3), + .driver_info = DEV_ID(1), }, {} /* terminating entry */ }; diff --git a/drivers/usb/misc/ks_bridge.c b/drivers/usb/misc/ks_bridge.c index c6fd30349ecc..715bf840def8 100644 --- a/drivers/usb/misc/ks_bridge.c +++ b/drivers/usb/misc/ks_bridge.c @@ -467,6 +467,10 @@ static const struct usb_device_id ksb_usb_ids[] = { { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x900E, 0), }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9900, 0), }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9901, 0), }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9902, 3), + .driver_info = (unsigned long)&ksb_fboot_dev, }, + { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9903, 5), + .driver_info = (unsigned long)&ksb_fboot_dev, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x9048, 2), .driver_info = (unsigned long)&ksb_efs_hsic_dev, }, { USB_DEVICE_INTERFACE_NUMBER(0x5c6, 0x904C, 2), @@ -724,6 +728,8 @@ ksb_usb_probe(struct usb_interface *ifc, const struct usb_device_id *id) mdev->name = ksb->name; break; case 0x9008: + case 0x9902: + case 0x9903: ksb = __ksb[bus_id]; mdev = &fbdev[bus_id]; break; -- 2.11.0