scsi: ufs: core: Optimize ufshcd_add_uic_command_trace()

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>
This commit is contained in:
Bart Van Assche 2026-05-19 14:21:29 -07:00 committed by Martin K. Petersen
parent 9fb4c79322
commit f8380c57dc

View 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,