From 6b28e0e7a07353544de517c2c06357260637a6df Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Tue, 8 Sep 2026 14:06:00 -0500 Subject: [PATCH] Revert "ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585" 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 Signed-off-by: Mario Limonciello Link: https://lore.kernel.org/r/20260908190600.226485-3-mario.limonciello@amd.com Signed-off-by: Niklas Cassel --- drivers/ata/ahci.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index d1cdbf86da78..4466191dd7f6 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -69,7 +69,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, @@ -214,15 +213,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), @@ -955,14 +945,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),