Hi Dolev, On Wednesday 10 September 2014 05:24 PM, Dolev Raviv wrote: > From: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx> > > This patch adds support for UFS device and UniPro link power management > during runtime/system PM. > <snip> > +vccq_lpm: > + ufshcd_config_vreg_lpm(hba, hba->vreg_info.vccq); > +vcc_disable: > + ufshcd_toggle_vreg(hba->dev, hba->vreg_info.vcc, false); > +out: > + return ret; > +} > + > +static void ufshcd_hba_vreg_set_lpm(struct ufs_hba *hba) > +{ > + if (ufshcd_is_link_off(hba)) > + ufshcd_setup_hba_vreg(hba, false); I didn't find any declaration and definition of above API in your patch set. During compilation of this driver I got a below error, am I missing any thing? drivers/scsi/ufs/ufshcd.c: In function ‘ufshcd_hba_vreg_set_lpm’: drivers/scsi/ufs/ufshcd.c:4656:3: error: implicit declaration of function ‘ufshcd_setup_hba_vreg’ [-Werror=implicit-function-declaration] ufshcd_setup_hba_vreg(hba, false); ^ > +} > + > +static void ufshcd_hba_vreg_set_hpm(struct ufs_hba *hba) > +{ > + if (ufshcd_is_link_off(hba)) > + ufshcd_setup_hba_vreg(hba, true); Ditto. > } > -EXPORT_SYMBOL_GPL(ufshcd_suspend); > > /** > - * ufshcd_resume - resume power management function > + * ufshcd_suspend - helper function for suspend operations > * @hba: per adapter instance > + * @pm_op: desired low power operation type > + * > + * This function will try to put the UFS device and link into low power > + * mode based on the "rpm_lvl" (Runtime PM level) or "spm_lvl" > + * (System PM level). > * <snip> > +int ufshcd_system_resume(struct ufs_hba *hba) > +{ > + if (!hba || !hba->is_powered || pm_runtime_suspended(hba->dev)) > + /* > + * Let the runtime resume take care of resuming > + * if runtime suspended. > + */ > + return 0; > + else "else" is not generally useful after a break or return. > + return ufshcd_resume(hba, UFS_SYSTEM_PM); > +} > +EXPORT_SYMBOL(ufshcd_system_resume); > + > +/** > + * ufshcd_runtime_suspend - runtime suspend routine > + * @hba: per adapter instance > + * > + * Check the description of ufshcd_suspend() function for more details. > + * > + * Returns 0 for success and non-zero for failure > + */ > +int ufshcd_runtime_suspend(struct ufs_hba *hba) > +{ > + if (!hba || !hba->is_powered) > + return 0; > + else "else" is not generally useful after a break or return. > + return ufshcd_suspend(hba, UFS_RUNTIME_PM); > } > EXPORT_SYMBOL(ufshcd_runtime_suspend); > > +/** > + * ufshcd_runtime_resume - runtime resume routine > + * @hba: per adapter instance > + * > + * This function basically brings the UFS device, UniPro link and controller > + * to active state. Following operations are done in this function: > + * Thanks, --Kiran -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html