* [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation
@ 2026-09-18 12:40 Niklas Cassel
2026-09-18 12:40 ` [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers Niklas Cassel
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Niklas Cassel @ 2026-09-18 12:40 UTC (permalink / raw)
To: Damien Le Moal
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K, Niklas Cassel
Hello,
A user reports that a Samsung SSD 870 QVO 8TB connected to an AMD 600
Series chipset SATA controller times out on STANDBY IMMEDIATE during
system suspend with med_power_with_dipm enabled. The command completes
with max_performance instead.
Patch 1 extends the existing Samsung LPM quirk from ATI to AMD
controllers, renaming it to ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD. It keeps the
same drive model matches and leaves the NCQ quirk restricted to ATI.
LPM behavior on other controller vendors, including Intel, is unchanged.
The underlying controller/device interaction has not been root-caused.
Patch 2 separately corrects the libata.force parameter documentation:
the supported PIO range, the scope of ncqati, and the set-only behavior
of max_sec_1024 and max_sec_lba48. It introduces no new force options.
Note that the ATI (and now AMD) LPM quirk never had a libata.force option,
and neither do we want to add one.
If a user wants to force enable/disable lpm, they can use the existing
[no]lpm libata.force parameter. We therefore do not have and documentation
in kernel-parameters.txt to change.
Bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=221986
Kind regards,
Niklas
Niklas Cassel (2):
ata: libata-core: Extend Samsung LPM quirk to AMD controllers
ata: libata: Correct libata.force parameter documentation
Documentation/admin-guide/kernel-parameters.txt | 10 ++++------
drivers/ata/libata-core.c | 15 ++++++++-------
include/linux/libata.h | 4 ++--
3 files changed, 14 insertions(+), 15 deletions(-)
--
2.55.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers
2026-09-18 12:40 [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
@ 2026-09-18 12:40 ` Niklas Cassel
2026-09-19 17:21 ` Mario Limonciello
2026-09-20 4:33 ` Damien Le Moal
2026-09-18 12:40 ` [PATCH 2/2] ata: libata: Correct libata.force parameter documentation Niklas Cassel
2026-09-21 11:21 ` [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
2 siblings, 2 replies; 10+ messages in thread
From: Niklas Cassel @ 2026-09-18 12:40 UTC (permalink / raw)
To: Damien Le Moal
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K, Niklas Cassel
A Samsung SSD 870 QVO 8TB connected to an AMD 600 Series chipset SATA
controller is reported to time out on STANDBY IMMEDIATE during system
suspend with med_power_with_dipm enabled. The command completes when
using max_performance instead.
The existing Samsung LPM quirk only matches ATI controllers, leaving
AMD controllers unaffected. Rename it to
ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD and extend the vendor check to AMD for
the same Samsung SSD model patterns. Keep LPM behavior unchanged for
other controller vendors, including Intel.
Leave ATA_QUIRK_NO_NCQ_ON_ATI restricted to ATI, since the reported AMD
issue concerns LPM rather than NCQ.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=221986
Signed-off-by: Niklas Cassel <cassel@kernel.org>
---
drivers/ata/libata-core.c | 15 ++++++++-------
include/linux/libata.h | 4 ++--
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index f482c0a6d7e9..92233fb25051 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2972,9 +2972,10 @@ static void ata_dev_config_lpm(struct ata_device *dev)
(dev->id[ATA_ID_SATA_CAPABILITY] & 0xe) == 0x2)
dev->quirks |= ATA_QUIRK_NOLPM;
- /* ATI specific quirk */
- if ((dev->quirks & ATA_QUIRK_NO_LPM_ON_ATI) &&
- ata_dev_check_adapter(dev, PCI_VENDOR_ID_ATI))
+ /* ATI and AMD specific quirk */
+ if ((dev->quirks & ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD) &&
+ (ata_dev_check_adapter(dev, PCI_VENDOR_ID_ATI) ||
+ ata_dev_check_adapter(dev, PCI_VENDOR_ID_AMD)))
dev->quirks |= ATA_QUIRK_NOLPM;
}
@@ -4136,7 +4137,7 @@ static const char * const ata_quirk_names[] = {
[__ATA_QUIRK_MAX_SEC] = "maxsec",
[__ATA_QUIRK_MAX_TRIM_128M] = "maxtrim128m",
[__ATA_QUIRK_NO_NCQ_ON_ATI] = "noncqonati",
- [__ATA_QUIRK_NO_LPM_ON_ATI] = "nolpmonati",
+ [__ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD] = "nolpmonatiandamd",
[__ATA_QUIRK_NO_ID_DEV_LOG] = "noiddevlog",
[__ATA_QUIRK_NO_LOG_DIR] = "nologdir",
[__ATA_QUIRK_NO_FUA] = "nofua",
@@ -4420,15 +4421,15 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
{ "Samsung SSD 860*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
ATA_QUIRK_ZERO_AFTER_TRIM |
ATA_QUIRK_NO_NCQ_ON_ATI |
- ATA_QUIRK_NO_LPM_ON_ATI },
+ ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD },
{ "Samsung SSD 870*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
ATA_QUIRK_ZERO_AFTER_TRIM |
ATA_QUIRK_NO_NCQ_ON_ATI |
- ATA_QUIRK_NO_LPM_ON_ATI },
+ ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD },
{ "SAMSUNG*MZ7LH*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
ATA_QUIRK_ZERO_AFTER_TRIM |
ATA_QUIRK_NO_NCQ_ON_ATI |
- ATA_QUIRK_NO_LPM_ON_ATI },
+ ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD },
{ "FCCT*M500*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
ATA_QUIRK_ZERO_AFTER_TRIM },
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 313e96173b19..48bde275968d 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -76,7 +76,7 @@ enum ata_quirks {
__ATA_QUIRK_MAX_SEC, /* Limit max sectors */
__ATA_QUIRK_MAX_TRIM_128M, /* Limit max trim size to 128M */
__ATA_QUIRK_NO_NCQ_ON_ATI, /* Disable NCQ on ATI chipset */
- __ATA_QUIRK_NO_LPM_ON_ATI, /* Disable LPM on ATI chipset */
+ __ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD, /* Disable LPM on ATI and AMD chipsets */
__ATA_QUIRK_NO_ID_DEV_LOG, /* Identify device log missing */
__ATA_QUIRK_NO_LOG_DIR, /* Do not read log directory */
__ATA_QUIRK_NO_FUA, /* Do not use FUA */
@@ -115,7 +115,7 @@ enum {
ATA_QUIRK_MAX_SEC = BIT_ULL(__ATA_QUIRK_MAX_SEC),
ATA_QUIRK_MAX_TRIM_128M = BIT_ULL(__ATA_QUIRK_MAX_TRIM_128M),
ATA_QUIRK_NO_NCQ_ON_ATI = BIT_ULL(__ATA_QUIRK_NO_NCQ_ON_ATI),
- ATA_QUIRK_NO_LPM_ON_ATI = BIT_ULL(__ATA_QUIRK_NO_LPM_ON_ATI),
+ ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD = BIT_ULL(__ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD),
ATA_QUIRK_NO_ID_DEV_LOG = BIT_ULL(__ATA_QUIRK_NO_ID_DEV_LOG),
ATA_QUIRK_NO_LOG_DIR = BIT_ULL(__ATA_QUIRK_NO_LOG_DIR),
ATA_QUIRK_NO_FUA = BIT_ULL(__ATA_QUIRK_NO_FUA),
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] ata: libata: Correct libata.force parameter documentation
2026-09-18 12:40 [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
2026-09-18 12:40 ` [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers Niklas Cassel
@ 2026-09-18 12:40 ` Niklas Cassel
2026-09-18 12:49 ` Niklas Cassel
2026-09-20 4:34 ` Damien Le Moal
2026-09-21 11:21 ` [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
2 siblings, 2 replies; 10+ messages in thread
From: Niklas Cassel @ 2026-09-18 12:40 UTC (permalink / raw)
To: Damien Le Moal
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K, Niklas Cassel
Align the documented libata.force options with their implementation.
The force table accepts PIO modes 0 through 6, not mode 7, and ncqati
controls NCQ generally rather than only queued TRIM.
The max_sec_1024 and max_sec_lba48 options only set transfer size
limits. Remove the misleading claim that they can also clear them.
Signed-off-by: Niklas Cassel <cassel@kernel.org>
---
Documentation/admin-guide/kernel-parameters.txt | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 33cd30996e47..24459f7ff810 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3491,7 +3491,7 @@ Kernel parameters
* SATA link speed limit: 1.5Gbps or 3.0Gbps.
- * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].
+ * Transfer mode: pio[0-6], mwdma[0-4] and udma[0-7].
udma[/][16,25,33,44,66,100,133] notation is also
allowed.
@@ -3509,7 +3509,7 @@ Kernel parameters
* [no]ncqtrim: Enable or disable queued DSM TRIM.
- * [no]ncqati: Enable or disable NCQ trim on ATI chipset.
+ * [no]ncqati: Enable or disable NCQ on ATI chipsets.
* [no]trim: Enable or disable (unqueued) TRIM.
@@ -3540,11 +3540,9 @@ Kernel parameters
* max_sec_128: Set transfer size limit to 128 sectors.
- * max_sec_1024: Set or clear transfer size limit to
- 1024 sectors.
+ * max_sec_1024: Set transfer size limit to 1024 sectors.
- * max_sec_lba48: Set or clear transfer size limit to
- 65535 sectors.
+ * max_sec_lba48: Set transfer size limit to 65535 sectors.
* external: Mark port as external (hotplug-capable).
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ata: libata: Correct libata.force parameter documentation
2026-09-18 12:40 ` [PATCH 2/2] ata: libata: Correct libata.force parameter documentation Niklas Cassel
@ 2026-09-18 12:49 ` Niklas Cassel
2026-09-20 4:35 ` Damien Le Moal
2026-09-20 4:34 ` Damien Le Moal
1 sibling, 1 reply; 10+ messages in thread
From: Niklas Cassel @ 2026-09-18 12:49 UTC (permalink / raw)
To: Damien Le Moal
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K
On Fri, Sep 18, 2026 at 02:40:33PM +0200, Niklas Cassel wrote:
> Align the documented libata.force options with their implementation.
> The force table accepts PIO modes 0 through 6, not mode 7, and ncqati
> controls NCQ generally rather than only queued TRIM.
>
> The max_sec_1024 and max_sec_lba48 options only set transfer size
> limits. Remove the misleading claim that they can also clear them.
>
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
> ---
> Documentation/admin-guide/kernel-parameters.txt | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 33cd30996e47..24459f7ff810 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -3491,7 +3491,7 @@ Kernel parameters
>
> * SATA link speed limit: 1.5Gbps or 3.0Gbps.
>
> - * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].
> + * Transfer mode: pio[0-6], mwdma[0-4] and udma[0-7].
> udma[/][16,25,33,44,66,100,133] notation is also
> allowed.
>
> @@ -3509,7 +3509,7 @@ Kernel parameters
>
> * [no]ncqtrim: Enable or disable queued DSM TRIM.
>
> - * [no]ncqati: Enable or disable NCQ trim on ATI chipset.
> + * [no]ncqati: Enable or disable NCQ on ATI chipsets.
Hmm.. I guess we could theoretically remove the [no]ncqati parameter from
libata.force.
If a user wants to enable/disable ncq, they can use the [no]ncq libata.force
parameter.
However, since this libata.force kernel parameter already exists, I guess it
might actually be used by someone, so we can't really remove it without
potentially breaking existing setups, so I guess the easiest thing is just
to keep it, even if it is not strictly needed.
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers
2026-09-18 12:40 ` [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers Niklas Cassel
@ 2026-09-19 17:21 ` Mario Limonciello
2026-09-20 4:33 ` Damien Le Moal
1 sibling, 0 replies; 10+ messages in thread
From: Mario Limonciello @ 2026-09-19 17:21 UTC (permalink / raw)
To: Niklas Cassel, Damien Le Moal
Cc: linux-ide, grandmastertriplej, Natikar, Basavaraj,
Shyam Sundar S K
On 9/18/26 07:40, Niklas Cassel wrote:
> A Samsung SSD 870 QVO 8TB connected to an AMD 600 Series chipset SATA
> controller is reported to time out on STANDBY IMMEDIATE during system
> suspend with med_power_with_dipm enabled. The command completes when
> using max_performance instead.
>
> The existing Samsung LPM quirk only matches ATI controllers, leaving
> AMD controllers unaffected. Rename it to
> ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD and extend the vendor check to AMD for
> the same Samsung SSD model patterns. Keep LPM behavior unchanged for
> other controller vendors, including Intel.
>
> Leave ATA_QUIRK_NO_NCQ_ON_ATI restricted to ATI, since the reported AMD
> issue concerns LPM rather than NCQ.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=221986
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>> ---
> drivers/ata/libata-core.c | 15 ++++++++-------
> include/linux/libata.h | 4 ++--
> 2 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index f482c0a6d7e9..92233fb25051 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -2972,9 +2972,10 @@ static void ata_dev_config_lpm(struct ata_device *dev)
> (dev->id[ATA_ID_SATA_CAPABILITY] & 0xe) == 0x2)
> dev->quirks |= ATA_QUIRK_NOLPM;
>
> - /* ATI specific quirk */
> - if ((dev->quirks & ATA_QUIRK_NO_LPM_ON_ATI) &&
> - ata_dev_check_adapter(dev, PCI_VENDOR_ID_ATI))
> + /* ATI and AMD specific quirk */
> + if ((dev->quirks & ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD) &&
> + (ata_dev_check_adapter(dev, PCI_VENDOR_ID_ATI) ||
> + ata_dev_check_adapter(dev, PCI_VENDOR_ID_AMD)))
> dev->quirks |= ATA_QUIRK_NOLPM;
> }
>
> @@ -4136,7 +4137,7 @@ static const char * const ata_quirk_names[] = {
> [__ATA_QUIRK_MAX_SEC] = "maxsec",
> [__ATA_QUIRK_MAX_TRIM_128M] = "maxtrim128m",
> [__ATA_QUIRK_NO_NCQ_ON_ATI] = "noncqonati",
> - [__ATA_QUIRK_NO_LPM_ON_ATI] = "nolpmonati",
> + [__ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD] = "nolpmonatiandamd",
> [__ATA_QUIRK_NO_ID_DEV_LOG] = "noiddevlog",
> [__ATA_QUIRK_NO_LOG_DIR] = "nologdir",
> [__ATA_QUIRK_NO_FUA] = "nofua",
> @@ -4420,15 +4421,15 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
> { "Samsung SSD 860*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
> ATA_QUIRK_ZERO_AFTER_TRIM |
> ATA_QUIRK_NO_NCQ_ON_ATI |
> - ATA_QUIRK_NO_LPM_ON_ATI },
> + ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD },
> { "Samsung SSD 870*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
> ATA_QUIRK_ZERO_AFTER_TRIM |
> ATA_QUIRK_NO_NCQ_ON_ATI |
> - ATA_QUIRK_NO_LPM_ON_ATI },
> + ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD },
> { "SAMSUNG*MZ7LH*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
> ATA_QUIRK_ZERO_AFTER_TRIM |
> ATA_QUIRK_NO_NCQ_ON_ATI |
> - ATA_QUIRK_NO_LPM_ON_ATI },
> + ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD },
> { "FCCT*M500*", NULL, ATA_QUIRK_NO_NCQ_TRIM |
> ATA_QUIRK_ZERO_AFTER_TRIM },
>
> diff --git a/include/linux/libata.h b/include/linux/libata.h
> index 313e96173b19..48bde275968d 100644
> --- a/include/linux/libata.h
> +++ b/include/linux/libata.h
> @@ -76,7 +76,7 @@ enum ata_quirks {
> __ATA_QUIRK_MAX_SEC, /* Limit max sectors */
> __ATA_QUIRK_MAX_TRIM_128M, /* Limit max trim size to 128M */
> __ATA_QUIRK_NO_NCQ_ON_ATI, /* Disable NCQ on ATI chipset */
> - __ATA_QUIRK_NO_LPM_ON_ATI, /* Disable LPM on ATI chipset */
> + __ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD, /* Disable LPM on ATI and AMD chipsets */
> __ATA_QUIRK_NO_ID_DEV_LOG, /* Identify device log missing */
> __ATA_QUIRK_NO_LOG_DIR, /* Do not read log directory */
> __ATA_QUIRK_NO_FUA, /* Do not use FUA */
> @@ -115,7 +115,7 @@ enum {
> ATA_QUIRK_MAX_SEC = BIT_ULL(__ATA_QUIRK_MAX_SEC),
> ATA_QUIRK_MAX_TRIM_128M = BIT_ULL(__ATA_QUIRK_MAX_TRIM_128M),
> ATA_QUIRK_NO_NCQ_ON_ATI = BIT_ULL(__ATA_QUIRK_NO_NCQ_ON_ATI),
> - ATA_QUIRK_NO_LPM_ON_ATI = BIT_ULL(__ATA_QUIRK_NO_LPM_ON_ATI),
> + ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD = BIT_ULL(__ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD),
> ATA_QUIRK_NO_ID_DEV_LOG = BIT_ULL(__ATA_QUIRK_NO_ID_DEV_LOG),
> ATA_QUIRK_NO_LOG_DIR = BIT_ULL(__ATA_QUIRK_NO_LOG_DIR),
> ATA_QUIRK_NO_FUA = BIT_ULL(__ATA_QUIRK_NO_FUA),
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers
2026-09-18 12:40 ` [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers Niklas Cassel
2026-09-19 17:21 ` Mario Limonciello
@ 2026-09-20 4:33 ` Damien Le Moal
1 sibling, 0 replies; 10+ messages in thread
From: Damien Le Moal @ 2026-09-20 4:33 UTC (permalink / raw)
To: Niklas Cassel
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K
On 9/18/26 21:40, Niklas Cassel wrote:
> A Samsung SSD 870 QVO 8TB connected to an AMD 600 Series chipset SATA
> controller is reported to time out on STANDBY IMMEDIATE during system
> suspend with med_power_with_dipm enabled. The command completes when
> using max_performance instead.
>
> The existing Samsung LPM quirk only matches ATI controllers, leaving
> AMD controllers unaffected. Rename it to
> ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD and extend the vendor check to AMD for
> the same Samsung SSD model patterns. Keep LPM behavior unchanged for
> other controller vendors, including Intel.
>
> Leave ATA_QUIRK_NO_NCQ_ON_ATI restricted to ATI, since the reported AMD
> issue concerns LPM rather than NCQ.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=221986
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
Looks OK.
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ata: libata: Correct libata.force parameter documentation
2026-09-18 12:40 ` [PATCH 2/2] ata: libata: Correct libata.force parameter documentation Niklas Cassel
2026-09-18 12:49 ` Niklas Cassel
@ 2026-09-20 4:34 ` Damien Le Moal
1 sibling, 0 replies; 10+ messages in thread
From: Damien Le Moal @ 2026-09-20 4:34 UTC (permalink / raw)
To: Niklas Cassel
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K
On 9/18/26 21:40, Niklas Cassel wrote:
> Align the documented libata.force options with their implementation.
> The force table accepts PIO modes 0 through 6, not mode 7, and ncqati
> controls NCQ generally rather than only queued TRIM.
>
> The max_sec_1024 and max_sec_lba48 options only set transfer size
> limits. Remove the misleading claim that they can also clear them.
>
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
Looks good.
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ata: libata: Correct libata.force parameter documentation
2026-09-18 12:49 ` Niklas Cassel
@ 2026-09-20 4:35 ` Damien Le Moal
2026-09-21 11:26 ` Niklas Cassel
0 siblings, 1 reply; 10+ messages in thread
From: Damien Le Moal @ 2026-09-20 4:35 UTC (permalink / raw)
To: Niklas Cassel
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K
On 9/18/26 21:49, Niklas Cassel wrote:
> On Fri, Sep 18, 2026 at 02:40:33PM +0200, Niklas Cassel wrote:
>> Align the documented libata.force options with their implementation.
>> The force table accepts PIO modes 0 through 6, not mode 7, and ncqati
>> controls NCQ generally rather than only queued TRIM.
>>
>> The max_sec_1024 and max_sec_lba48 options only set transfer size
>> limits. Remove the misleading claim that they can also clear them.
>>
>> Signed-off-by: Niklas Cassel <cassel@kernel.org>
>> ---
>> Documentation/admin-guide/kernel-parameters.txt | 10 ++++------
>> 1 file changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
>> index 33cd30996e47..24459f7ff810 100644
>> --- a/Documentation/admin-guide/kernel-parameters.txt
>> +++ b/Documentation/admin-guide/kernel-parameters.txt
>> @@ -3491,7 +3491,7 @@ Kernel parameters
>>
>> * SATA link speed limit: 1.5Gbps or 3.0Gbps.
>>
>> - * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].
>> + * Transfer mode: pio[0-6], mwdma[0-4] and udma[0-7].
>> udma[/][16,25,33,44,66,100,133] notation is also
>> allowed.
>>
>> @@ -3509,7 +3509,7 @@ Kernel parameters
>>
>> * [no]ncqtrim: Enable or disable queued DSM TRIM.
>>
>> - * [no]ncqati: Enable or disable NCQ trim on ATI chipset.
>> + * [no]ncqati: Enable or disable NCQ on ATI chipsets.
>
> Hmm.. I guess we could theoretically remove the [no]ncqati parameter from
> libata.force.
> If a user wants to enable/disable ncq, they can use the [no]ncq libata.force
> parameter.
>
> However, since this libata.force kernel parameter already exists, I guess it
> might actually be used by someone, so we can't really remove it without
> potentially breaking existing setups, so I guess the easiest thing is just
> to keep it, even if it is not strictly needed.
It can be needed on a machine that has multiple adapters from different vendors.
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation
2026-09-18 12:40 [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
2026-09-18 12:40 ` [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers Niklas Cassel
2026-09-18 12:40 ` [PATCH 2/2] ata: libata: Correct libata.force parameter documentation Niklas Cassel
@ 2026-09-21 11:21 ` Niklas Cassel
2 siblings, 0 replies; 10+ messages in thread
From: Niklas Cassel @ 2026-09-21 11:21 UTC (permalink / raw)
To: Damien Le Moal, Niklas Cassel
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K
On Fri, 18 Sep 2026 14:40:31 +0200, Niklas Cassel wrote:
> A user reports that a Samsung SSD 870 QVO 8TB connected to an AMD 600
> Series chipset SATA controller times out on STANDBY IMMEDIATE during
> system suspend with med_power_with_dipm enabled. The command completes
> with max_performance instead.
>
> Patch 1 extends the existing Samsung LPM quirk from ATI to AMD
> controllers, renaming it to ATA_QUIRK_NO_LPM_ON_ATI_AND_AMD. It keeps the
> same drive model matches and leaves the NCQ quirk restricted to ATI.
> LPM behavior on other controller vendors, including Intel, is unchanged.
> The underlying controller/device interaction has not been root-caused.
>
> [...]
Applied to libata/linux.git (for-7.3-fixes), thanks!
[1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers
https://git.kernel.org/libata/linux/c/e6bae503
[2/2] ata: libata: Correct libata.force parameter documentation
https://git.kernel.org/libata/linux/c/88a0474d
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ata: libata: Correct libata.force parameter documentation
2026-09-20 4:35 ` Damien Le Moal
@ 2026-09-21 11:26 ` Niklas Cassel
0 siblings, 0 replies; 10+ messages in thread
From: Niklas Cassel @ 2026-09-21 11:26 UTC (permalink / raw)
To: Damien Le Moal
Cc: linux-ide, grandmastertriplej, Mario Limonciello,
Natikar, Basavaraj, Shyam Sundar S K
On Sun, Sep 20, 2026 at 01:35:40PM +0900, Damien Le Moal wrote:
> >
> > Hmm.. I guess we could theoretically remove the [no]ncqati parameter from
> > libata.force.
> > If a user wants to enable/disable ncq, they can use the [no]ncq libata.force
> > parameter.
> >
> > However, since this libata.force kernel parameter already exists, I guess it
> > might actually be used by someone, so we can't really remove it without
> > potentially breaking existing setups, so I guess the easiest thing is just
> > to keep it, even if it is not strictly needed.
>
> It can be needed on a machine that has multiple adapters from different vendors.
libata.force parameters can be applied per port, so even for machines with
multiple adapters, it would have been sufficient IMO.
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-09-21 11:26 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-18 12:40 [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
2026-09-18 12:40 ` [PATCH 1/2] ata: libata-core: Extend Samsung LPM quirk to AMD controllers Niklas Cassel
2026-09-19 17:21 ` Mario Limonciello
2026-09-20 4:33 ` Damien Le Moal
2026-09-18 12:40 ` [PATCH 2/2] ata: libata: Correct libata.force parameter documentation Niklas Cassel
2026-09-18 12:49 ` Niklas Cassel
2026-09-20 4:35 ` Damien Le Moal
2026-09-21 11:26 ` Niklas Cassel
2026-09-20 4:34 ` Damien Le Moal
2026-09-21 11:21 ` [PATCH 0/2] ata: Extend Samsung LPM quirk to AMD and fix force documentation Niklas Cassel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).