usb: chipidea: otg: set host_request_flag for gadget
Set host_request_flag if the current peripheral wants to take host role via changing a_bus_req or b_bus_req by user application. Acked-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Li Jun <jun.li@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
This commit is contained in:
parent
c5348b621b
commit
2dfb46be1a
|
@ -66,6 +66,11 @@ set_a_bus_req(struct device *dev, struct device_attribute *attr,
|
|||
return count;
|
||||
}
|
||||
ci->fsm.a_bus_req = 1;
|
||||
if (ci->fsm.otg->state == OTG_STATE_A_PERIPHERAL) {
|
||||
ci->gadget.host_request_flag = 1;
|
||||
mutex_unlock(&ci->fsm.lock);
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
ci_otg_queue_work(ci);
|
||||
|
@ -144,8 +149,14 @@ set_b_bus_req(struct device *dev, struct device_attribute *attr,
|
|||
mutex_lock(&ci->fsm.lock);
|
||||
if (buf[0] == '0')
|
||||
ci->fsm.b_bus_req = 0;
|
||||
else if (buf[0] == '1')
|
||||
else if (buf[0] == '1') {
|
||||
ci->fsm.b_bus_req = 1;
|
||||
if (ci->fsm.otg->state == OTG_STATE_B_PERIPHERAL) {
|
||||
ci->gadget.host_request_flag = 1;
|
||||
mutex_unlock(&ci->fsm.lock);
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
ci_otg_queue_work(ci);
|
||||
mutex_unlock(&ci->fsm.lock);
|
||||
|
|
Loading…
Reference in New Issue