> > 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 <balbi@xxxxxx> > --- > 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 <peter.chen@xxxxxxxxxxxxx> 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 ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥