Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'ata-7.0-final' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux

Pull ata fix from Niklas Cassel:

- Add a quirk for JMicron JMB582/JMB585 AHCI controllers such that
they only use 32-bit DMA addresses.

While these controllers do report that they support 64-bit DMA
addresses, a user reports that using 64-bit DMA addresses cause
silent corruption even on modern x86 systems (Arthur)

* tag 'ata-7.0-final' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585

+14
+14
drivers/ata/ahci.c
··· 68 68 /* board IDs for specific chipsets in alphabetical order */ 69 69 board_ahci_al, 70 70 board_ahci_avn, 71 + board_ahci_jmb585, 71 72 board_ahci_mcp65, 72 73 board_ahci_mcp77, 73 74 board_ahci_mcp89, ··· 212 211 .pio_mask = ATA_PIO4, 213 212 .udma_mask = ATA_UDMA6, 214 213 .port_ops = &ahci_avn_ops, 214 + }, 215 + /* JMicron JMB582/585: 64-bit DMA is broken, force 32-bit */ 216 + [board_ahci_jmb585] = { 217 + AHCI_HFLAGS (AHCI_HFLAG_IGN_IRQ_IF_ERR | 218 + AHCI_HFLAG_32BIT_ONLY), 219 + .flags = AHCI_FLAG_COMMON, 220 + .pio_mask = ATA_PIO4, 221 + .udma_mask = ATA_UDMA6, 222 + .port_ops = &ahci_ops, 215 223 }, 216 224 [board_ahci_mcp65] = { 217 225 AHCI_HFLAGS (AHCI_HFLAG_NO_FPDMA_AA | AHCI_HFLAG_NO_PMP | ··· 448 438 { PCI_VDEVICE(INTEL, 0x02d7), board_ahci_pcs_quirk }, /* Comet Lake PCH RAID */ 449 439 /* Elkhart Lake IDs 0x4b60 & 0x4b62 https://sata-io.org/product/8803 not tested yet */ 450 440 { PCI_VDEVICE(INTEL, 0x4b63), board_ahci_pcs_quirk }, /* Elkhart Lake AHCI */ 441 + 442 + /* JMicron JMB582/585: force 32-bit DMA (broken 64-bit implementation) */ 443 + { PCI_VDEVICE(JMICRON, 0x0582), board_ahci_jmb585 }, 444 + { PCI_VDEVICE(JMICRON, 0x0585), board_ahci_jmb585 }, 451 445 452 446 /* JMicron 360/1/3/5/6, match class to avoid IDE function */ 453 447 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,