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

ata: ahci: Add support for AMD A85 FCH (Hudson D4)

Add support for the AMD A85 FCH (Hudson D4) AHCI adapter.

Since this adapter does not require the default 200 ms debounce delay
in sata_link_resume(), create a new board board_ahci_no_debounce_delay
with the link flag ATA_LFLAG_NO_DEBOUNCE_DELAY, and, for now, configure
the AMD A85 FCH (Hudson D4) to use it. On the ASUS F2A85-M PRO it
reduces the Linux kernel boot time by the expected 200 ms from 787 ms
to 585 ms.

Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>

authored by

Paul Menzel and committed by
Damien Le Moal
a17ab7ab b9ba367c

+9
+9
drivers/ata/ahci.c
··· 51 51 board_ahci, 52 52 board_ahci_ign_iferr, 53 53 board_ahci_mobile, 54 + board_ahci_no_debounce_delay, 54 55 board_ahci_nomsi, 55 56 board_ahci_noncq, 56 57 board_ahci_nosntf, ··· 138 137 [board_ahci_mobile] = { 139 138 AHCI_HFLAGS (AHCI_HFLAG_IS_MOBILE), 140 139 .flags = AHCI_FLAG_COMMON, 140 + .pio_mask = ATA_PIO4, 141 + .udma_mask = ATA_UDMA6, 142 + .port_ops = &ahci_ops, 143 + }, 144 + [board_ahci_no_debounce_delay] = { 145 + .flags = AHCI_FLAG_COMMON, 146 + .link_flags = ATA_LFLAG_NO_DEBOUNCE_DELAY, 141 147 .pio_mask = ATA_PIO4, 142 148 .udma_mask = ATA_UDMA6, 143 149 .port_ops = &ahci_ops, ··· 445 437 board_ahci_al }, 446 438 /* AMD */ 447 439 { PCI_VDEVICE(AMD, 0x7800), board_ahci }, /* AMD Hudson-2 */ 440 + { PCI_VDEVICE(AMD, 0x7801), board_ahci_no_debounce_delay }, /* AMD Hudson-2 (AHCI mode) */ 448 441 { PCI_VDEVICE(AMD, 0x7900), board_ahci }, /* AMD CZ */ 449 442 { PCI_VDEVICE(AMD, 0x7901), board_ahci_mobile }, /* AMD Green Sardine */ 450 443 /* AMD is using RAID class only for ahci controllers */