aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ide.h
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-02-02 13:56:31 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-02-02 13:56:31 -0500
commitc413b9b94d9a8e7548cc4b2e04b7df0439ce76fd (patch)
tree5d23110a0d1f87ad0c88fb1746194e532808eaab /include/linux/ide.h
parent1ebf74936b1fccb5b65940f99ccddd74ec4d1fef (diff)
ide: add struct ide_port_info instances to legacy host drivers
* Remove 'struct pci_dev *dev' argument from ide_hwif_setup_dma(). * Un-static ide_hwif_setup_dma() and add CONFIG_BLK_DEV_IDEDMA_PCI=n version. * Add 'const struct ide_port_info *d' argument to ide_device_add[_all](). * Factor out generic ports init from ide_pci_setup_ports() to ide_init_port(), move it to ide-probe.c and call it in in ide_device_add_all() instead of ide_pci_setup_ports(). * Move ->mate setup to ide_device_add_all() from ide_port_init(). * Add IDE_HFLAG_NO_AUTOTUNE host flag for host drivers that don't enable ->autotune currently. * Setup hwif->chipset in ide_init_port() but iff pi->chipset is set (to not override setup done by ide_hwif_configure()). * Add ETRAX host handling to ide_device_add_all(). * cmd640.c: set IDE_HFLAG_ABUSE_* also for CONFIG_BLK_DEV_CMD640_ENHANCED=n. * pmac.c: make pmac_ide_setup_dma() return an error value and move DMA masks setup to pmac_ide_setup_device(). * Add 'struct ide_port_info' instances to legacy host drivers, pass them to ide_device_add() calls and then remove open-coded ports initialization. Reviewed-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index ec10b2a3bb6e..508f7e435cc4 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1016,6 +1016,13 @@ extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *o
1016void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int, u8 *); 1016void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int, u8 *);
1017void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *); 1017void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *);
1018 1018
1019#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
1020void ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *);
1021#else
1022static inline void ide_hwif_setup_dma(ide_hwif_t *hwif,
1023 const struct ide_port_info *d) { }
1024#endif
1025
1019extern void default_hwif_iops(ide_hwif_t *); 1026extern void default_hwif_iops(ide_hwif_t *);
1020extern void default_hwif_mmiops(ide_hwif_t *); 1027extern void default_hwif_mmiops(ide_hwif_t *);
1021extern void default_hwif_transport(ide_hwif_t *); 1028extern void default_hwif_transport(ide_hwif_t *);
@@ -1089,6 +1096,8 @@ enum {
1089 IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28), 1096 IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28),
1090 /* DSC overlap is unsupported */ 1097 /* DSC overlap is unsupported */
1091 IDE_HFLAG_NO_DSC = (1 << 29), 1098 IDE_HFLAG_NO_DSC = (1 << 29),
1099 /* don't autotune PIO */
1100 IDE_HFLAG_NO_AUTOTUNE = (1 << 30),
1092}; 1101};
1093 1102
1094#ifdef CONFIG_BLK_DEV_OFFBOARD 1103#ifdef CONFIG_BLK_DEV_OFFBOARD
@@ -1201,8 +1210,8 @@ void ide_unregister_region(struct gendisk *);
1201 1210
1202void ide_undecoded_slave(ide_drive_t *); 1211void ide_undecoded_slave(ide_drive_t *);
1203 1212
1204int ide_device_add_all(u8 *idx); 1213int ide_device_add_all(u8 *idx, const struct ide_port_info *);
1205int ide_device_add(u8 idx[4]); 1214int ide_device_add(u8 idx[4], const struct ide_port_info *);
1206 1215
1207static inline void *ide_get_hwifdata (ide_hwif_t * hwif) 1216static inline void *ide_get_hwifdata (ide_hwif_t * hwif)
1208{ 1217{