[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251025160905.3857885-283-sashal@kernel.org>
Date: Sat, 25 Oct 2025 11:58:34 -0400
From: Sasha Levin <sashal@...nel.org>
To: patches@...ts.linux.dev,
stable@...r.kernel.org
Cc: Bart Van Assche <bvanassche@....org>,
Avri Altman <avri.altman@...disk.com>,
Nitin Rawat <quic_nitirawa@...cinc.com>,
Peter Wang <peter.wang@...iatek.com>,
Manivannan Sadhasivam <mani@...nel.org>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
Sasha Levin <sashal@...nel.org>,
matthias.bgg@...il.com,
angelogioacchino.delregno@...labora.com,
beanhuo@...ron.com,
alexandre.f.demers@...il.com,
adrian.hunter@...el.com,
quic_mapa@...cinc.com,
linux-scsi@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org
Subject: [PATCH AUTOSEL 6.17-6.6] scsi: ufs: core: Disable timestamp functionality if not supported
From: Bart Van Assche <bvanassche@....org>
[ Upstream commit fb1f4568346153d2f80fdb4ffcfa0cf4fb257d3c ]
Some Kioxia UFS 4 devices do not support the qTimestamp attribute. Set
the UFS_DEVICE_QUIRK_NO_TIMESTAMP_SUPPORT for these devices such that no
error messages appear in the kernel log about failures to set the
qTimestamp attribute.
Signed-off-by: Bart Van Assche <bvanassche@....org>
Reviewed-by: Avri Altman <avri.altman@...disk.com>
Tested-by: Nitin Rawat <quic_nitirawa@...cinc.com> # on SM8650-QRD
Reviewed-by: Nitin Rawat <quic_nitirawa@...cinc.com>
Reviewed-by: Peter Wang <peter.wang@...iatek.com>
Reviewed-by: Manivannan Sadhasivam <mani@...nel.org>
Message-ID: <20250909190614.3531435-1-bvanassche@....org>
Signed-off-by: Martin K. Petersen <martin.petersen@...cle.com>
Signed-off-by: Sasha Levin <sashal@...nel.org>
---
LLM Generated explanations, may be completely bogus:
YES. The change adds a targeted quirk for the Kioxia `THGJFJT1E45BATP`
device (`drivers/ufs/core/ufshcd.c:316`) that prevents the core driver
from issuing the qTimestamp write when the device advertises that the
attribute is unsupported (`drivers/ufs/core/ufshcd.c:8799`). Without it,
every link bring-up or reset hits `ufshcd_set_timestamp_attr()` and
emits a `dev_err` because the write reliably fails, so users see
recurring kernel log noise on affected hardware. Introducing
`UFS_DEVICE_QUIRK_NO_TIMESTAMP_SUPPORT` (`include/ufs/ufs_quirks.h:117`)
is mechanically simple, does not alter behaviour for other devices, and
cleanly gates the existing code path via the existing quirk plumbing,
making the risk of regression very low. Because it fixes a user-visible
malfunction (persistent error messages) on shipping UFS 4 hardware and
is tightly scoped with no architectural fallout, it fits stable backport
criteria well. A natural follow-up is to validate on the affected
hardware that the spurious log entries disappear after backporting.
drivers/ufs/core/ufshcd.c | 6 +++++-
include/ufs/ufs_quirks.h | 3 +++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 78d3f0ee16d84..1907c0f6eda0e 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -316,6 +316,9 @@ static const struct ufs_dev_quirk ufs_fixups[] = {
{ .wmanufacturerid = UFS_VENDOR_TOSHIBA,
.model = "THGLF2G9D8KBADG",
.quirk = UFS_DEVICE_QUIRK_PA_TACTIVATE },
+ { .wmanufacturerid = UFS_VENDOR_TOSHIBA,
+ .model = "THGJFJT1E45BATP",
+ .quirk = UFS_DEVICE_QUIRK_NO_TIMESTAMP_SUPPORT },
{}
};
@@ -8794,7 +8797,8 @@ static void ufshcd_set_timestamp_attr(struct ufs_hba *hba)
struct ufs_dev_info *dev_info = &hba->dev_info;
struct utp_upiu_query_v4_0 *upiu_data;
- if (dev_info->wspecversion < 0x400)
+ if (dev_info->wspecversion < 0x400 ||
+ hba->dev_quirks & UFS_DEVICE_QUIRK_NO_TIMESTAMP_SUPPORT)
return;
ufshcd_dev_man_lock(hba);
diff --git a/include/ufs/ufs_quirks.h b/include/ufs/ufs_quirks.h
index f52de5ed1b3b6..83563247c36cb 100644
--- a/include/ufs/ufs_quirks.h
+++ b/include/ufs/ufs_quirks.h
@@ -113,4 +113,7 @@ struct ufs_dev_quirk {
*/
#define UFS_DEVICE_QUIRK_PA_HIBER8TIME (1 << 12)
+/* Some UFS 4 devices do not support the qTimestamp attribute */
+#define UFS_DEVICE_QUIRK_NO_TIMESTAMP_SUPPORT (1 << 13)
+
#endif /* UFS_QUIRKS_H_ */
--
2.51.0
Powered by blists - more mailing lists