From 98aecd6043427a2fd58608b36d18f6b53d8c4029 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 17 Aug 2016 14:43:10 -0700 Subject: [PATCH] usb: gadget: f_gsi: Fix alternate index returned by gsi_get_alt RNDIS, RMNET and DPL only supports alternate index 0. Instead of returning value of data_interface_up which is used for interfaces supporting non-zero alternate index, simply return 0. Change-Id: I7fe6c7c636207cd4f85d468f61c87e5a4e12b0ac Signed-off-by: Hemant Kumar --- drivers/usb/gadget/function/f_gsi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c index a629723d19cb..d79843331438 100644 --- a/drivers/usb/gadget/function/f_gsi.c +++ b/drivers/usb/gadget/function/f_gsi.c @@ -1702,7 +1702,10 @@ static int gsi_get_alt(struct usb_function *f, unsigned intf) { struct f_gsi *gsi = func_to_gsi(f); - if (intf == gsi->ctrl_id) + /* RNDIS, RMNET and DPL only support alt 0*/ + if (intf == gsi->ctrl_id || gsi->prot_id == IPA_USB_RNDIS || + gsi->prot_id == IPA_USB_RMNET || + gsi->prot_id == IPA_USB_DIAG) return 0; else if (intf == gsi->data_id) return gsi->data_interface_up;