mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
scsi: ufs: mediatek: Implement get_hba_nortt callback for RTT capability
Implement the get_hba_nortt callback to handle platform-specific RTT capability differences: - For legacy platforms and IP versions before MT6995 B0, the RTT capability from host controller register is problematic, so limit it to 2 (MTK_MAX_NUM_RTT_LEGACY). - For MT6995 B0 and later platforms, the issue is fixed and the value from host controller capability register can be used directly. This replaces the previous max_num_rtt field in ufs_hba_variant_ops with dynamic platform-specific logic. Signed-off-by: Ed Tsai <ed.tsai@mediatek.com> Reviewed-by: Peter Wang <peter.wang@mediatek.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260615055802.105479-3-ed.tsai@mediatek.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
e7896d02cb
commit
75f529a7bc
|
|
@ -2183,6 +2183,16 @@ static int ufs_mtk_clk_scale_notify(struct ufs_hba *hba, bool scale_up,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ufs_mtk_get_hba_nortt(struct ufs_hba *hba)
|
||||
{
|
||||
struct ufs_mtk_host *host = ufshcd_get_variant(hba);
|
||||
|
||||
if (host->legacy_ip_ver || host->ip_ver < IP_VER_MT6995_B0)
|
||||
return MTK_MAX_NUM_RTT_LEGACY;
|
||||
|
||||
return FIELD_GET(MASK_NUMBER_OUTSTANDING_RTT, hba->capabilities) + 1;
|
||||
}
|
||||
|
||||
static int ufs_mtk_get_hba_mac(struct ufs_hba *hba)
|
||||
{
|
||||
struct ufs_mtk_host *host = ufshcd_get_variant(hba);
|
||||
|
|
@ -2322,7 +2332,6 @@ static void ufs_mtk_config_scsi_dev(struct scsi_device *sdev)
|
|||
*/
|
||||
static const struct ufs_hba_variant_ops ufs_hba_mtk_vops = {
|
||||
.name = "mediatek.ufshci",
|
||||
.max_num_rtt = MTK_MAX_NUM_RTT,
|
||||
.init = ufs_mtk_init,
|
||||
.get_ufs_hci_version = ufs_mtk_get_ufs_hci_version,
|
||||
.setup_clocks = ufs_mtk_setup_clocks,
|
||||
|
|
@ -2339,6 +2348,7 @@ static const struct ufs_hba_variant_ops ufs_hba_mtk_vops = {
|
|||
.event_notify = ufs_mtk_event_notify,
|
||||
.config_scaling_param = ufs_mtk_config_scaling_param,
|
||||
.clk_scale_notify = ufs_mtk_clk_scale_notify,
|
||||
.get_hba_nortt = ufs_mtk_get_hba_nortt,
|
||||
/* mcq vops */
|
||||
.get_hba_mac = ufs_mtk_get_hba_mac,
|
||||
.op_runtime_config = ufs_mtk_op_runtime_config,
|
||||
|
|
|
|||
|
|
@ -203,8 +203,8 @@ struct ufs_mtk_host {
|
|||
/* MTK delay of autosuspend: 500 ms */
|
||||
#define MTK_RPM_AUTOSUSPEND_DELAY_MS 500
|
||||
|
||||
/* MTK RTT support number */
|
||||
#define MTK_MAX_NUM_RTT 2
|
||||
/* MTK RTT support number for platforms before MT6995 B0 */
|
||||
#define MTK_MAX_NUM_RTT_LEGACY 2
|
||||
|
||||
/* UFSHCI MTK ip version value */
|
||||
enum {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user