MLK-9637-3 usb: chipidea: udc: test: handle otg_srp_reqd set feature request
authorLi Jun <B47624@freescale.com>
Sat, 27 Sep 2014 12:10:43 +0000 (20:10 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:47:11 +0000 (14:47 -0500)
This patch adds otg_srp_reqd set feature request from A host for chipidea
udc driver.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
(cherry picked from commit 5edca27c518e8a69accb429c946c19243e156656)
(cherry picked from commit 14ac2f1f74ce0b02e03296472e7d170c45a31f29)

drivers/usb/chipidea/udc.c

index 1d6e538..9491dbe 100644 (file)
@@ -750,6 +750,9 @@ __acquires(ci->lock)
 {
        int retval;
 
+       if (ci_otg_is_fsm_mode(ci))
+               ci->fsm.otg_srp_reqd = 0;
+
        spin_unlock(&ci->lock);
        if (ci->gadget.speed != USB_SPEED_UNKNOWN)
                usb_gadget_udc_reset(&ci->gadget, ci->driver);
@@ -1018,6 +1021,16 @@ static int otg_a_alt_hnp_support(struct ci_hdrc *ci)
        return isr_setup_status_phase(ci);
 }
 
+static int otg_srp_reqd(struct ci_hdrc *ci)
+{
+       if (ci_otg_is_fsm_mode(ci)) {
+               ci->fsm.otg_srp_reqd = 1;
+               return isr_setup_status_phase(ci);
+       } else {
+               return -ENOTSUPP;
+       }
+}
+
 /**
  * isr_setup_packet_handler: setup packet handler
  * @ci: UDC descriptor
@@ -1141,6 +1154,9 @@ __acquires(ci->lock)
                                        err = isr_setup_status_phase(
                                                        ci);
                                        break;
+                               case TEST_OTG_SRP_REQD:
+                                       err = otg_srp_reqd(ci);
+                                       break;
                                default:
                                        break;
                                }