> > This patch slightly reduces the UFS driver size if built with power > management support disabled. > > Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx> > Cc: Stanley Chu <stanley.chu@xxxxxxxxxxxx> > Cc: Can Guo <cang@xxxxxxxxxxxxxx> > Cc: Asutosh Das <asutoshd@xxxxxxxxxxxxxx> > Cc: Avri Altman <avri.altman@xxxxxxx> > Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> > --- > drivers/scsi/ufs/ufshcd.c | 8 ++++++++ > drivers/scsi/ufs/ufshcd.h | 4 ++++ > 2 files changed, 12 insertions(+) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c > index a34aa6d486c7..37302a8b3937 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -8736,6 +8736,7 @@ static void ufshcd_vreg_set_lpm(struct ufs_hba > *hba) > usleep_range(5000, 5100); > } > > +#ifdef CONFIG_PM Maybe move this few lines up to include ufshcd_vreg_set_lpm as well? Are there any ufs platforms that doesn't use pm management? Automotive platforms maybe? Thanks, Avri > static int ufshcd_vreg_set_hpm(struct ufs_hba *hba) > { > int ret = 0; > @@ -8763,6 +8764,7 @@ static int ufshcd_vreg_set_hpm(struct ufs_hba > *hba) > out: > return ret; > } > +#endif /* CONFIG_PM */ > > static void ufshcd_hba_vreg_set_lpm(struct ufs_hba *hba) > { > @@ -9165,6 +9167,7 @@ static int ufshcd_suspend(struct ufs_hba *hba) > return ret; > } > > +#ifdef CONFIG_PM > /** > * ufshcd_resume - helper function for resume operations > * @hba: per adapter instance > @@ -9202,7 +9205,9 @@ static int ufshcd_resume(struct ufs_hba *hba) > ufshcd_update_evt_hist(hba, UFS_EVT_RESUME_ERR, (u32)ret); > return ret; > } > +#endif /* CONFIG_PM */ > > +#ifdef CONFIG_PM_SLEEP > /** > * ufshcd_system_suspend - system suspend callback > * @dev: Device associated with the UFS controller. > @@ -9258,7 +9263,9 @@ int ufshcd_system_resume(struct device *dev) > return ret; > } > EXPORT_SYMBOL(ufshcd_system_resume); > +#endif /* CONFIG_PM_SLEEP */ > > +#ifdef CONFIG_PM > /** > * ufshcd_runtime_suspend - runtime suspend callback > * @dev: Device associated with the UFS controller. > @@ -9306,6 +9313,7 @@ int ufshcd_runtime_resume(struct device *dev) > return ret; > } > EXPORT_SYMBOL(ufshcd_runtime_resume); > +#endif /* CONFIG_PM */ > > /** > * ufshcd_shutdown - shutdown routine > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h > index dc75426c609f..79f6c261dfff 100644 > --- a/drivers/scsi/ufs/ufshcd.h > +++ b/drivers/scsi/ufs/ufshcd.h > @@ -1009,10 +1009,14 @@ static inline u8 > ufshcd_wb_get_query_index(struct ufs_hba *hba) > return 0; > } > > +#ifdef CONFIG_PM > extern int ufshcd_runtime_suspend(struct device *dev); > extern int ufshcd_runtime_resume(struct device *dev); > +#endif > +#ifdef CONFIG_PM_SLEEP > extern int ufshcd_system_suspend(struct device *dev); > extern int ufshcd_system_resume(struct device *dev); > +#endif > extern int ufshcd_shutdown(struct ufs_hba *hba); > extern int ufshcd_dme_configure_adapt(struct ufs_hba *hba, > int agreed_gear,