diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-01-29 20:46:52 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-01-29 20:46:52 +0100 |
commit | c29915fccda96258dbccf49b052ee4ddd7d51169 (patch) | |
tree | 52fb418fe463804a9fc3cba1682300562ec2ef55 /linux/src | |
parent | 0191a6b08f1d0e023994a64079be2d3b764d6232 (diff) |
Disable probing legacy IDE when AHCI driver works
* linux/src/drivers/block/ide.c (default_io_base): Do not qualify const.
(ide_disable_base): New function.
* linux/dev/include/linux/blk.h (ide_disable_base): New declaration.
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Call ide_disable_base
with each I/O BAR of the AHCI PCI card.
Diffstat (limited to 'linux/src')
-rw-r--r-- | linux/src/drivers/block/ide.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/linux/src/drivers/block/ide.c b/linux/src/drivers/block/ide.c index 41a2601..dc20fcb 100644 --- a/linux/src/drivers/block/ide.c +++ b/linux/src/drivers/block/ide.c @@ -325,7 +325,7 @@ #endif /* CONFIG_BLK_DEV_PROMISE */ static const byte ide_hwif_to_major[MAX_HWIFS] = {IDE0_MAJOR, IDE1_MAJOR, IDE2_MAJOR, IDE3_MAJOR}; -static const unsigned short default_io_base[MAX_HWIFS] = {0x1f0, 0x170, 0x1e8, 0x168}; +static unsigned short default_io_base[MAX_HWIFS] = {0x1f0, 0x170, 0x1e8, 0x168}; static const byte default_irqs[MAX_HWIFS] = {14, 15, 11, 10}; static int idebus_parameter; /* holds the "idebus=" parameter */ static int system_bus_speed; /* holds what we think is VESA/PCI bus speed */ @@ -367,6 +367,15 @@ static void set_recovery_timer (ide_hwif_t *hwif) #endif /* DISK_RECOVERY_TIME */ +/* Called by other drivers to disable the legacy IDE driver on a given IDE base. */ +void ide_disable_base(unsigned base) +{ + unsigned i; + for (i = 0; i < MAX_HWIFS; i++) + if (default_io_base[i] == base) + default_io_base[i] = 0; +} + /* * Do not even *think* about calling this! |