>
> Following build error will show up:
>
> drivers/usb/phy/phy-msm-usb.c: In function ‘msm_otg_runtime_suspend’:
> drivers/usb/phy/phy-msm-usb.c:1693:2: error: implicit declaration of \
> function ‘msm_otg_suspend’ [-Werror=implicit-function-declaration]
> return msm_otg_suspend(motg);
> ^
> drivers/usb/phy/phy-msm-usb.c: In function ‘msm_otg_runtime_resume’:
> drivers/usb/phy/phy-msm-usb.c:1701:2: error: implicit declaration of \
> function ‘msm_otg_resume’ [-Werror=implicit-function-declaration]
> return msm_otg_resume(motg);
> ^
>
> This patch fixes the error by defining msm_otg_{suspend,resume} whenever
> CONFIG_PM=y.
>
> Signed-off-by: Felipe Balbi <[email protected]>
> ---
> drivers/usb/phy/phy-msm-usb.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-
> usb.c index 64c9d14e..96f31aa 100644
> --- a/drivers/usb/phy/phy-msm-usb.c
> +++ b/drivers/usb/phy/phy-msm-usb.c
> @@ -159,7 +159,7 @@ put_3p3:
> return rc;
> }
>
> -#ifdef CONFIG_PM_SLEEP
> +#ifdef CONFIG_PM
> #define USB_PHY_SUSP_DIG_VOL 500000
> static int msm_hsusb_config_vddcx(int high) { @@ -440,7 +440,7 @@
> static int msm_otg_reset(struct usb_phy *phy)
> #define PHY_SUSPEND_TIMEOUT_USEC (500 * 1000)
> #define PHY_RESUME_TIMEOUT_USEC (100 * 1000)
>
> -#ifdef CONFIG_PM_SLEEP
> +#ifdef CONFIG_PM
> static int msm_otg_suspend(struct msm_otg *motg) {
> struct usb_phy *phy = &motg->phy;
> --
> 1.9.0
Reviewed-by: Peter Chen <[email protected]>
This problem is due to msm_otg_resume/msm_otg_suspend are used
at both system and runtime pm routine. So we need to use
CONFIG_PM to instead of CONFIG_PM_SLEEP.
At my phy-mxs-usb.c patch, the suspend/resume API are only used
at system suspend/resume routine.
Peter