diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2008-02-10 18:32:14 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-10 18:32:14 -0500 |
commit | 8e882ba111bb52fbb42c34a265afb97ddd4fcea1 (patch) | |
tree | b7c61b68039f68a3924f6cc81a883753b241b259 /drivers/ide | |
parent | 7b56a937a17d21a266dd0a24053f951f3a92e428 (diff) |
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 <sshtylyov@ru.mvista.com>
Cc: Anton Salnikov <asalnikov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/Kconfig | 9 | ||||
-rw-r--r-- | drivers/ide/ide-dma.c | 14 |
2 files changed, 14 insertions, 9 deletions
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index d2c4f06f53c9..df752e690e47 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -378,6 +378,9 @@ config BLK_DEV_IDEPNP | |||
378 | would like the kernel to automatically detect and activate | 378 | would like the kernel to automatically detect and activate |
379 | it, say Y here. | 379 | it, say Y here. |
380 | 380 | ||
381 | config BLK_DEV_IDEDMA_SFF | ||
382 | bool | ||
383 | |||
381 | if PCI | 384 | if PCI |
382 | 385 | ||
383 | comment "PCI IDE chipsets support" | 386 | comment "PCI IDE chipsets support" |
@@ -459,6 +462,7 @@ config BLK_DEV_RZ1000 | |||
459 | config BLK_DEV_IDEDMA_PCI | 462 | config BLK_DEV_IDEDMA_PCI |
460 | bool | 463 | bool |
461 | select BLK_DEV_IDEPCI | 464 | select BLK_DEV_IDEPCI |
465 | select BLK_DEV_IDEDMA_SFF | ||
462 | 466 | ||
463 | config BLK_DEV_AEC62XX | 467 | config BLK_DEV_AEC62XX |
464 | tristate "AEC62XX chipset support" | 468 | tristate "AEC62XX chipset support" |
@@ -999,7 +1003,7 @@ config BLK_DEV_Q40IDE | |||
999 | config BLK_DEV_PALMCHIP_BK3710 | 1003 | config BLK_DEV_PALMCHIP_BK3710 |
1000 | tristate "Palmchip bk3710 IDE controller support" | 1004 | tristate "Palmchip bk3710 IDE controller support" |
1001 | depends on ARCH_DAVINCI | 1005 | depends on ARCH_DAVINCI |
1002 | select BLK_DEV_IDEDMA_PCI | 1006 | select BLK_DEV_IDEDMA_SFF |
1003 | help | 1007 | help |
1004 | Say Y here if you want to support the onchip IDE controller on the | 1008 | Say Y here if you want to support the onchip IDE controller on the |
1005 | TI DaVinci SoC | 1009 | TI DaVinci SoC |
@@ -1107,7 +1111,8 @@ config BLK_DEV_UMC8672 | |||
1107 | endif | 1111 | endif |
1108 | 1112 | ||
1109 | config BLK_DEV_IDEDMA | 1113 | config BLK_DEV_IDEDMA |
1110 | def_bool BLK_DEV_IDEDMA_PCI || BLK_DEV_IDEDMA_PMAC || BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 1114 | def_bool BLK_DEV_IDEDMA_SFF || BLK_DEV_IDEDMA_PMAC || \ |
1115 | BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | ||
1111 | 1116 | ||
1112 | config IDE_ARCH_OBSOLETE_INIT | 1117 | config IDE_ARCH_OBSOLETE_INIT |
1113 | def_bool ALPHA || (ARM && !ARCH_L7200) || BLACKFIN || X86 || IA64 || M32R || MIPS || PARISC || PPC || (SUPERH64 && BLK_DEV_IDEPCI) || SPARC | 1118 | 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 a4bb32883c6b..d0e7b537353e 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) | |||
198 | 198 | ||
199 | EXPORT_SYMBOL_GPL(ide_build_sglist); | 199 | EXPORT_SYMBOL_GPL(ide_build_sglist); |
200 | 200 | ||
201 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | 201 | #ifdef CONFIG_BLK_DEV_IDEDMA_SFF |
202 | /** | 202 | /** |
203 | * ide_build_dmatable - build IDE DMA table | 203 | * ide_build_dmatable - build IDE DMA table |
204 | * | 204 | * |
@@ -316,7 +316,7 @@ void ide_destroy_dmatable (ide_drive_t *drive) | |||
316 | 316 | ||
317 | EXPORT_SYMBOL_GPL(ide_destroy_dmatable); | 317 | EXPORT_SYMBOL_GPL(ide_destroy_dmatable); |
318 | 318 | ||
319 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | 319 | #ifdef CONFIG_BLK_DEV_IDEDMA_SFF |
320 | /** | 320 | /** |
321 | * config_drive_for_dma - attempt to activate IDE DMA | 321 | * config_drive_for_dma - attempt to activate IDE DMA |
322 | * @drive: the drive to place in DMA mode | 322 | * @drive: the drive to place in DMA mode |
@@ -424,7 +424,7 @@ void ide_dma_host_set(ide_drive_t *drive, int on) | |||
424 | } | 424 | } |
425 | 425 | ||
426 | EXPORT_SYMBOL_GPL(ide_dma_host_set); | 426 | EXPORT_SYMBOL_GPL(ide_dma_host_set); |
427 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | 427 | #endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ |
428 | 428 | ||
429 | /** | 429 | /** |
430 | * ide_dma_off_quietly - Generic DMA kill | 430 | * ide_dma_off_quietly - Generic DMA kill |
@@ -474,7 +474,7 @@ void ide_dma_on(ide_drive_t *drive) | |||
474 | drive->hwif->dma_host_set(drive, 1); | 474 | drive->hwif->dma_host_set(drive, 1); |
475 | } | 475 | } |
476 | 476 | ||
477 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | 477 | #ifdef CONFIG_BLK_DEV_IDEDMA_SFF |
478 | /** | 478 | /** |
479 | * ide_dma_setup - begin a DMA phase | 479 | * ide_dma_setup - begin a DMA phase |
480 | * @drive: target device | 480 | * @drive: target device |
@@ -591,7 +591,7 @@ static int __ide_dma_test_irq(ide_drive_t *drive) | |||
591 | } | 591 | } |
592 | #else | 592 | #else |
593 | static inline int config_drive_for_dma(ide_drive_t *drive) { return 0; } | 593 | static inline int config_drive_for_dma(ide_drive_t *drive) { return 0; } |
594 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | 594 | #endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ |
595 | 595 | ||
596 | int __ide_dma_bad_drive (ide_drive_t *drive) | 596 | int __ide_dma_bad_drive (ide_drive_t *drive) |
597 | { | 597 | { |
@@ -840,7 +840,7 @@ void ide_check_dma_crc(ide_drive_t *drive) | |||
840 | ide_dma_on(drive); | 840 | ide_dma_on(drive); |
841 | } | 841 | } |
842 | 842 | ||
843 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | 843 | #ifdef CONFIG_BLK_DEV_IDEDMA_SFF |
844 | void ide_dma_lost_irq (ide_drive_t *drive) | 844 | void ide_dma_lost_irq (ide_drive_t *drive) |
845 | { | 845 | { |
846 | printk("%s: DMA interrupt recovery\n", drive->name); | 846 | printk("%s: DMA interrupt recovery\n", drive->name); |
@@ -1002,4 +1002,4 @@ void ide_setup_dma(ide_hwif_t *hwif, unsigned long base) | |||
1002 | } | 1002 | } |
1003 | 1003 | ||
1004 | EXPORT_SYMBOL_GPL(ide_setup_dma); | 1004 | EXPORT_SYMBOL_GPL(ide_setup_dma); |
1005 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | 1005 | #endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ |