@@ -4758,6 +4758,8 @@ static int ufshcd_slave_configure(struct scsi_device *sdev)
ufshcd_crypto_setup_rq_keyslot_manager(hba, q);
+ ufshcd_vops_slave_configure(hba, sdev);
+
return 0;
}
@@ -329,6 +329,7 @@ struct ufs_hba_variant_ops {
void *data);
int (*program_key)(struct ufs_hba *hba,
const union ufs_crypto_cfg_entry *cfg, int slot);
+ void (*slave_configure)(struct scsi_device *sdev);
};
/* clock gating state */
@@ -1228,6 +1229,13 @@ static inline void ufshcd_vops_config_scaling_param(struct ufs_hba *hba,
hba->vops->config_scaling_param(hba, profile, data);
}
+static inline void ufshcd_vops_slave_configure(struct ufs_hba *hba,
+ struct scsi_device *sdev)
+{
+ if (hba->vops && hba->vops->slave_configure)
+ hba->vops->slave_configure(sdev);
+}
+
extern struct ufs_pm_lvl_states ufs_pm_lvl_states[];
/*
There could be some cases to set block parameters per host, because of its own dma structure or whatever. Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com> --- drivers/scsi/ufs/ufshcd.c | 2 ++ drivers/scsi/ufs/ufshcd.h | 8 ++++++++ 2 files changed, 10 insertions(+)