Hi,

Recently, we encountered one issue in Kernel 3.10(On Android 4.4) where USB 
enumeration is falling after many connect/disconnect. 
The reason for this issue is, we started using usb_gstrings_attach for string 
update in configuration and cdev->next_string_id is never set to 0 in 
disconnect case.

I could see the commit 88af8b which has this fix in composite_dev_cleanup. But 
when we use Android framework, this is never called because all USB driver 
unbind happens through android_disable.  In Kernel 3.4.5, usb string in 
configuration gets updated once during boot (bind_config) but in Kernel 3.10, 
it happens every connect event (usb_gstrings_attach), if uses f_fs.c
So we don't want to call composite_dev_cleanup (consider android case) then 
cdev->next_string_id has to be clear somewhere else.

Do you think this should be handle by function driver (ACM/MTP/F_FS) or this 
can be fixed in composite.c itself. 
Can this be fixed in reset_config than composite_dev_cleanup?? 

Regards,
Roshan

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to