aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-16 16:29:55 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-16 16:29:55 -0400
commit0ae2e178652753ae1797d407755a3505f7c1d2a7 (patch)
treefa725edcfb4b9752ebf2aa49a3e42e158537d4ed /include/linux
parentb8b739d3361c16773a30fe5c0360336bbc19f435 (diff)
ide: remove ->ide_dma_check (take 2)
* Add IDE_HFLAG_TRUST_BIOS_FOR_DMA host flag for host drivers that depend on BIOS for programming device/controller for DMA. Set it in cy82c693, generic, ns87415, opti621 and trm290 host drivers. * Add IDE_HFLAG_VDMA host flag for host drivers using VDMA. Set it in cs5520 host driver. * Teach ide_tune_dma() about IDE_HFLAG_TRUST_BIOS_FOR_DMA flag. * Add generic ide_dma_check() helper and remove all open coded ->ide_dma_check implementations. Fix all places checking for presence of ->ide_dma_check hook to check for ->ide_dma_on instead. * Remove no longer needed code from config_drive_for_dma(). * Make ide_tune_dma() static. v2: * Fix config_drive_for_dma() return values. * Fix ide-dma.c build for CONFIG_BLK_DEV_IDEDMA_PCI=n by adding dummy config_drive_for_dma() inline. * Fix IDE_HFLAG_TRUST_BIOS_FOR_DMA handling in ide_dma_check(). * Fix init_hwif_it8213() comment. There should be no functionality changes caused by this patch. Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ide.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 86c5907db2a4..c144c7f2605a 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -736,7 +736,6 @@ typedef struct hwif_s {
736 void (*dma_exec_cmd)(ide_drive_t *, u8); 736 void (*dma_exec_cmd)(ide_drive_t *, u8);
737 void (*dma_start)(ide_drive_t *); 737 void (*dma_start)(ide_drive_t *);
738 int (*ide_dma_end)(ide_drive_t *drive); 738 int (*ide_dma_end)(ide_drive_t *drive);
739 int (*ide_dma_check)(ide_drive_t *drive);
740 int (*ide_dma_on)(ide_drive_t *drive); 739 int (*ide_dma_on)(ide_drive_t *drive);
741 void (*dma_off_quietly)(ide_drive_t *drive); 740 void (*dma_off_quietly)(ide_drive_t *drive);
742 int (*ide_dma_test_irq)(ide_drive_t *drive); 741 int (*ide_dma_test_irq)(ide_drive_t *drive);
@@ -1256,6 +1255,10 @@ enum {
1256 IDE_HFLAG_POST_SET_MODE = (1 << 8), 1255 IDE_HFLAG_POST_SET_MODE = (1 << 8),
1257 /* don't program host/device for the transfer mode ("smart" hosts) */ 1256 /* don't program host/device for the transfer mode ("smart" hosts) */
1258 IDE_HFLAG_NO_SET_MODE = (1 << 9), 1257 IDE_HFLAG_NO_SET_MODE = (1 << 9),
1258 /* trust BIOS for programming chipset/device for DMA */
1259 IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10),
1260 /* host uses VDMA */
1261 IDE_HFLAG_VDMA = (1 << 11),
1259}; 1262};
1260 1263
1261typedef struct ide_pci_device_s { 1264typedef struct ide_pci_device_s {
@@ -1303,7 +1306,6 @@ static inline u8 ide_max_dma_mode(ide_drive_t *drive)
1303 return ide_find_dma_mode(drive, XFER_UDMA_6); 1306 return ide_find_dma_mode(drive, XFER_UDMA_6);
1304} 1307}
1305 1308
1306int ide_tune_dma(ide_drive_t *);
1307void ide_dma_off(ide_drive_t *); 1309void ide_dma_off(ide_drive_t *);
1308void ide_dma_verbose(ide_drive_t *); 1310void ide_dma_verbose(ide_drive_t *);
1309int ide_set_dma(ide_drive_t *); 1311int ide_set_dma(ide_drive_t *);
@@ -1330,7 +1332,6 @@ extern void ide_dma_timeout(ide_drive_t *);
1330#else 1332#else
1331static inline u8 ide_find_dma_mode(ide_drive_t *drive, u8 speed) { return 0; } 1333static inline u8 ide_find_dma_mode(ide_drive_t *drive, u8 speed) { return 0; }
1332static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; } 1334static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; }
1333static inline int ide_tune_dma(ide_drive_t *drive) { return 0; }
1334static inline void ide_dma_off(ide_drive_t *drive) { ; } 1335static inline void ide_dma_off(ide_drive_t *drive) { ; }
1335static inline void ide_dma_verbose(ide_drive_t *drive) { ; } 1336static inline void ide_dma_verbose(ide_drive_t *drive) { ; }
1336static inline int ide_set_dma(ide_drive_t *drive) { return 1; } 1337static inline int ide_set_dma(ide_drive_t *drive) { return 1; }