diff options
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r-- | include/linux/ide.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h index a7d8b4bc7681..02a27e8cbad2 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -681,7 +681,7 @@ typedef struct hwif_s { | |||
681 | u8 straight8; /* Alan's straight 8 check */ | 681 | u8 straight8; /* Alan's straight 8 check */ |
682 | u8 bus_state; /* power state of the IDE bus */ | 682 | u8 bus_state; /* power state of the IDE bus */ |
683 | 683 | ||
684 | u8 host_flags; | 684 | u16 host_flags; |
685 | 685 | ||
686 | u8 pio_mask; | 686 | u8 pio_mask; |
687 | 687 | ||
@@ -702,10 +702,10 @@ typedef struct hwif_s { | |||
702 | #if 0 | 702 | #if 0 |
703 | ide_hwif_ops_t *hwifops; | 703 | ide_hwif_ops_t *hwifops; |
704 | #else | 704 | #else |
705 | /* routine to set PIO mode for drives */ | 705 | /* routine to program host for PIO mode */ |
706 | void (*set_pio_mode)(ide_drive_t *, const u8); | 706 | void (*set_pio_mode)(ide_drive_t *, const u8); |
707 | /* routine to retune DMA modes for drives */ | 707 | /* routine to program host for DMA mode */ |
708 | int (*speedproc)(ide_drive_t *, const u8); | 708 | void (*set_dma_mode)(ide_drive_t *, const u8); |
709 | /* tweaks hardware to select drive */ | 709 | /* tweaks hardware to select drive */ |
710 | void (*selectproc)(ide_drive_t *); | 710 | void (*selectproc)(ide_drive_t *); |
711 | /* chipset polling based on hba specifics */ | 711 | /* chipset polling based on hba specifics */ |
@@ -1257,6 +1257,10 @@ enum { | |||
1257 | * for hosts which have separate PIO and DMA timings (ie. PMAC) | 1257 | * for hosts which have separate PIO and DMA timings (ie. PMAC) |
1258 | */ | 1258 | */ |
1259 | IDE_HFLAG_SET_PIO_MODE_KEEP_DMA = (1 << 7), | 1259 | IDE_HFLAG_SET_PIO_MODE_KEEP_DMA = (1 << 7), |
1260 | /* program host for the transfer mode after programming device */ | ||
1261 | IDE_HFLAG_POST_SET_MODE = (1 << 8), | ||
1262 | /* don't program host/device for the transfer mode ("smart" hosts) */ | ||
1263 | IDE_HFLAG_NO_SET_MODE = (1 << 9), | ||
1260 | }; | 1264 | }; |
1261 | 1265 | ||
1262 | typedef struct ide_pci_device_s { | 1266 | typedef struct ide_pci_device_s { |
@@ -1273,7 +1277,7 @@ typedef struct ide_pci_device_s { | |||
1273 | u8 bootable; | 1277 | u8 bootable; |
1274 | unsigned int extra; | 1278 | unsigned int extra; |
1275 | struct ide_pci_device_s *next; | 1279 | struct ide_pci_device_s *next; |
1276 | u8 host_flags; | 1280 | u16 host_flags; |
1277 | u8 pio_mask; | 1281 | u8 pio_mask; |
1278 | u8 udma_mask; | 1282 | u8 udma_mask; |
1279 | } ide_pci_device_t; | 1283 | } ide_pci_device_t; |
@@ -1414,6 +1418,9 @@ unsigned int ide_pio_cycle_time(ide_drive_t *, u8); | |||
1414 | u8 ide_get_best_pio_mode(ide_drive_t *, u8, u8); | 1418 | u8 ide_get_best_pio_mode(ide_drive_t *, u8, u8); |
1415 | extern const ide_pio_timings_t ide_pio_timings[6]; | 1419 | extern const ide_pio_timings_t ide_pio_timings[6]; |
1416 | 1420 | ||
1421 | int ide_set_pio_mode(ide_drive_t *, u8); | ||
1422 | int ide_set_dma_mode(ide_drive_t *, u8); | ||
1423 | |||
1417 | void ide_set_pio(ide_drive_t *, u8); | 1424 | void ide_set_pio(ide_drive_t *, u8); |
1418 | 1425 | ||
1419 | static inline void ide_set_max_pio(ide_drive_t *drive) | 1426 | static inline void ide_set_max_pio(ide_drive_t *drive) |