[SRU][R][PATCH 3/3] Revert "ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585"

Yo-Jung Leo Lin (AMD) Leo.Lin at amd.com
Tue Sep 29 06:34:47 UTC 2026


From: Mario Limonciello <mario.limonciello at amd.com>

BugLink: https://bugs.launchpad.net/bugs/2166838

This reverts commit 105c42566a550e2d05fc14f763216a8765ee5d0e.

The 32-bit quirk was incorrectly applied to JMicron JMicron JMB582/JMB585,
but it turns out that the root cause was actually a problem with BIOS
configuration of PCIe root ports, enabling a features that causes problems
with 64-bit DMA.

This problem has now been fixed in commit 4fde44822512 ("x86/PCI: Disable
enhanced atomics on AMD NBIO 7.7 and 7.11").

Since the real root cause has now been fixed, we can revert this incorrect
quirk.

Cc: Arthur Husband <artmoty at gmail.com>
Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
Link: https://lore.kernel.org/r/20260908190600.226485-3-mario.limonciello@amd.com
Signed-off-by: Niklas Cassel <cassel at kernel.org>
(cherry picked from commit 6b28e0e7a07353544de517c2c06357260637a6df linux-next)
Signed-off-by: Yo-Jung Leo Lin (AMD) <Leo.Lin at amd.com>
---
 drivers/ata/ahci.c | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 0112b58206349..8b28dc29ca232 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -68,7 +68,6 @@ enum board_ids {
 	/* board IDs for specific chipsets in alphabetical order */
 	board_ahci_al,
 	board_ahci_avn,
-	board_ahci_jmb585,
 	board_ahci_mcp65,
 	board_ahci_mcp77,
 	board_ahci_mcp89,
@@ -213,15 +212,6 @@ static const struct ata_port_info ahci_port_info[] = {
 		.udma_mask	= ATA_UDMA6,
 		.port_ops	= &ahci_avn_ops,
 	},
-	/* JMicron JMB582/585: 64-bit DMA is broken, force 32-bit */
-	[board_ahci_jmb585] = {
-		AHCI_HFLAGS	(AHCI_HFLAG_IGN_IRQ_IF_ERR |
-				 AHCI_HFLAG_32BIT_ONLY),
-		.flags		= AHCI_FLAG_COMMON,
-		.pio_mask	= ATA_PIO4,
-		.udma_mask	= ATA_UDMA6,
-		.port_ops	= &ahci_ops,
-	},
 	[board_ahci_mcp65] = {
 		AHCI_HFLAGS	(AHCI_HFLAG_NO_FPDMA_AA | AHCI_HFLAG_NO_PMP |
 				 AHCI_HFLAG_YES_NCQ),
@@ -954,14 +944,6 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 		/* Elkhart Lake AHCI */
 		PCI_VDEVICE(INTEL, 0x4b63),
 		.driver_data = board_ahci_pcs_quirk,
-	}, {
-		/* JMicron JMB582/585: force 32-bit DMA (broken 64-bit implementation) */
-		PCI_VDEVICE(JMICRON, 0x0582),
-		.driver_data = board_ahci_jmb585,
-
-	}, {
-		PCI_VDEVICE(JMICRON, 0x0585),
-		.driver_data = board_ahci_jmb585,
 	}, {
 		/* JMicron 360/1/3/5/6, match class to avoid IDE function */
 		PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID),
-- 
2.43.0




More information about the kernel-team mailing list