]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
scsi: ufs: core: Optimize ufshcd_add_uic_command_trace()
authorBart Van Assche <bvanassche@acm.org>
Tue, 19 May 2026 21:21:29 +0000 (14:21 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 23 May 2026 01:40:40 +0000 (21:40 -0400)
Use cached values in ufshcd_add_uic_command_trace() instead of calling
readl() when tracing command submission (UFS_CMD_SEND).

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Link: https://patch.msgid.link/20260519212135.3130556-4-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index cfb362fe9784f6a8dd25eb245e736e1554631e6f..c1a0a79e386d8f1c1543ebcac2f8af3a5c28c55d 100644 (file)
@@ -460,20 +460,24 @@ static void ufshcd_add_uic_command_trace(struct ufs_hba *hba,
                                         const struct uic_command *ucmd,
                                         enum ufs_trace_str_t str_t)
 {
-       u32 cmd;
+       u32 cmd, arg1, arg2, arg3;
 
        if (!trace_ufshcd_uic_command_enabled())
                return;
 
-       if (str_t == UFS_CMD_SEND)
+       if (str_t == UFS_CMD_SEND) {
                cmd = ucmd->command;
-       else
+               arg1 = ucmd->argument1;
+               arg2 = ucmd->argument2;
+               arg3 = ucmd->argument3;
+       } else {
                cmd = ufshcd_readl(hba, REG_UIC_COMMAND);
+               arg1 = ufshcd_readl(hba, REG_UIC_COMMAND_ARG_1);
+               arg2 = ufshcd_readl(hba, REG_UIC_COMMAND_ARG_2);
+               arg3 = ufshcd_readl(hba, REG_UIC_COMMAND_ARG_3);
+       }
 
-       trace_ufshcd_uic_command(hba, str_t, cmd,
-                                ufshcd_readl(hba, REG_UIC_COMMAND_ARG_1),
-                                ufshcd_readl(hba, REG_UIC_COMMAND_ARG_2),
-                                ufshcd_readl(hba, REG_UIC_COMMAND_ARG_3));
+       trace_ufshcd_uic_command(hba, str_t, cmd, arg1, arg2, arg3);
 }
 
 static void ufshcd_add_command_trace(struct ufs_hba *hba, struct scsi_cmnd *cmd,