From 8e882ba111bb52fbb42c34a265afb97ddd4fcea1 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Mon, 11 Feb 2008 00:32:14 +0100 Subject: ide: introduce CONFIG_BLK_DEV_IDEDMA_SFF option Introduce new option CONFIG_BLK_DEV_IDEDMA_SFF for non-PCI SFF-8038i compatible bus mastering IDE controllers (which there are a few known), thus fixing a hack made for Palmchip BK3710 controller... Signed-off-by: Sergei Shtylyov Cc: Anton Salnikov Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/ide/Kconfig | 9 +++++++-- drivers/ide/ide-dma.c | 14 +++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'drivers') diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index d2c4f06f53c..df752e690e4 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig @@ -378,6 +378,9 @@ config BLK_DEV_IDEPNP would like the kernel to automatically detect and activate it, say Y here. +config BLK_DEV_IDEDMA_SFF + bool + if PCI comment "PCI IDE chipsets support" @@ -459,6 +462,7 @@ config BLK_DEV_RZ1000 config BLK_DEV_IDEDMA_PCI bool select BLK_DEV_IDEPCI + select BLK_DEV_IDEDMA_SFF config BLK_DEV_AEC62XX tristate "AEC62XX chipset support" @@ -999,7 +1003,7 @@ config BLK_DEV_Q40IDE config BLK_DEV_PALMCHIP_BK3710 tristate "Palmchip bk3710 IDE controller support" depends on ARCH_DAVINCI - select BLK_DEV_IDEDMA_PCI + select BLK_DEV_IDEDMA_SFF help Say Y here if you want to support the onchip IDE controller on the TI DaVinci SoC @@ -1107,7 +1111,8 @@ config BLK_DEV_UMC8672 endif config BLK_DEV_IDEDMA - def_bool BLK_DEV_IDEDMA_PCI || BLK_DEV_IDEDMA_PMAC || BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA + def_bool BLK_DEV_IDEDMA_SFF || BLK_DEV_IDEDMA_PMAC || \ + BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA config IDE_ARCH_OBSOLETE_INIT def_bool ALPHA || (ARM && !ARCH_L7200) || BLACKFIN || X86 || IA64 || M32R || MIPS || PARISC || PPC || (SUPERH64 && BLK_DEV_IDEPCI) || SPARC diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index a4bb32883c6..d0e7b537353 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c @@ -198,7 +198,7 @@ int ide_build_sglist(ide_drive_t *drive, struct request *rq) EXPORT_SYMBOL_GPL(ide_build_sglist); -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI +#ifdef CONFIG_BLK_DEV_IDEDMA_SFF /** * ide_build_dmatable - build IDE DMA table * @@ -316,7 +316,7 @@ void ide_destroy_dmatable (ide_drive_t *drive) EXPORT_SYMBOL_GPL(ide_destroy_dmatable); -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI +#ifdef CONFIG_BLK_DEV_IDEDMA_SFF /** * config_drive_for_dma - attempt to activate IDE DMA * @drive: the drive to place in DMA mode @@ -424,7 +424,7 @@ void ide_dma_host_set(ide_drive_t *drive, int on) } EXPORT_SYMBOL_GPL(ide_dma_host_set); -#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ +#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ /** * ide_dma_off_quietly - Generic DMA kill @@ -474,7 +474,7 @@ void ide_dma_on(ide_drive_t *drive) drive->hwif->dma_host_set(drive, 1); } -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI +#ifdef CONFIG_BLK_DEV_IDEDMA_SFF /** * ide_dma_setup - begin a DMA phase * @drive: target device @@ -591,7 +591,7 @@ static int __ide_dma_test_irq(ide_drive_t *drive) } #else static inline int config_drive_for_dma(ide_drive_t *drive) { return 0; } -#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ +#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ int __ide_dma_bad_drive (ide_drive_t *drive) { @@ -840,7 +840,7 @@ void ide_check_dma_crc(ide_drive_t *drive) ide_dma_on(drive); } -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI +#ifdef CONFIG_BLK_DEV_IDEDMA_SFF void ide_dma_lost_irq (ide_drive_t *drive) { printk("%s: DMA interrupt recovery\n", drive->name); @@ -1002,4 +1002,4 @@ void ide_setup_dma(ide_hwif_t *hwif, unsigned long base) } EXPORT_SYMBOL_GPL(ide_setup_dma); -#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ +#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ -- cgit v1.2.3-70-g09d2