[PATCH v14 11/12] usb: chipidea: udc: misuse flag CI_HDRC_REGS_SHARED and CI_HDRC_PULLUP_ON_VBUS

Alexander Shishkin alexander.shishkin at linux.intel.com
Fri Aug 9 09:23:11 EDT 2013


Peter Chen <peter.chen at freescale.com> writes:

> CI_HDRC_REGS_SHARED stands for the controller registers is shared
> with other USB drivers, if all USB drivers are at chipidea/, it doesn't
> needed to set.

We still have the msm driver that uses REGS_SHARED.

> CI_HDRC_PULLUP_ON_VBUS stands for pullup dp when the vbus is on. This
> flag doesn't need to set if the vbus is always on for gadget
> since dp has always pulled up after the gadget has initialized.

Didn't we agree at some point to get rid of this flag altogether once we
have proper VBUS detection?

>
> So, the current code seems to misuse this two flags.
> - When the gadget initializes, the controller doesn't need to run if
> it depends on vbus (CI_HDRC_PULLUP_ON_VBUS), it does not
> relate to shared register.
> - When the gadget starts (load one gadget module), the controller
> can run if vbus is on (CI_HDRC_PULLUP_ON_VBUS), it also does not
> relate to shared register.
>
> Tested-by: Marek Vasut <marex at denx.de>
> Signed-off-by: Peter Chen <peter.chen at freescale.com>
> ---
>  drivers/usb/chipidea/udc.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
> index c70ce38..45abf4d 100644
> --- a/drivers/usb/chipidea/udc.c
> +++ b/drivers/usb/chipidea/udc.c
> @@ -1637,8 +1637,7 @@ static int ci_udc_start(struct usb_gadget *gadget,
>  	pm_runtime_get_sync(&ci->gadget.dev);
>  	if (ci->platdata->flags & CI_HDRC_PULLUP_ON_VBUS) {
>  		if (ci->vbus_active) {
> -			if (ci->platdata->flags & CI_HDRC_REGS_SHARED)
> -				hw_device_reset(ci, USBMODE_CM_DC);
> +			hw_device_reset(ci, USBMODE_CM_DC);
>  		} else {
>  			pm_runtime_put_sync(&ci->gadget.dev);
>  			goto done;
> @@ -1801,7 +1800,7 @@ static int udc_start(struct ci_hdrc *ci)
>  		}
>  	}
>  
> -	if (!(ci->platdata->flags & CI_HDRC_REGS_SHARED)) {
> +	if (!(ci->platdata->flags & CI_HDRC_PULLUP_ON_VBUS)) {
>  		retval = hw_device_reset(ci, USBMODE_CM_DC);
>  		if (retval)
>  			goto put_transceiver;
> -- 
> 1.7.0.4



More information about the linux-arm-kernel mailing list