summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2026-05-19 14:21:29 -0700
committerMartin K. Petersen <martin.petersen@oracle.com>2026-05-22 21:40:40 -0400
commitf8380c57dcff5ac3b32393a05ff6a6ff0108bf3e (patch)
tree0b2b8f80a387e6796ada0da54c05f4c6b325ad82 /drivers
parent9fb4c793223b618da6bee50840746522a7da226e (diff)
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ufs/core/ufshcd.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index cfb362fe9784..c1a0a79e386d 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -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,