usb: chipidea: udc: .pullup is valid only when vbus is there
For chipidea, the IP must know vbus before the controller begins to run. So the .pullup should only be called when the vbus is there. Tested-by: Marek Vasut <marex@denx.de> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d268e9bc23
commit
4a64783b66
|
@ -1511,6 +1511,9 @@ static int ci_udc_pullup(struct usb_gadget *_gadget, int is_on)
|
||||||
{
|
{
|
||||||
struct ci_hdrc *ci = container_of(_gadget, struct ci_hdrc, gadget);
|
struct ci_hdrc *ci = container_of(_gadget, struct ci_hdrc, gadget);
|
||||||
|
|
||||||
|
if (!ci->vbus_active)
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
if (is_on)
|
if (is_on)
|
||||||
hw_write(ci, OP_USBCMD, USBCMD_RS, USBCMD_RS);
|
hw_write(ci, OP_USBCMD, USBCMD_RS, USBCMD_RS);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue