usb: gsi: Allocate strings IDs for functions on every bind

Currently gsi driver calling usb_string_id() from bind() callbacks
to allocate string IDs for functions and then store that ID in the
appropriate descriptors and string table. This string_id will cleared
from composite driver in unbind path. During composition switch when
bind happens its checking previously allocated string_id for functions
and doesn't allocating again a new staring_id.

This will cause incorrect string_id assignment to usb functions and
USB CV interface descriptor test failing with no strings for
some compositions.

Hence fix this issue by allocating string_ids upon every function bind.

Change-Id: Icce114a770a13658614fc990e60670ef23044ba1
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c
index a038839..febe0a4 100644
--- a/drivers/usb/gadget/function/f_gsi.c
+++ b/drivers/usb/gadget/function/f_gsi.c
@@ -2580,10 +2580,6 @@
 	struct usb_function *f = &gsi->function;
 	int status;
 
-	/* maybe allocate device-global string IDs */
-	if (info->string_defs[0].id != 0)
-		goto skip_string_id_alloc;
-
 	if (info->ctrl_str_idx >= 0 && info->ctrl_desc) {
 		/* ctrl interface label */
 		status = usb_string_id(cdev);
@@ -2620,7 +2616,6 @@
 		info->cdc_eth_desc->iMACAddress = status;
 	}
 
-skip_string_id_alloc:
 	if (info->ctrl_desc)
 		info->ctrl_desc->bInterfaceNumber = gsi->ctrl_id;