mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-29 02:59:13 +00:00
scsi: ufs: qcom: Implement the freq_to_gear_speed() vop
Implement the freq_to_gear_speed() vop to map the unipro core clock frequency to the corresponding maximum supported gear speed. Signed-off-by: Can Guo <quic_cang@quicinc.com> Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com> Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com> Link: https://lore.kernel.org/r/20250213080008.2984807-5-quic_ziqichen@quicinc.com Reviewed-by: Bean Huo <beanhuo@micron.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Peter Wang <peter.wang@mediatek.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
d7bead60b0
commit
c02fe9e222
@ -1858,6 +1858,36 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static u32 ufs_qcom_freq_to_gear_speed(struct ufs_hba *hba, unsigned long freq)
|
||||||
|
{
|
||||||
|
u32 gear = 0;
|
||||||
|
|
||||||
|
switch (freq) {
|
||||||
|
case 403000000:
|
||||||
|
gear = UFS_HS_G5;
|
||||||
|
break;
|
||||||
|
case 300000000:
|
||||||
|
gear = UFS_HS_G4;
|
||||||
|
break;
|
||||||
|
case 201500000:
|
||||||
|
gear = UFS_HS_G3;
|
||||||
|
break;
|
||||||
|
case 150000000:
|
||||||
|
case 100000000:
|
||||||
|
gear = UFS_HS_G2;
|
||||||
|
break;
|
||||||
|
case 75000000:
|
||||||
|
case 37500000:
|
||||||
|
gear = UFS_HS_G1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dev_err(hba->dev, "%s: Unsupported clock freq : %lu\n", __func__, freq);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return gear;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* struct ufs_hba_qcom_vops - UFS QCOM specific variant operations
|
* struct ufs_hba_qcom_vops - UFS QCOM specific variant operations
|
||||||
*
|
*
|
||||||
@ -1886,6 +1916,7 @@ static const struct ufs_hba_variant_ops ufs_hba_qcom_vops = {
|
|||||||
.op_runtime_config = ufs_qcom_op_runtime_config,
|
.op_runtime_config = ufs_qcom_op_runtime_config,
|
||||||
.get_outstanding_cqs = ufs_qcom_get_outstanding_cqs,
|
.get_outstanding_cqs = ufs_qcom_get_outstanding_cqs,
|
||||||
.config_esi = ufs_qcom_config_esi,
|
.config_esi = ufs_qcom_config_esi,
|
||||||
|
.freq_to_gear_speed = ufs_qcom_freq_to_gear_speed,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user