From 38307ba0e07ec699e1dc4db52e1360f3c651c1f4 Mon Sep 17 00:00:00 2001 From: Nitin Rawat Date: Wed, 9 Sep 2020 13:00:41 +0530 Subject: [PATCH] scsi: ufs: Add fixup_dev_quirks vops on qcom platform Add fixup_dev_quirks vops for UFS on qcom platform to modify or fix device quirks needed for specific vendor without modifying ufs_fixup table. Change-Id: Icff1788c1d618a1e0b0f3b74bcb63184228849cd Signed-off-by: Nitin Rawat --- drivers/scsi/ufs/ufs-qcom.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index d139bbc3eae3..117d79f2d63d 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -3372,6 +3372,22 @@ static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, } #endif +#if defined(CONFIG_SCSI_UFSHCD_QTI) +static struct ufs_dev_fix ufs_qcom_dev_fixups[] = { + UFS_FIX(UFS_VENDOR_MICRON, UFS_ANY_MODEL, + UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM), + UFS_FIX(UFS_VENDOR_SKHYNIX, UFS_ANY_MODEL, + UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM), + UFS_FIX(UFS_VENDOR_WDC, UFS_ANY_MODEL, + UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE), + END_FIX +}; + +static void ufs_qcom_fixup_dev_quirks(struct ufs_hba *hba) +{ + ufshcd_fixup_dev_quirks(hba, ufs_qcom_dev_fixups); +} +#endif /** * struct ufs_hba_qcom_vops - UFS QCOM specific variant operations * @@ -3395,6 +3411,9 @@ static const struct ufs_hba_variant_ops ufs_hba_qcom_vops = { .device_reset = ufs_qcom_device_reset, .config_scaling_param = ufs_qcom_config_scaling_param, .setup_xfer_req = ufs_qcom_qos, +#if defined(CONFIG_SCSI_UFSHCD_QTI) + .fixup_dev_quirks = ufs_qcom_fixup_dev_quirks, +#endif }; /**