Commit 8e882ba111bb52fbb42c34a265afb97ddd4fcea1
Committed by
Bartlomiej Zolnierkiewicz
1 parent
7b56a937a1
Exists in
master
and in
4 other branches
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>
Showing 3 changed files with 18 additions and 14 deletions Side-by-side Diff
drivers/ide/Kconfig
... | ... | @@ -378,6 +378,9 @@ |
378 | 378 | would like the kernel to automatically detect and activate |
379 | 379 | it, say Y here. |
380 | 380 | |
381 | +config BLK_DEV_IDEDMA_SFF | |
382 | + bool | |
383 | + | |
381 | 384 | if PCI |
382 | 385 | |
383 | 386 | comment "PCI IDE chipsets support" |
... | ... | @@ -459,6 +462,7 @@ |
459 | 462 | config BLK_DEV_IDEDMA_PCI |
460 | 463 | bool |
461 | 464 | select BLK_DEV_IDEPCI |
465 | + select BLK_DEV_IDEDMA_SFF | |
462 | 466 | |
463 | 467 | config BLK_DEV_AEC62XX |
464 | 468 | tristate "AEC62XX chipset support" |
... | ... | @@ -999,7 +1003,7 @@ |
999 | 1003 | config BLK_DEV_PALMCHIP_BK3710 |
1000 | 1004 | tristate "Palmchip bk3710 IDE controller support" |
1001 | 1005 | depends on ARCH_DAVINCI |
1002 | - select BLK_DEV_IDEDMA_PCI | |
1006 | + select BLK_DEV_IDEDMA_SFF | |
1003 | 1007 | help |
1004 | 1008 | Say Y here if you want to support the onchip IDE controller on the |
1005 | 1009 | TI DaVinci SoC |
... | ... | @@ -1107,7 +1111,8 @@ |
1107 | 1111 | endif |
1108 | 1112 | |
1109 | 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 | 1117 | config IDE_ARCH_OBSOLETE_INIT |
1113 | 1118 | def_bool ALPHA || (ARM && !ARCH_L7200) || BLACKFIN || X86 || IA64 || M32R || MIPS || PARISC || PPC || (SUPERH64 && BLK_DEV_IDEPCI) || SPARC |
drivers/ide/ide-dma.c
... | ... | @@ -198,7 +198,7 @@ |
198 | 198 | |
199 | 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 | 203 | * ide_build_dmatable - build IDE DMA table |
204 | 204 | * |
... | ... | @@ -316,7 +316,7 @@ |
316 | 316 | |
317 | 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 | 321 | * config_drive_for_dma - attempt to activate IDE DMA |
322 | 322 | * @drive: the drive to place in DMA mode |
... | ... | @@ -424,7 +424,7 @@ |
424 | 424 | } |
425 | 425 | |
426 | 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 | 430 | * ide_dma_off_quietly - Generic DMA kill |
... | ... | @@ -474,7 +474,7 @@ |
474 | 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 | 479 | * ide_dma_setup - begin a DMA phase |
480 | 480 | * @drive: target device |
... | ... | @@ -591,7 +591,7 @@ |
591 | 591 | } |
592 | 592 | #else |
593 | 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 | 596 | int __ide_dma_bad_drive (ide_drive_t *drive) |
597 | 597 | { |
... | ... | @@ -840,7 +840,7 @@ |
840 | 840 | ide_dma_on(drive); |
841 | 841 | } |
842 | 842 | |
843 | -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI | |
843 | +#ifdef CONFIG_BLK_DEV_IDEDMA_SFF | |
844 | 844 | void ide_dma_lost_irq (ide_drive_t *drive) |
845 | 845 | { |
846 | 846 | printk("%s: DMA interrupt recovery\n", drive->name); |
... | ... | @@ -1002,5 +1002,5 @@ |
1002 | 1002 | } |
1003 | 1003 | |
1004 | 1004 | EXPORT_SYMBOL_GPL(ide_setup_dma); |
1005 | -#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | |
1005 | +#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ |
include/linux/ide.h
... | ... | @@ -998,8 +998,7 @@ |
998 | 998 | void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int, u8 *); |
999 | 999 | void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *); |
1000 | 1000 | |
1001 | -/* FIXME: palm_bk3710 uses BLK_DEV_IDEDMA_PCI without BLK_DEV_IDEPCI! */ | |
1002 | -#if defined(CONFIG_BLK_DEV_IDEPCI) && defined(CONFIG_BLK_DEV_IDEDMA_PCI) | |
1001 | +#ifdef CONFIG_BLK_DEV_IDEDMA_PCI | |
1003 | 1002 | void ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *); |
1004 | 1003 | #else |
1005 | 1004 | static inline void ide_hwif_setup_dma(ide_hwif_t *hwif, |
... | ... | @@ -1146,7 +1145,7 @@ |
1146 | 1145 | int ide_build_sglist(ide_drive_t *, struct request *); |
1147 | 1146 | void ide_destroy_dmatable(ide_drive_t *); |
1148 | 1147 | |
1149 | -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI | |
1148 | +#ifdef CONFIG_BLK_DEV_IDEDMA_SFF | |
1150 | 1149 | extern int ide_build_dmatable(ide_drive_t *, struct request *); |
1151 | 1150 | extern int ide_release_dma(ide_hwif_t *); |
1152 | 1151 | extern void ide_setup_dma(ide_hwif_t *, unsigned long); |
... | ... | @@ -1157,7 +1156,7 @@ |
1157 | 1156 | extern int __ide_dma_end(ide_drive_t *); |
1158 | 1157 | extern void ide_dma_lost_irq(ide_drive_t *); |
1159 | 1158 | extern void ide_dma_timeout(ide_drive_t *); |
1160 | -#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | |
1159 | +#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ | |
1161 | 1160 | |
1162 | 1161 | #else |
1163 | 1162 | static inline int ide_id_dma_bug(ide_drive_t *drive) { return 0; } |
... | ... | @@ -1171,7 +1170,7 @@ |
1171 | 1170 | static inline void ide_check_dma_crc(ide_drive_t *drive) { ; } |
1172 | 1171 | #endif /* CONFIG_BLK_DEV_IDEDMA */ |
1173 | 1172 | |
1174 | -#ifndef CONFIG_BLK_DEV_IDEDMA_PCI | |
1173 | +#ifndef CONFIG_BLK_DEV_IDEDMA_SFF | |
1175 | 1174 | static inline void ide_release_dma(ide_hwif_t *drive) {;} |
1176 | 1175 | #endif |
1177 | 1176 |