* [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk
@ 2026-06-10 5:28 raoxu
2026-06-10 9:09 ` Damien Le Moal
2026-06-10 9:40 ` Niklas Cassel
0 siblings, 2 replies; 4+ messages in thread
From: raoxu @ 2026-06-10 5:28 UTC (permalink / raw)
To: dlemoal; +Cc: cassel, linux-ide, linux-kernel, raoxu
From: Xu Rao <raoxu@uniontech.com>
JMicron JMS562, as used in QNAP QDA-A2AR RAID1 adapters, may
keep the exported ATA device not ready while the array is rebuilding.
In this state, libata may repeatedly try to softreset and classify
the fan-out link. On the affected adapter, this can time out, make
PMP/SCR access fail, and eventually disable the fan-out link before
the RAID volume is exported.
A failing boot shows the fan-out link failing SRST, PMP access
timing out, SCR read failing, and the link being disabled:
ata4.00: softreset failed (device not ready)
ata4.15: qc timeout after 3000 msecs (cmd 0xe4)
ata4.00: failed to read SCR 0 (Emask=0x4)
ata4.00: failed to recover link after 3 tries, disabling
After that, the root filesystem on the exported RAID volume cannot
be found.
Add JMS562 to the existing JMicron PMP quirk that disables LPM,
avoids softreset on fan-out links, and assumes an ATA device. This
prevents libata from dropping the exported RAID volume during rebuild
recovery.
Signed-off-by: Xu Rao <raoxu@uniontech.com>
---
v2:
- Fix the subject prefix. The previous submission was incorrectly
sent as [PATCH 6/6], but this is a standalone patch.
- No code changes.
drivers/ata/libata-pmp.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index e3adc008fed1..f4103438ac7d 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -446,8 +446,13 @@ static void sata_pmp_quirks(struct ata_port *ap)
* otherwise. Don't try hard to recover it.
*/
ap->pmp_link[ap->nr_pmp_links - 1].flags |= ATA_LFLAG_NO_RETRY;
- } else if (vendor == 0x197b && (devid == 0x2352 || devid == 0x0325)) {
+ } else if (vendor == 0x197b &&
+ (devid == 0x0562 || devid == 0x2352 || devid == 0x0325)) {
/*
+ * 0x0562: JMicron JMS562, as used in QNAP QDA-A2AR RAID1
+ * adapters. The exported device may stay not ready
+ * while the array is rebuilding, and SRST/classify can
+ * time out before the RAID volume is exported.
* 0x2352: found in Thermaltake BlackX Duet, jmicron JMB350?
* 0x0325: jmicron JMB394.
*/
--
2.50.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk
2026-06-10 5:28 [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk raoxu
@ 2026-06-10 9:09 ` Damien Le Moal
2026-06-10 9:47 ` Niklas Cassel
2026-06-10 9:40 ` Niklas Cassel
1 sibling, 1 reply; 4+ messages in thread
From: Damien Le Moal @ 2026-06-10 9:09 UTC (permalink / raw)
To: raoxu; +Cc: cassel, linux-ide, linux-kernel
On 2026/06/10 13:28, raoxu wrote:
> From: Xu Rao <raoxu@uniontech.com>
>
> JMicron JMS562, as used in QNAP QDA-A2AR RAID1 adapters, may
> keep the exported ATA device not ready while the array is rebuilding.
>
> In this state, libata may repeatedly try to softreset and classify
> the fan-out link. On the affected adapter, this can time out, make
> PMP/SCR access fail, and eventually disable the fan-out link before
> the RAID volume is exported.
>
> A failing boot shows the fan-out link failing SRST, PMP access
> timing out, SCR read failing, and the link being disabled:
>
> ata4.00: softreset failed (device not ready)
> ata4.15: qc timeout after 3000 msecs (cmd 0xe4)
> ata4.00: failed to read SCR 0 (Emask=0x4)
> ata4.00: failed to recover link after 3 tries, disabling
>
> After that, the root filesystem on the exported RAID volume cannot
> be found.
>
> Add JMS562 to the existing JMicron PMP quirk that disables LPM,
> avoids softreset on fan-out links, and assumes an ATA device. This
> prevents libata from dropping the exported RAID volume during rebuild
> recovery.
>
> Signed-off-by: Xu Rao <raoxu@uniontech.com>
It is really unfortunate that JMicron keeps having these issues. But I do not
see any way around this, so:
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk
2026-06-10 5:28 [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk raoxu
2026-06-10 9:09 ` Damien Le Moal
@ 2026-06-10 9:40 ` Niklas Cassel
1 sibling, 0 replies; 4+ messages in thread
From: Niklas Cassel @ 2026-06-10 9:40 UTC (permalink / raw)
To: dlemoal, raoxu; +Cc: linux-ide, linux-kernel
On Wed, 10 Jun 2026 13:28:35 +0800, raoxu wrote:
> JMicron JMS562, as used in QNAP QDA-A2AR RAID1 adapters, may
> keep the exported ATA device not ready while the array is rebuilding.
>
> In this state, libata may repeatedly try to softreset and classify
> the fan-out link. On the affected adapter, this can time out, make
> PMP/SCR access fail, and eventually disable the fan-out link before
> the RAID volume is exported.
>
> [...]
Applied to libata/linux.git (for-7.2), thanks!
[1/1] ata: libata-pmp: add JMicron JMS562 quirk
https://git.kernel.org/libata/linux/c/c62aff11
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk
2026-06-10 9:09 ` Damien Le Moal
@ 2026-06-10 9:47 ` Niklas Cassel
0 siblings, 0 replies; 4+ messages in thread
From: Niklas Cassel @ 2026-06-10 9:47 UTC (permalink / raw)
To: Damien Le Moal; +Cc: raoxu, linux-ide, linux-kernel
On Wed, Jun 10, 2026 at 05:09:34PM +0800, Damien Le Moal wrote:
> On 2026/06/10 13:28, raoxu wrote:
> > From: Xu Rao <raoxu@uniontech.com>
> >
> > JMicron JMS562, as used in QNAP QDA-A2AR RAID1 adapters, may
> > keep the exported ATA device not ready while the array is rebuilding.
> >
> > In this state, libata may repeatedly try to softreset and classify
> > the fan-out link. On the affected adapter, this can time out, make
> > PMP/SCR access fail, and eventually disable the fan-out link before
> > the RAID volume is exported.
> >
> > A failing boot shows the fan-out link failing SRST, PMP access
> > timing out, SCR read failing, and the link being disabled:
> >
> > ata4.00: softreset failed (device not ready)
> > ata4.15: qc timeout after 3000 msecs (cmd 0xe4)
> > ata4.00: failed to read SCR 0 (Emask=0x4)
> > ata4.00: failed to recover link after 3 tries, disabling
> >
> > After that, the root filesystem on the exported RAID volume cannot
> > be found.
> >
> > Add JMS562 to the existing JMicron PMP quirk that disables LPM,
> > avoids softreset on fan-out links, and assumes an ATA device. This
> > prevents libata from dropping the exported RAID volume during rebuild
> > recovery.
> >
> > Signed-off-by: Xu Rao <raoxu@uniontech.com>
>
> It is really unfortunate that JMicron keeps having these issues. But I do not
> see any way around this, so:
I don't really like that this patch disables LPM unconditionally for all
the fanout links.
However, this PMP chip seems to be of an older generation compared to the
most popular JMicron JMB575 and JMB585, and seems to be connected using
eSATA interface only (which means external port, which means LPM will be
disabled anyway):
https://www.jmicron.com/file/download/1024/JMS562_Product+Brief.pdf
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-06-10 9:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-10 5:28 [PATCH v2] ata: libata-pmp: add JMicron JMS562 quirk raoxu
2026-06-10 9:09 ` Damien Le Moal
2026-06-10 9:47 ` Niklas Cassel
2026-06-10 9:40 ` Niklas Cassel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.