From: Mayank Rana Date: Fri, 15 Sep 2017 23:40:24 +0000 (-0700) Subject: usb: f_qdss: Use QDSS string descriptor with QDSS interface descriptor X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a0465d9a0270186f56a2595a5a72c13a3e81eb57;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git usb: f_qdss: Use QDSS string descriptor with QDSS interface descriptor QDSS Data and QDSS Ctrl related string descriptors are defined but those are not being advertised to Host. Hence update USB QDSS interface descriptor with USB QDSS string descriptor. This helps some of host side application to detect enuermated QDSS interface and allows IO with it. Change-Id: I1ff141f1b52d867d70ecc8f23ac065639999c0f9 Signed-off-by: Mayank Rana --- diff --git a/drivers/usb/gadget/function/f_qdss.c b/drivers/usb/gadget/function/f_qdss.c index 8536f10a2e35..5189f6d0f09d 100644 --- a/drivers/usb/gadget/function/f_qdss.c +++ b/drivers/usb/gadget/function/f_qdss.c @@ -374,7 +374,7 @@ static int qdss_bind(struct usb_configuration *c, struct usb_function *f) struct usb_gadget *gadget = c->cdev->gadget; struct f_qdss *qdss = func_to_qdss(f); struct usb_ep *ep; - int iface; + int iface, id; pr_debug("qdss_bind\n"); @@ -392,6 +392,12 @@ static int qdss_bind(struct usb_configuration *c, struct usb_function *f) qdss_data_intf_desc.bInterfaceNumber = iface; qdss->data_iface_id = iface; + id = usb_string_id(c->cdev); + if (id < 0) + return id; + qdss_string_defs[QDSS_DATA_IDX].id = id; + qdss_data_intf_desc.iInterface = id; + if (qdss->debug_inface_enabled) { /* Allocate ctrl I/F */ iface = usb_interface_id(c, f); @@ -401,6 +407,11 @@ static int qdss_bind(struct usb_configuration *c, struct usb_function *f) } qdss_ctrl_intf_desc.bInterfaceNumber = iface; qdss->ctrl_iface_id = iface; + id = usb_string_id(c->cdev); + if (id < 0) + return id; + qdss_string_defs[QDSS_CTRL_IDX].id = id; + qdss_ctrl_intf_desc.iInterface = id; } ep = usb_ep_autoconfig_ss(gadget, &qdss_ss_data_desc,