From: Thierry Vignaud <tvignaud@redhat.com>
To: linux-ide@vger.kernel.org
Cc: Thierry Vignaud <tvignaud@redhat.com>
Subject: [PATCH] ata: libata-core: Add NOLPM/NONCQ/1.5Gbps quirk for PNY 1TB SATA SSD
Date: Wed, 28 Oct 2026 15:54:34 +0100 [thread overview]
Message-ID: <20261028145535.623209-1-tvignaud@redhat.com> (raw)
In-Reply-To: <[PATCH] ata: libata-core: Add quirks for PNY 1TB SATA SSD 916a>
Without that, I get the errors below.
For a year, I workaround it by disabling NCQ & reducing the speed by
booting with "libata.force=1:3.0Gbps,1:noncq".
It tried out disabling LPM only but I was still able to see errors.
Related: bko#222187
v3:
- add firmware revision check
v2:
- remove firmware revision from SSD name
- drop speed to 1.5Gbs (as there's no 3.0Gbps quirk)
- disable NCQ altogether (else we still see the errors from times to
times)
Example of errors:
ata1.00: exception Emask 0x0 SAct 0x1c SErr 0x0 action 0x6 frozen
ata1.00: failed command: WRITE FPDMA QUEUED
ata1.00: cmd 61/00:10:00:a8:a9/20:00:6f:00:00/40 tag 2 ncq dma 4194304 ou
res 40/00:ff:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: failed command: WRITE FPDMA QUEUED
ata1.00: cmd 61/40:18:30:ce:51/05:00:39:00:00/40 tag 3 ncq dma 688128 out
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1.00: failed command: WRITE FPDMA QUEUED
ata1.00: cmd 61/50:20:70:d3:51/02:00:39:00:00/40 tag 4 ncq dma 303104 out
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
ata1: hard resetting link
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata1.00: configured for UDMA/133
ata1: EH complete
sd 0:0:0:0: [sda] tag#10 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK cmd_age=43s
sd 0:0:0:0: [sda] tag#10 CDB: Write(10) 2a 00 6e e6 88 00 00 10 00 00
I/O error, dev sda, sector 1860601856 op 0x1:(WRITE) flags 0x4000 phys_seg 32 prio class 2
EXT4-fs warning (device sda1): ext4_end_bio:360: I/O error 10 writing to inode 33841832 starting block 232575232)
sd 0:0:0:0: [sda] tag#11 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK cmd_age=43s
sd 0:0:0:0: [sda] tag#11 CDB: Write(10) 2a 00 6e e6 98 00 00 20 00 00
I/O error, dev sda, sector 1860605952 op 0x1:(WRITE) flags 0x4000 phys_seg 64 prio class 2
(…)
EXT4-fs warning (device sda1): ext4_end_bio:360: I/O error 10 writing to inode 33841806 starting block 232583424)
EXT4-fs (sda1): failed to convert unwritten extents to written extents -- potential data loss! (inode 36499395, error -5)
Buffer I/O error on device sda1, logical block 155756907
Buffer I/O error on device sda1, logical block 155756908
Buffer I/O error on device sda1, logical block 155756909
Buffer I/O error on device sda1, logical block 155756910
Buffer I/O error on device sda1, logical block 155756911
Buffer I/O error on device sda1, logical block 155756912
Buffer I/O error on device sda1, logical block 155756913
Buffer I/O error on device sda1, logical block 155756914
Buffer I/O error on device sda1, logical block 155756915
Buffer I/O error on device sda1, logical block 155756916
EXT4-fs (sda1): failed to convert unwritten extents to written extents -- potential data loss! (inode 36499424, error -5)
---
drivers/ata/libata-core.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index dadcaf9ff462..cde9d367c20f 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4398,6 +4398,13 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
/* PNY CS900 (Phison PS3111-S11, DRAM-less) drops the link on DIPM */
{ "PNY CS900 1TB SSD", NULL, ATA_QUIRK_NOLPM },
+ /* PNY CS900 (variant) drops the link on DIPM and NCQ
+ * This covers only the 1TB variant but other sizes are affected
+ * according to forum posts */
+ { "PNY 1TB SATA SSD", "H220916a", ATA_QUIRK_NOLPM |
+ ATA_QUIRK_1_5_GBPS |
+ ATA_QUIRK_NONCQ },
+
/* Silicon Motion models with LPM issues */
{ "MD619HXCLDE3TC", "TCVAID", ATA_QUIRK_NOLPM },
{ "MD619GXCLDE3TC", "TCV35D", ATA_QUIRK_NOLPM },
--
2.56.0
prev parent reply other threads:[~2026-10-28 14:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <[PATCH] ata: libata-core: Add quirks for PNY 1TB SATA SSD 916a>
2026-10-28 12:42 ` [PATCH] ata: libata-core: Add NOLPM quirk for PNY 1TB SATA SSD Thierry Vignaud
2026-10-28 12:54 ` sashiko-bot
2026-10-28 13:25 ` Thierry Vignaud
2026-10-28 14:54 ` Thierry Vignaud [this message]
[not found] <[PATCH]>
[not found] ` <ata:>
[not found] ` <libata-core:>
[not found] ` <Add>
[not found] ` <quirks>
[not found] ` <for>
[not found] ` <PNY>
[not found] ` <1TB>
[not found] ` <SATA>
[not found] ` <SSD>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261028145535.623209-1-tvignaud@redhat.com \
--to=tvignaud@redhat.com \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox