Extend USB gadget configuration for ACM mode. 55/224055/1
authorINSUN PYO <insun.pyo@samsung.com>
Thu, 6 Feb 2020 03:58:30 +0000 (12:58 +0900)
committerINSUN PYO <insun.pyo@samsung.com>
Thu, 6 Feb 2020 04:06:39 +0000 (13:06 +0900)
TV profile doesn't have mtp-responder.service.
If mtp-responder.service does not exist in the configfs environment, usb initialization will fail.
So, we check to see if mtp-responder.service exists and remove MTP from usb mode if it doesn't exist.

If you do not build deviced in engineer mode and have a TV profile, ACM only mode exists.
(Engineer mode always adds SDB to usb mode.)

Change-Id: I0472ee10e572e36638d73df7b2be691c49d8f857

hw/usb_gadget_common.c

index 368077a..70d6c51 100644 (file)
@@ -234,20 +234,27 @@ static int simple_id_to_gadget(struct usb_gadget_id *gadget_id,
         * so in this switch we sort our functions in a correct order
         */
        switch (gadget_id->function_mask) {
-       case USB_FUNCTION_SDB:
+       case USB_FUNCTION_MTP:
                n_configs = 1;
-               functions[0][0] = USB_FUNCTION_SDB;
+               functions[0][0] = USB_FUNCTION_MTP;
                functions[0][1] = 0;
-               gadget->attrs.idProduct = 0x685d;
+               gadget->attrs.idProduct = 0x6860;
                break;
 
-       case USB_FUNCTION_MTP:
+       case USB_FUNCTION_ACM:
                n_configs = 1;
-               functions[0][0] = USB_FUNCTION_MTP;
+               functions[0][0] = USB_FUNCTION_ACM;
                functions[0][1] = 0;
                gadget->attrs.idProduct = 0x6860;
                break;
 
+       case USB_FUNCTION_SDB:
+               n_configs = 1;
+               functions[0][0] = USB_FUNCTION_SDB;
+               functions[0][1] = 0;
+               gadget->attrs.idProduct = 0x685d;
+               break;
+
        case USB_FUNCTION_RNDIS:
                n_configs = 1;
                functions[0][0] = USB_FUNCTION_RNDIS;