From e8a36dbdb5bf1ed4d7f6909608e13299d79b8d37 Mon Sep 17 00:00:00 2001 From: Li Jun Date: Sat, 27 Sep 2014 20:10:43 +0800 Subject: [PATCH] MLK-9637-3 usb: chipidea: udc: test: handle otg_srp_reqd set feature request This patch adds otg_srp_reqd set feature request from A host for chipidea udc driver. Acked-by: Peter Chen Signed-off-by: Li Jun (cherry picked from commit 5edca27c518e8a69accb429c946c19243e156656) (cherry picked from commit 14ac2f1f74ce0b02e03296472e7d170c45a31f29) --- drivers/usb/chipidea/udc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c index 1d6e53868db4..9491dbe48686 100644 --- a/drivers/usb/chipidea/udc.c +++ b/drivers/usb/chipidea/udc.c @@ -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; } -- 2.17.1