usb: chipidea: udc: otg_set_peripheral is useless for some chipidea users

It is useless at below cases:
- If we implement both usb host and device at chipidea driver.
- If we don't need phy->otg.

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:
Peter Chen 2013-08-14 12:44:05 +03:00 committed by Greg Kroah-Hartman
parent 40ed51a4b8
commit d66895f9df
1 changed files with 6 additions and 1 deletions

View File

@ -1805,7 +1805,12 @@ static int udc_start(struct ci_hdrc *ci)
if (ci->transceiver) {
retval = otg_set_peripheral(ci->transceiver->otg,
&ci->gadget);
if (retval)
/*
* If we implement all USB functions using chipidea drivers,
* it doesn't need to call above API, meanwhile, if we only
* use gadget function, calling above API is useless.
*/
if (retval && retval != -ENOTSUPP)
goto put_transceiver;
}