From 392bbaffdca84497d9527d74f40bd54e73e1b0e2 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Tue, 8 Apr 2025 14:23:11 -0700 Subject: [PATCH] ANDROID: scsi: ufs: Support I/O tracing for zoned block devices Let's support tracing for WRITE(16), READ(16), ZBC IN and ZBC OUT. Signed-off-by: Jaegeuk Kim Bug: 269471019 Bug: 415836627 Link: https://lore.kernel.org/linux-scsi/20230215190448.1687786-1-jaegeuk@kernel.org/ Change-Id: Ie6a1e42b8fdf38a21ca45de0b2384550171cbcdd Signed-off-by: Bart Van Assche --- drivers/ufs/core/ufs_trace.h | 4 +++- drivers/ufs/core/ufshcd.c | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/ufs/core/ufs_trace.h b/drivers/ufs/core/ufs_trace.h index caa32e23ffa5..da5aaf8c41b8 100644 --- a/drivers/ufs/core/ufs_trace.h +++ b/drivers/ufs/core/ufs_trace.h @@ -19,7 +19,9 @@ { READ_16, "READ_16" }, \ { READ_10, "READ_10" }, \ { SYNCHRONIZE_CACHE, "SYNC" }, \ - { UNMAP, "UNMAP" }) + { UNMAP, "UNMAP" }, \ + { ZBC_IN, "ZBC_IN" }, \ + { ZBC_OUT, "ZBC_OUT" }) #define UFS_LINK_STATES \ EM(UIC_LINK_OFF_STATE, "UIC_LINK_OFF_STATE") \ diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 280db8161f16..daa2e33d55e2 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -491,15 +491,15 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag, opcode = cmd->cmnd[0]; - if (opcode == READ_10 || opcode == WRITE_10) { - /* - * Currently we only fully trace read(10) and write(10) commands - */ + if (opcode == READ_10 || opcode == WRITE_10 || + opcode == READ_16 || opcode == WRITE_16) { transfer_len = be32_to_cpu(lrbp->ucd_req_ptr->sc.exp_data_transfer_len); lba = scsi_get_lba(cmd); if (opcode == WRITE_10) group_id = lrbp->cmd->cmnd[6]; + if (opcode == WRITE_16) + group_id = lrbp->cmd->cmnd[14]; } else if (opcode == UNMAP) { /* * The number of Bytes to be unmapped beginning with the lba.