ide: merge ide_arm and ide_generic host drivers
PATCH 2/2 ide: merge ide_arm and ide_generic host drivers
From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: merge ide_arm and ide_generic host drivers
There is no need for a separate ide_arm host driver nowadays so merge it into ide_generic one.
While at it:
- return -EBUSY from ide_generic_init() if I/O resources are busy
- scale down ide_generic_check_pci_legacy_iobases() for CONFIG_PCI=n
Cc Russell King <[email protected]>
Cc Alexander Schulz <[email protected]>
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/Kconfig | 8 +----- drivers/ide/Makefile | 2 - drivers/ide/ide-generic.c | 18 +++++++++++---- drivers/ide/ide_arm.c | 53 ---------------------------------------------- 4 files changed, 15 insertions(+), 66 deletions(-)
drivers/ide/Kconfig +2 -6
@@ -222,7 +222,8 @@ comment "IDE chipset support/bugfixes" config IDE_GENERIC tristate "generic/default IDE chipset support" - depends on ALPHA || X86 || IA64 || M32R || MIPS + depends on ALPHA || X86 || IA64 || M32R || MIPS || ARCH_RPC || ARCH_SHARK + default ARM && (ARCH_RPC || ARCH_SHARK) help This is the generic IDE driver. This driver attaches to the fixed legacy ports (e.g. on PCs 0x1f0/0x170, 0x1e8/0x168 and
@@ -726,11 +727,6 @@ config BLK_DEV_IDE_TX4939 depends on SOC_TX4939 select BLK_DEV_IDEDMA_SFF -config IDE_ARM - tristate "ARM IDE support" - depends on ARM && (ARCH_RPC || ARCH_SHARK) - default y - config BLK_DEV_IDE_ICSIDE tristate "ICS IDE interface support" depends on ARM && ARCH_ACORN
drivers/ide/Makefile +0 -2
@@ -21,8 +21,6 @@ ide-core-$(CONFIG_IDE_LEGACY) += ide-le obj-$(CONFIG_IDE) += ide-core.o -obj-$(CONFIG_IDE_ARM) += ide_arm.o - obj-$(CONFIG_BLK_DEV_ALI14XX) += ali14xx.o obj-$(CONFIG_BLK_DEV_UMC8672) += umc8672.o obj-$(CONFIG_BLK_DEV_DTC2278) += dtc2278.o
drivers/ide/ide-generic.c +13 -5
@@ -13,7 +13,10 @@#include <linux/ide.h> #include <linux/pci_ids.h> -/* FIXME: convert m32r to use ide_platform host driver */ +/* FIXME: convert arm and m32r to use ide_platform host driver */ +#ifdef CONFIG_ARM +#include <asm/irq.h> +#endif #ifdef CONFIG_M32R #include <asm/m32r.h> #endif
@@ -28,8 +31,11 @@ static const struct ide_port_info ide_ge .host_flags = IDE_HFLAG_NO_DMA, }; -#if defined(CONFIG_PLAT_M32700UT ) || defined(CONFIG_PLAT_MAPPI2 ) \ - || defined(CONFIG_PLAT_OPSPUT ) +#ifdef CONFIG_ARM +static const u16 legacy_bases[] = {0x1f0 }; +static const int legacy_irqs[] = {IRQ_HARDDISK }; +#elif defined(CONFIG_PLAT_M32700UT ) || defined(CONFIG_PLAT_MAPPI2 ) || \ + defined(CONFIG_PLAT_OPSPUT )static const u16 legacy_bases[] = {0x1f0 };static const int legacy_irqs[] = {PLD_IRQ_CFIREQ };#elif defined(CONFIG_PLAT_MAPPI3 )
@@ -45,11 +51,11 @@ static const int legacy_irqs[] = { 14,static void ide_generic_check_pci_legacy_iobases (int *primary,int *secondary) { +#ifdef CONFIG_PCI struct pci_dev *p =NULL ;u16 val;for_each_pci_dev (p) { -if (pci_resource_start (p,0 ) ==0x1f0 ) *primary =1 ;if (pci_resource_start (p,2 ) ==0x170 )
@@ -64,7 +70,6 @@ static void ide_generic_check_pci_legacy/* Intel MPIIX - PIO ATA on non PCI side of bridge */ if (p->vendor ==PCI_VENDOR_ID_INTEL && p->device ==PCI_DEVICE_ID_INTEL_82371MX ) { -pci_read_config_word (p,0x6C , &val);if (val &0x8000 ) {/* ATA port enabled */
@@ -75,6 +80,7 @@ static void ide_generic_check_pci_legacy } } } +#endif }static int __init ide_generic_init (void )
@@ -106,6 +112,7 @@ static int __init ide_generic_init(void)printk (KERN_ERR "%s: I/O resource 0x%lX-0x%lX " "not free.\n" ,DRV_NAME , io_addr, io_addr +7 ); + rc = -EBUSY ;continue ; }
@@ -114,6 +121,7 @@ static int __init ide_generic_init(void)"not free.\n" , DRV_NAME, io_addr + 0x206);release_region (io_addr,8 ); + rc = -EBUSY ;continue ; }
drivers/ide/ide_arm.c deleted +0 -53
53 lines not on this page · raw message