Linux ATA/IDE development
 help / color / mirror / Atom feed
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


      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