Commit c906e832 authored by Bart Van Assche's avatar Bart Van Assche Committed by Martin K. Petersen

scsi: ufs: Make the config_scaling_param calls type safe

Pass the actual type to config_scaling_param callback as the third argment
instead of a void pointer. Remove a superfluous NULL pointer check from
ufs_qcom_config_scaling_param().

Link: https://lore.kernel.org/r/20220419225811.4127248-15-bvanassche@acm.orgTested-by: default avatarBean Huo <beanhuo@micron.com>
Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: default avatarBean Huo <beanhuo@micron.com>
Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 778d2b0e
...@@ -1448,23 +1448,17 @@ static int ufs_qcom_device_reset(struct ufs_hba *hba) ...@@ -1448,23 +1448,17 @@ static int ufs_qcom_device_reset(struct ufs_hba *hba)
#if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) #if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND)
static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, static void ufs_qcom_config_scaling_param(struct ufs_hba *hba,
struct devfreq_dev_profile *p, struct devfreq_dev_profile *p,
void *data) struct devfreq_simple_ondemand_data *d)
{ {
static struct devfreq_simple_ondemand_data *d;
if (!data)
return;
d = (struct devfreq_simple_ondemand_data *)data;
p->polling_ms = 60; p->polling_ms = 60;
d->upthreshold = 70; d->upthreshold = 70;
d->downdifferential = 5; d->downdifferential = 5;
} }
#else #else
static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, static void ufs_qcom_config_scaling_param(struct ufs_hba *hba,
struct devfreq_dev_profile *p, struct devfreq_dev_profile *p,
void *data) struct devfreq_simple_ondemand_data *data)
{ {
} }
#endif #endif
......
...@@ -348,8 +348,8 @@ struct ufs_hba_variant_ops { ...@@ -348,8 +348,8 @@ struct ufs_hba_variant_ops {
int (*phy_initialization)(struct ufs_hba *); int (*phy_initialization)(struct ufs_hba *);
int (*device_reset)(struct ufs_hba *hba); int (*device_reset)(struct ufs_hba *hba);
void (*config_scaling_param)(struct ufs_hba *hba, void (*config_scaling_param)(struct ufs_hba *hba,
struct devfreq_dev_profile *profile, struct devfreq_dev_profile *profile,
void *data); struct devfreq_simple_ondemand_data *data);
int (*program_key)(struct ufs_hba *hba, int (*program_key)(struct ufs_hba *hba,
const union ufs_crypto_cfg_entry *cfg, int slot); const union ufs_crypto_cfg_entry *cfg, int slot);
void (*event_notify)(struct ufs_hba *hba, void (*event_notify)(struct ufs_hba *hba,
...@@ -1358,11 +1358,11 @@ static inline int ufshcd_vops_device_reset(struct ufs_hba *hba) ...@@ -1358,11 +1358,11 @@ static inline int ufshcd_vops_device_reset(struct ufs_hba *hba)
} }
static inline void ufshcd_vops_config_scaling_param(struct ufs_hba *hba, static inline void ufshcd_vops_config_scaling_param(struct ufs_hba *hba,
struct devfreq_dev_profile struct devfreq_dev_profile *p,
*profile, void *data) struct devfreq_simple_ondemand_data *data)
{ {
if (hba->vops && hba->vops->config_scaling_param) if (hba->vops && hba->vops->config_scaling_param)
hba->vops->config_scaling_param(hba, profile, data); hba->vops->config_scaling_param(hba, p, data);
} }
extern struct ufs_pm_lvl_states ufs_pm_lvl_states[]; extern struct ufs_pm_lvl_states ufs_pm_lvl_states[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment