aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/at91_ide.c2
-rw-r--r--drivers/ide/au1xxx-ide.c4
-rw-r--r--drivers/ide/buddha.c4
-rw-r--r--drivers/ide/cmd640.c2
-rw-r--r--drivers/ide/cs5520.c2
-rw-r--r--drivers/ide/delkin_cb.c2
-rw-r--r--drivers/ide/falconide.c4
-rw-r--r--drivers/ide/gayle.c4
-rw-r--r--drivers/ide/icside.c6
-rw-r--r--drivers/ide/ide-4drives.c2
-rw-r--r--drivers/ide/ide-cs.c2
-rw-r--r--drivers/ide/ide-generic.c2
-rw-r--r--drivers/ide/ide-h8300.c6
-rw-r--r--drivers/ide/ide-legacy.c4
-rw-r--r--drivers/ide/ide-pnp.c2
-rw-r--r--drivers/ide/ide-probe.c10
-rw-r--r--drivers/ide/ide_platform.c4
-rw-r--r--drivers/ide/macide.c4
-rw-r--r--drivers/ide/palm_bk3710.c2
-rw-r--r--drivers/ide/pmac.c11
-rw-r--r--drivers/ide/q40ide.c6
-rw-r--r--drivers/ide/rapide.c4
-rw-r--r--drivers/ide/scc_pata.c2
-rw-r--r--drivers/ide/setup-pci.c16
-rw-r--r--drivers/ide/sgiioc4.c4
-rw-r--r--drivers/ide/tx4938ide.c2
-rw-r--r--drivers/ide/tx4939ide.c2
-rw-r--r--include/linux/ide.h14
28 files changed, 65 insertions, 64 deletions
diff --git a/drivers/ide/at91_ide.c b/drivers/ide/at91_ide.c
index 11fe1ffdff76..fc0949a8cfde 100644
--- a/drivers/ide/at91_ide.c
+++ b/drivers/ide/at91_ide.c
@@ -247,7 +247,7 @@ irqreturn_t at91_irq_handler(int irq, void *dev_id)
247static int __init at91_ide_probe(struct platform_device *pdev) 247static int __init at91_ide_probe(struct platform_device *pdev)
248{ 248{
249 int ret; 249 int ret;
250 hw_regs_t hw, *hws[] = { &hw }; 250 struct ide_hw hw, *hws[] = { &hw };
251 struct ide_host *host; 251 struct ide_host *host;
252 struct resource *res; 252 struct resource *res;
253 unsigned long tf_base = 0, ctl_base = 0; 253 unsigned long tf_base = 0, ctl_base = 0;
diff --git a/drivers/ide/au1xxx-ide.c b/drivers/ide/au1xxx-ide.c
index 32f5be686018..58121bd6c115 100644
--- a/drivers/ide/au1xxx-ide.c
+++ b/drivers/ide/au1xxx-ide.c
@@ -449,7 +449,7 @@ static int auide_ddma_init(ide_hwif_t *hwif, const struct ide_port_info *d)
449} 449}
450#endif 450#endif
451 451
452static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif) 452static void auide_setup_ports(struct ide_hw *hw, _auide_hwif *ahwif)
453{ 453{
454 int i; 454 int i;
455 unsigned long *ata_regs = hw->io_ports_array; 455 unsigned long *ata_regs = hw->io_ports_array;
@@ -508,7 +508,7 @@ static int au_ide_probe(struct platform_device *dev)
508 struct resource *res; 508 struct resource *res;
509 struct ide_host *host; 509 struct ide_host *host;
510 int ret = 0; 510 int ret = 0;
511 hw_regs_t hw, *hws[] = { &hw }; 511 struct ide_hw hw, *hws[] = { &hw };
512 512
513#if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA) 513#if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA)
514 char *mode = "MWDMA2"; 514 char *mode = "MWDMA2";
diff --git a/drivers/ide/buddha.c b/drivers/ide/buddha.c
index 0450652cdabb..e3c6a5913305 100644
--- a/drivers/ide/buddha.c
+++ b/drivers/ide/buddha.c
@@ -121,7 +121,7 @@ static int xsurf_ack_intr(ide_hwif_t *hwif)
121 return 1; 121 return 1;
122} 122}
123 123
124static void __init buddha_setup_ports(hw_regs_t *hw, unsigned long base, 124static void __init buddha_setup_ports(struct ide_hw *hw, unsigned long base,
125 unsigned long ctl, unsigned long irq_port, 125 unsigned long ctl, unsigned long irq_port,
126 ide_ack_intr_t *ack_intr) 126 ide_ack_intr_t *ack_intr)
127{ 127{
@@ -160,7 +160,7 @@ static int __init buddha_init(void)
160 160
161 while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { 161 while ((z = zorro_find_device(ZORRO_WILDCARD, z))) {
162 unsigned long board; 162 unsigned long board;
163 hw_regs_t hw[MAX_NUM_HWIFS], *hws[MAX_NUM_HWIFS]; 163 struct ide_hw hw[MAX_NUM_HWIFS], *hws[MAX_NUM_HWIFS];
164 164
165 if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) { 165 if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) {
166 buddha_num_hwifs = BUDDHA_NUM_HWIFS; 166 buddha_num_hwifs = BUDDHA_NUM_HWIFS;
diff --git a/drivers/ide/cmd640.c b/drivers/ide/cmd640.c
index edb3a7a35c80..1683ed5c7329 100644
--- a/drivers/ide/cmd640.c
+++ b/drivers/ide/cmd640.c
@@ -708,7 +708,7 @@ static int __init cmd640x_init(void)
708 int second_port_cmd640 = 0, rc; 708 int second_port_cmd640 = 0, rc;
709 const char *bus_type, *port2; 709 const char *bus_type, *port2;
710 u8 b, cfr; 710 u8 b, cfr;
711 hw_regs_t hw[2], *hws[2]; 711 struct ide_hw hw[2], *hws[2];
712 712
713 if (cmd640_vlb && probe_for_cmd640_vlb()) { 713 if (cmd640_vlb && probe_for_cmd640_vlb()) {
714 bus_type = "VLB"; 714 bus_type = "VLB";
diff --git a/drivers/ide/cs5520.c b/drivers/ide/cs5520.c
index a9023d7843f2..bd066bb9d611 100644
--- a/drivers/ide/cs5520.c
+++ b/drivers/ide/cs5520.c
@@ -110,7 +110,7 @@ static const struct ide_port_info cyrix_chipset __devinitdata = {
110static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id) 110static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id)
111{ 111{
112 const struct ide_port_info *d = &cyrix_chipset; 112 const struct ide_port_info *d = &cyrix_chipset;
113 hw_regs_t hw[2], *hws[] = { NULL, NULL }; 113 struct ide_hw hw[2], *hws[] = { NULL, NULL };
114 114
115 ide_setup_pci_noise(dev, d); 115 ide_setup_pci_noise(dev, d);
116 116
diff --git a/drivers/ide/delkin_cb.c b/drivers/ide/delkin_cb.c
index d4a76f22ed15..1e10eba62ceb 100644
--- a/drivers/ide/delkin_cb.c
+++ b/drivers/ide/delkin_cb.c
@@ -77,7 +77,7 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
77 struct ide_host *host; 77 struct ide_host *host;
78 unsigned long base; 78 unsigned long base;
79 int rc; 79 int rc;
80 hw_regs_t hw, *hws[] = { &hw }; 80 struct ide_hw hw, *hws[] = { &hw };
81 81
82 rc = pci_enable_device(dev); 82 rc = pci_enable_device(dev);
83 if (rc) { 83 if (rc) {
diff --git a/drivers/ide/falconide.c b/drivers/ide/falconide.c
index adb5b0cf7626..22fa27389c3b 100644
--- a/drivers/ide/falconide.c
+++ b/drivers/ide/falconide.c
@@ -114,7 +114,7 @@ static const struct ide_port_info falconide_port_info = {
114 .chipset = ide_generic, 114 .chipset = ide_generic,
115}; 115};
116 116
117static void __init falconide_setup_ports(hw_regs_t *hw) 117static void __init falconide_setup_ports(struct ide_hw *hw)
118{ 118{
119 int i; 119 int i;
120 120
@@ -138,7 +138,7 @@ static void __init falconide_setup_ports(hw_regs_t *hw)
138static int __init falconide_init(void) 138static int __init falconide_init(void)
139{ 139{
140 struct ide_host *host; 140 struct ide_host *host;
141 hw_regs_t hw, *hws[] = { &hw }; 141 struct ide_hw hw, *hws[] = { &hw };
142 int rc; 142 int rc;
143 143
144 if (!MACH_IS_ATARI || !ATARIHW_PRESENT(IDE)) 144 if (!MACH_IS_ATARI || !ATARIHW_PRESENT(IDE))
diff --git a/drivers/ide/gayle.c b/drivers/ide/gayle.c
index 253ff34afd8f..4451a6a5dfe0 100644
--- a/drivers/ide/gayle.c
+++ b/drivers/ide/gayle.c
@@ -88,7 +88,7 @@ static int gayle_ack_intr_a1200(ide_hwif_t *hwif)
88 return 1; 88 return 1;
89} 89}
90 90
91static void __init gayle_setup_ports(hw_regs_t *hw, unsigned long base, 91static void __init gayle_setup_ports(struct ide_hw *hw, unsigned long base,
92 unsigned long ctl, unsigned long irq_port, 92 unsigned long ctl, unsigned long irq_port,
93 ide_ack_intr_t *ack_intr) 93 ide_ack_intr_t *ack_intr)
94{ 94{
@@ -125,7 +125,7 @@ static int __init gayle_init(void)
125 unsigned long base, ctrlport, irqport; 125 unsigned long base, ctrlport, irqport;
126 ide_ack_intr_t *ack_intr; 126 ide_ack_intr_t *ack_intr;
127 int a4000, i, rc; 127 int a4000, i, rc;
128 hw_regs_t hw[GAYLE_NUM_HWIFS], *hws[GAYLE_NUM_HWIFS]; 128 struct ide_hw hw[GAYLE_NUM_HWIFS], *hws[GAYLE_NUM_HWIFS];
129 129
130 if (!MACH_IS_AMIGA) 130 if (!MACH_IS_AMIGA)
131 return -ENODEV; 131 return -ENODEV;
diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c
index 6223b80beb35..c5269fa1f733 100644
--- a/drivers/ide/icside.c
+++ b/drivers/ide/icside.c
@@ -381,7 +381,7 @@ static int icside_dma_off_init(ide_hwif_t *hwif, const struct ide_port_info *d)
381 return -EOPNOTSUPP; 381 return -EOPNOTSUPP;
382} 382}
383 383
384static void icside_setup_ports(hw_regs_t *hw, void __iomem *base, 384static void icside_setup_ports(struct ide_hw *hw, void __iomem *base,
385 struct cardinfo *info, struct expansion_card *ec) 385 struct cardinfo *info, struct expansion_card *ec)
386{ 386{
387 unsigned long port = (unsigned long)base + info->dataoffset; 387 unsigned long port = (unsigned long)base + info->dataoffset;
@@ -410,7 +410,7 @@ icside_register_v5(struct icside_state *state, struct expansion_card *ec)
410{ 410{
411 void __iomem *base; 411 void __iomem *base;
412 struct ide_host *host; 412 struct ide_host *host;
413 hw_regs_t hw, *hws[] = { &hw }; 413 struct ide_hw hw, *hws[] = { &hw };
414 int ret; 414 int ret;
415 415
416 base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0); 416 base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
@@ -467,7 +467,7 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
467 struct ide_host *host; 467 struct ide_host *host;
468 unsigned int sel = 0; 468 unsigned int sel = 0;
469 int ret; 469 int ret;
470 hw_regs_t hw[2], *hws[] = { &hw[0], &hw[1] }; 470 struct ide_hw hw[2], *hws[] = { &hw[0], &hw[1] };
471 struct ide_port_info d = icside_v6_port_info; 471 struct ide_port_info d = icside_v6_port_info;
472 472
473 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0); 473 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
diff --git a/drivers/ide/ide-4drives.c b/drivers/ide/ide-4drives.c
index 189b8bd9957e..979d342c338a 100644
--- a/drivers/ide/ide-4drives.c
+++ b/drivers/ide/ide-4drives.c
@@ -31,7 +31,7 @@ static const struct ide_port_info ide_4drives_port_info = {
31static int __init ide_4drives_init(void) 31static int __init ide_4drives_init(void)
32{ 32{
33 unsigned long base = 0x1f0, ctl = 0x3f6; 33 unsigned long base = 0x1f0, ctl = 0x3f6;
34 hw_regs_t hw, *hws[] = { &hw, &hw }; 34 struct ide_hw hw, *hws[] = { &hw, &hw };
35 35
36 if (probe_4drives == 0) 36 if (probe_4drives == 0)
37 return -ENODEV; 37 return -ENODEV;
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index 63309ad04cb2..527908ff298c 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -164,7 +164,7 @@ static struct ide_host *idecs_register(unsigned long io, unsigned long ctl,
164 struct ide_host *host; 164 struct ide_host *host;
165 ide_hwif_t *hwif; 165 ide_hwif_t *hwif;
166 int i, rc; 166 int i, rc;
167 hw_regs_t hw, *hws[] = { &hw }; 167 struct ide_hw hw, *hws[] = { &hw };
168 168
169 if (!request_region(io, 8, DRV_NAME)) { 169 if (!request_region(io, 8, DRV_NAME)) {
170 printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX not free.\n", 170 printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX not free.\n",
diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
index 0d40848540d4..54d7c4685d23 100644
--- a/drivers/ide/ide-generic.c
+++ b/drivers/ide/ide-generic.c
@@ -86,7 +86,7 @@ static void ide_generic_check_pci_legacy_iobases(int *primary, int *secondary)
86 86
87static int __init ide_generic_init(void) 87static int __init ide_generic_init(void)
88{ 88{
89 hw_regs_t hw, *hws[] = { &hw }; 89 struct ide_hw hw, *hws[] = { &hw };
90 unsigned long io_addr; 90 unsigned long io_addr;
91 int i, rc = 0, primary = 0, secondary = 0; 91 int i, rc = 0, primary = 0, secondary = 0;
92 92
diff --git a/drivers/ide/ide-h8300.c b/drivers/ide/ide-h8300.c
index 0b5fabe2806d..520f42c5445a 100644
--- a/drivers/ide/ide-h8300.c
+++ b/drivers/ide/ide-h8300.c
@@ -64,11 +64,11 @@ static const struct ide_tp_ops h8300_tp_ops = {
64 64
65#define H8300_IDE_GAP (2) 65#define H8300_IDE_GAP (2)
66 66
67static inline void hw_setup(hw_regs_t *hw) 67static inline void hw_setup(struct ide_hw *hw)
68{ 68{
69 int i; 69 int i;
70 70
71 memset(hw, 0, sizeof(hw_regs_t)); 71 memset(hw, 0, sizeof(*hw));
72 for (i = 0; i <= 7; i++) 72 for (i = 0; i <= 7; i++)
73 hw->io_ports_array[i] = CONFIG_H8300_IDE_BASE + H8300_IDE_GAP*i; 73 hw->io_ports_array[i] = CONFIG_H8300_IDE_BASE + H8300_IDE_GAP*i;
74 hw->io_ports.ctl_addr = CONFIG_H8300_IDE_ALT; 74 hw->io_ports.ctl_addr = CONFIG_H8300_IDE_ALT;
@@ -83,7 +83,7 @@ static const struct ide_port_info h8300_port_info = {
83 83
84static int __init h8300_ide_init(void) 84static int __init h8300_ide_init(void)
85{ 85{
86 hw_regs_t hw, *hws[] = { &hw }; 86 struct ide_hw hw, *hws[] = { &hw };
87 87
88 printk(KERN_INFO DRV_NAME ": H8/300 generic IDE interface\n"); 88 printk(KERN_INFO DRV_NAME ": H8/300 generic IDE interface\n");
89 89
diff --git a/drivers/ide/ide-legacy.c b/drivers/ide/ide-legacy.c
index 98389e539909..b9654a7bb7be 100644
--- a/drivers/ide/ide-legacy.c
+++ b/drivers/ide/ide-legacy.c
@@ -1,7 +1,7 @@
1#include <linux/kernel.h> 1#include <linux/kernel.h>
2#include <linux/ide.h> 2#include <linux/ide.h>
3 3
4static void ide_legacy_init_one(hw_regs_t **hws, hw_regs_t *hw, 4static void ide_legacy_init_one(struct ide_hw **hws, struct ide_hw *hw,
5 u8 port_no, const struct ide_port_info *d, 5 u8 port_no, const struct ide_port_info *d,
6 unsigned long config) 6 unsigned long config)
7{ 7{
@@ -40,7 +40,7 @@ static void ide_legacy_init_one(hw_regs_t **hws, hw_regs_t *hw,
40 40
41int ide_legacy_device_add(const struct ide_port_info *d, unsigned long config) 41int ide_legacy_device_add(const struct ide_port_info *d, unsigned long config)
42{ 42{
43 hw_regs_t hw[2], *hws[] = { NULL, NULL }; 43 struct ide_hw hw[2], *hws[] = { NULL, NULL };
44 44
45 memset(&hw, 0, sizeof(hw)); 45 memset(&hw, 0, sizeof(hw));
46 46
diff --git a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c
index 6bca0f05ee90..017b1df3b805 100644
--- a/drivers/ide/ide-pnp.c
+++ b/drivers/ide/ide-pnp.c
@@ -37,7 +37,7 @@ static int idepnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
37 struct ide_host *host; 37 struct ide_host *host;
38 unsigned long base, ctl; 38 unsigned long base, ctl;
39 int rc; 39 int rc;
40 hw_regs_t hw, *hws[] = { &hw }; 40 struct ide_hw hw, *hws[] = { &hw };
41 41
42 printk(KERN_INFO DRV_NAME ": generic PnP IDE interface\n"); 42 printk(KERN_INFO DRV_NAME ": generic PnP IDE interface\n");
43 43
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 6c7451a6e609..29363829a3fe 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -1173,7 +1173,7 @@ static void ide_init_port_data(ide_hwif_t *hwif, unsigned int index)
1173 ide_port_init_devices_data(hwif); 1173 ide_port_init_devices_data(hwif);
1174} 1174}
1175 1175
1176static void ide_init_port_hw(ide_hwif_t *hwif, hw_regs_t *hw) 1176static void ide_init_port_hw(ide_hwif_t *hwif, struct ide_hw *hw)
1177{ 1177{
1178 memcpy(&hwif->io_ports, &hw->io_ports, sizeof(hwif->io_ports)); 1178 memcpy(&hwif->io_ports, &hw->io_ports, sizeof(hwif->io_ports));
1179 hwif->irq = hw->irq; 1179 hwif->irq = hw->irq;
@@ -1261,8 +1261,8 @@ out_nomem:
1261 return -ENOMEM; 1261 return -ENOMEM;
1262} 1262}
1263 1263
1264struct ide_host *ide_host_alloc(const struct ide_port_info *d, hw_regs_t **hws, 1264struct ide_host *ide_host_alloc(const struct ide_port_info *d,
1265 unsigned int n_ports) 1265 struct ide_hw **hws, unsigned int n_ports)
1266{ 1266{
1267 struct ide_host *host; 1267 struct ide_host *host;
1268 struct device *dev = hws[0] ? hws[0]->dev : NULL; 1268 struct device *dev = hws[0] ? hws[0]->dev : NULL;
@@ -1349,7 +1349,7 @@ static void ide_disable_port(ide_hwif_t *hwif)
1349} 1349}
1350 1350
1351int ide_host_register(struct ide_host *host, const struct ide_port_info *d, 1351int ide_host_register(struct ide_host *host, const struct ide_port_info *d,
1352 hw_regs_t **hws) 1352 struct ide_hw **hws)
1353{ 1353{
1354 ide_hwif_t *hwif, *mate = NULL; 1354 ide_hwif_t *hwif, *mate = NULL;
1355 int i, j = 0; 1355 int i, j = 0;
@@ -1443,7 +1443,7 @@ int ide_host_register(struct ide_host *host, const struct ide_port_info *d,
1443} 1443}
1444EXPORT_SYMBOL_GPL(ide_host_register); 1444EXPORT_SYMBOL_GPL(ide_host_register);
1445 1445
1446int ide_host_add(const struct ide_port_info *d, hw_regs_t **hws, 1446int ide_host_add(const struct ide_port_info *d, struct ide_hw **hws,
1447 unsigned int n_ports, struct ide_host **hostp) 1447 unsigned int n_ports, struct ide_host **hostp)
1448{ 1448{
1449 struct ide_host *host; 1449 struct ide_host *host;
diff --git a/drivers/ide/ide_platform.c b/drivers/ide/ide_platform.c
index 47413c2b5f8e..ee9b55ecc62b 100644
--- a/drivers/ide/ide_platform.c
+++ b/drivers/ide/ide_platform.c
@@ -21,7 +21,7 @@
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/io.h> 22#include <linux/io.h>
23 23
24static void __devinit plat_ide_setup_ports(hw_regs_t *hw, 24static void __devinit plat_ide_setup_ports(struct ide_hw *hw,
25 void __iomem *base, 25 void __iomem *base,
26 void __iomem *ctrl, 26 void __iomem *ctrl,
27 struct pata_platform_info *pdata, 27 struct pata_platform_info *pdata,
@@ -54,7 +54,7 @@ static int __devinit plat_ide_probe(struct platform_device *pdev)
54 struct pata_platform_info *pdata; 54 struct pata_platform_info *pdata;
55 struct ide_host *host; 55 struct ide_host *host;
56 int ret = 0, mmio = 0; 56 int ret = 0, mmio = 0;
57 hw_regs_t hw, *hws[] = { &hw }; 57 struct ide_hw hw, *hws[] = { &hw };
58 struct ide_port_info d = platform_ide_port_info; 58 struct ide_port_info d = platform_ide_port_info;
59 59
60 pdata = pdev->dev.platform_data; 60 pdata = pdev->dev.platform_data;
diff --git a/drivers/ide/macide.c b/drivers/ide/macide.c
index 31aa27818604..1447c8c90565 100644
--- a/drivers/ide/macide.c
+++ b/drivers/ide/macide.c
@@ -62,7 +62,7 @@ int macide_ack_intr(ide_hwif_t* hwif)
62 return 0; 62 return 0;
63} 63}
64 64
65static void __init macide_setup_ports(hw_regs_t *hw, unsigned long base, 65static void __init macide_setup_ports(struct ide_hw *hw, unsigned long base,
66 int irq, ide_ack_intr_t *ack_intr) 66 int irq, ide_ack_intr_t *ack_intr)
67{ 67{
68 int i; 68 int i;
@@ -96,7 +96,7 @@ static int __init macide_init(void)
96 ide_ack_intr_t *ack_intr; 96 ide_ack_intr_t *ack_intr;
97 unsigned long base; 97 unsigned long base;
98 int irq; 98 int irq;
99 hw_regs_t hw, *hws[] = { &hw }; 99 struct ide_hw hw, *hws[] = { &hw };
100 100
101 if (!MACH_IS_MAC) 101 if (!MACH_IS_MAC)
102 return -ENODEV; 102 return -ENODEV;
diff --git a/drivers/ide/palm_bk3710.c b/drivers/ide/palm_bk3710.c
index 4507a6d801bc..3c1dc0152153 100644
--- a/drivers/ide/palm_bk3710.c
+++ b/drivers/ide/palm_bk3710.c
@@ -316,7 +316,7 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
316 void __iomem *base; 316 void __iomem *base;
317 unsigned long rate, mem_size; 317 unsigned long rate, mem_size;
318 int i, rc; 318 int i, rc;
319 hw_regs_t hw, *hws[] = { &hw }; 319 struct ide_hw hw, *hws[] = { &hw };
320 320
321 clk = clk_get(&pdev->dev, "IDECLK"); 321 clk = clk_get(&pdev->dev, "IDECLK");
322 if (IS_ERR(clk)) 322 if (IS_ERR(clk))
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c
index f4f806476e0a..97642a7a79c4 100644
--- a/drivers/ide/pmac.c
+++ b/drivers/ide/pmac.c
@@ -1023,13 +1023,14 @@ static const struct ide_port_info pmac_port_info = {
1023 * Setup, register & probe an IDE channel driven by this driver, this is 1023 * Setup, register & probe an IDE channel driven by this driver, this is
1024 * called by one of the 2 probe functions (macio or PCI). 1024 * called by one of the 2 probe functions (macio or PCI).
1025 */ 1025 */
1026static int __devinit pmac_ide_setup_device(pmac_ide_hwif_t *pmif, hw_regs_t *hw) 1026static int __devinit pmac_ide_setup_device(pmac_ide_hwif_t *pmif,
1027 struct ide_hw *hw)
1027{ 1028{
1028 struct device_node *np = pmif->node; 1029 struct device_node *np = pmif->node;
1029 const int *bidp; 1030 const int *bidp;
1030 struct ide_host *host; 1031 struct ide_host *host;
1031 ide_hwif_t *hwif; 1032 ide_hwif_t *hwif;
1032 hw_regs_t *hws[] = { hw }; 1033 struct ide_hw *hws[] = { hw };
1033 struct ide_port_info d = pmac_port_info; 1034 struct ide_port_info d = pmac_port_info;
1034 int rc; 1035 int rc;
1035 1036
@@ -1124,7 +1125,7 @@ static int __devinit pmac_ide_setup_device(pmac_ide_hwif_t *pmif, hw_regs_t *hw)
1124 return 0; 1125 return 0;
1125} 1126}
1126 1127
1127static void __devinit pmac_ide_init_ports(hw_regs_t *hw, unsigned long base) 1128static void __devinit pmac_ide_init_ports(struct ide_hw *hw, unsigned long base)
1128{ 1129{
1129 int i; 1130 int i;
1130 1131
@@ -1144,7 +1145,7 @@ pmac_ide_macio_attach(struct macio_dev *mdev, const struct of_device_id *match)
1144 unsigned long regbase; 1145 unsigned long regbase;
1145 pmac_ide_hwif_t *pmif; 1146 pmac_ide_hwif_t *pmif;
1146 int irq, rc; 1147 int irq, rc;
1147 hw_regs_t hw; 1148 struct ide_hw hw;
1148 1149
1149 pmif = kzalloc(sizeof(*pmif), GFP_KERNEL); 1150 pmif = kzalloc(sizeof(*pmif), GFP_KERNEL);
1150 if (pmif == NULL) 1151 if (pmif == NULL)
@@ -1268,7 +1269,7 @@ pmac_ide_pci_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1268 void __iomem *base; 1269 void __iomem *base;
1269 unsigned long rbase, rlen; 1270 unsigned long rbase, rlen;
1270 int rc; 1271 int rc;
1271 hw_regs_t hw; 1272 struct ide_hw hw;
1272 1273
1273 np = pci_device_to_OF_node(pdev); 1274 np = pci_device_to_OF_node(pdev);
1274 if (np == NULL) { 1275 if (np == NULL) {
diff --git a/drivers/ide/q40ide.c b/drivers/ide/q40ide.c
index e46229fe5ea3..ab49a97023d9 100644
--- a/drivers/ide/q40ide.c
+++ b/drivers/ide/q40ide.c
@@ -51,11 +51,11 @@ static int q40ide_default_irq(unsigned long base)
51/* 51/*
52 * Addresses are pretranslated for Q40 ISA access. 52 * Addresses are pretranslated for Q40 ISA access.
53 */ 53 */
54static void q40_ide_setup_ports(hw_regs_t *hw, unsigned long base, 54static void q40_ide_setup_ports(struct ide_hw *hw, unsigned long base,
55 ide_ack_intr_t *ack_intr, 55 ide_ack_intr_t *ack_intr,
56 int irq) 56 int irq)
57{ 57{
58 memset(hw, 0, sizeof(hw_regs_t)); 58 memset(hw, 0, sizeof(*hw));
59 /* BIG FAT WARNING: 59 /* BIG FAT WARNING:
60 assumption: only DATA port is ever used in 16 bit mode */ 60 assumption: only DATA port is ever used in 16 bit mode */
61 hw->io_ports.data_addr = Q40_ISA_IO_W(base); 61 hw->io_ports.data_addr = Q40_ISA_IO_W(base);
@@ -135,7 +135,7 @@ static const char *q40_ide_names[Q40IDE_NUM_HWIFS]={
135static int __init q40ide_init(void) 135static int __init q40ide_init(void)
136{ 136{
137 int i; 137 int i;
138 hw_regs_t hw[Q40IDE_NUM_HWIFS], *hws[] = { NULL, NULL }; 138 struct ide_hw hw[Q40IDE_NUM_HWIFS], *hws[] = { NULL, NULL };
139 139
140 if (!MACH_IS_Q40) 140 if (!MACH_IS_Q40)
141 return -ENODEV; 141 return -ENODEV;
diff --git a/drivers/ide/rapide.c b/drivers/ide/rapide.c
index c4da3dd39f5c..00f54248f41f 100644
--- a/drivers/ide/rapide.c
+++ b/drivers/ide/rapide.c
@@ -16,7 +16,7 @@ static const struct ide_port_info rapide_port_info = {
16 .chipset = ide_generic, 16 .chipset = ide_generic,
17}; 17};
18 18
19static void rapide_setup_ports(hw_regs_t *hw, void __iomem *base, 19static void rapide_setup_ports(struct ide_hw *hw, void __iomem *base,
20 void __iomem *ctrl, unsigned int sz, int irq) 20 void __iomem *ctrl, unsigned int sz, int irq)
21{ 21{
22 unsigned long port = (unsigned long)base; 22 unsigned long port = (unsigned long)base;
@@ -36,7 +36,7 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
36 void __iomem *base; 36 void __iomem *base;
37 struct ide_host *host; 37 struct ide_host *host;
38 int ret; 38 int ret;
39 hw_regs_t hw, *hws[] = { &hw }; 39 struct ide_hw hw, *hws[] = { &hw };
40 40
41 ret = ecard_request_resources(ec); 41 ret = ecard_request_resources(ec);
42 if (ret) 42 if (ret)
diff --git a/drivers/ide/scc_pata.c b/drivers/ide/scc_pata.c
index 9415f8c8a41d..1104bb301eb9 100644
--- a/drivers/ide/scc_pata.c
+++ b/drivers/ide/scc_pata.c
@@ -559,7 +559,7 @@ static int scc_ide_setup_pci_device(struct pci_dev *dev,
559{ 559{
560 struct scc_ports *ports = pci_get_drvdata(dev); 560 struct scc_ports *ports = pci_get_drvdata(dev);
561 struct ide_host *host; 561 struct ide_host *host;
562 hw_regs_t hw, *hws[] = { &hw }; 562 struct ide_hw hw, *hws[] = { &hw };
563 int i, rc; 563 int i, rc;
564 564
565 memset(&hw, 0, sizeof(hw)); 565 memset(&hw, 0, sizeof(hw));
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index d78f4c994517..5314edffc303 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -301,11 +301,11 @@ static int ide_pci_check_iomem(struct pci_dev *dev, const struct ide_port_info *
301} 301}
302 302
303/** 303/**
304 * ide_hw_configure - configure a hw_regs_t instance 304 * ide_hw_configure - configure a struct ide_hw instance
305 * @dev: PCI device holding interface 305 * @dev: PCI device holding interface
306 * @d: IDE port info 306 * @d: IDE port info
307 * @port: port number 307 * @port: port number
308 * @hw: hw_regs_t instance corresponding to this port 308 * @hw: struct ide_hw instance corresponding to this port
309 * 309 *
310 * Perform the initial set up for the hardware interface structure. This 310 * Perform the initial set up for the hardware interface structure. This
311 * is done per interface port rather than per PCI device. There may be 311 * is done per interface port rather than per PCI device. There may be
@@ -315,7 +315,7 @@ static int ide_pci_check_iomem(struct pci_dev *dev, const struct ide_port_info *
315 */ 315 */
316 316
317static int ide_hw_configure(struct pci_dev *dev, const struct ide_port_info *d, 317static int ide_hw_configure(struct pci_dev *dev, const struct ide_port_info *d,
318 unsigned int port, hw_regs_t *hw) 318 unsigned int port, struct ide_hw *hw)
319{ 319{
320 unsigned long ctl = 0, base = 0; 320 unsigned long ctl = 0, base = 0;
321 321
@@ -445,8 +445,8 @@ out:
445 * ide_pci_setup_ports - configure ports/devices on PCI IDE 445 * ide_pci_setup_ports - configure ports/devices on PCI IDE
446 * @dev: PCI device 446 * @dev: PCI device
447 * @d: IDE port info 447 * @d: IDE port info
448 * @hw: hw_regs_t instances corresponding to this PCI IDE device 448 * @hw: struct ide_hw instances corresponding to this PCI IDE device
449 * @hws: hw_regs_t pointers table to update 449 * @hws: struct ide_hw pointers table to update
450 * 450 *
451 * Scan the interfaces attached to this device and do any 451 * Scan the interfaces attached to this device and do any
452 * necessary per port setup. Attach the devices and ask the 452 * necessary per port setup. Attach the devices and ask the
@@ -458,7 +458,7 @@ out:
458 */ 458 */
459 459
460void ide_pci_setup_ports(struct pci_dev *dev, const struct ide_port_info *d, 460void ide_pci_setup_ports(struct pci_dev *dev, const struct ide_port_info *d,
461 hw_regs_t *hw, hw_regs_t **hws) 461 struct ide_hw *hw, struct ide_hw **hws)
462{ 462{
463 int channels = (d->host_flags & IDE_HFLAG_SINGLE) ? 1 : 2, port; 463 int channels = (d->host_flags & IDE_HFLAG_SINGLE) ? 1 : 2, port;
464 u8 tmp; 464 u8 tmp;
@@ -538,7 +538,7 @@ int ide_pci_init_one(struct pci_dev *dev, const struct ide_port_info *d,
538 void *priv) 538 void *priv)
539{ 539{
540 struct ide_host *host; 540 struct ide_host *host;
541 hw_regs_t hw[2], *hws[] = { NULL, NULL }; 541 struct ide_hw hw[2], *hws[] = { NULL, NULL };
542 int ret; 542 int ret;
543 543
544 ret = ide_setup_pci_controller(dev, d, 1); 544 ret = ide_setup_pci_controller(dev, d, 1);
@@ -586,7 +586,7 @@ int ide_pci_init_two(struct pci_dev *dev1, struct pci_dev *dev2,
586 struct pci_dev *pdev[] = { dev1, dev2 }; 586 struct pci_dev *pdev[] = { dev1, dev2 };
587 struct ide_host *host; 587 struct ide_host *host;
588 int ret, i; 588 int ret, i;
589 hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL }; 589 struct ide_hw hw[4], *hws[] = { NULL, NULL, NULL, NULL };
590 590
591 for (i = 0; i < 2; i++) { 591 for (i = 0; i < 2; i++) {
592 ret = ide_setup_pci_controller(pdev[i], d, !i); 592 ret = ide_setup_pci_controller(pdev[i], d, !i);
diff --git a/drivers/ide/sgiioc4.c b/drivers/ide/sgiioc4.c
index 3f8ee357ffb3..5f37f168f944 100644
--- a/drivers/ide/sgiioc4.c
+++ b/drivers/ide/sgiioc4.c
@@ -91,7 +91,7 @@ typedef struct {
91 91
92 92
93static void 93static void
94sgiioc4_init_hwif_ports(hw_regs_t * hw, unsigned long data_port, 94sgiioc4_init_hwif_ports(struct ide_hw *hw, unsigned long data_port,
95 unsigned long ctrl_port, unsigned long irq_port) 95 unsigned long ctrl_port, unsigned long irq_port)
96{ 96{
97 unsigned long reg = data_port; 97 unsigned long reg = data_port;
@@ -546,7 +546,7 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
546 unsigned long cmd_base, irqport; 546 unsigned long cmd_base, irqport;
547 unsigned long bar0, cmd_phys_base, ctl; 547 unsigned long bar0, cmd_phys_base, ctl;
548 void __iomem *virt_base; 548 void __iomem *virt_base;
549 hw_regs_t hw, *hws[] = { &hw }; 549 struct ide_hw hw, *hws[] = { &hw };
550 int rc; 550 int rc;
551 551
552 /* Get the CmdBlk and CtrlBlk Base Registers */ 552 /* Get the CmdBlk and CtrlBlk Base Registers */
diff --git a/drivers/ide/tx4938ide.c b/drivers/ide/tx4938ide.c
index 16adc18499fa..ea89fddeed91 100644
--- a/drivers/ide/tx4938ide.c
+++ b/drivers/ide/tx4938ide.c
@@ -130,7 +130,7 @@ static const struct ide_port_info tx4938ide_port_info __initdata = {
130 130
131static int __init tx4938ide_probe(struct platform_device *pdev) 131static int __init tx4938ide_probe(struct platform_device *pdev)
132{ 132{
133 hw_regs_t hw, *hws[] = { &hw }; 133 struct ide_hw hw, *hws[] = { &hw };
134 struct ide_host *host; 134 struct ide_host *host;
135 struct resource *res; 135 struct resource *res;
136 struct tx4938ide_platform_info *pdata = pdev->dev.platform_data; 136 struct tx4938ide_platform_info *pdata = pdev->dev.platform_data;
diff --git a/drivers/ide/tx4939ide.c b/drivers/ide/tx4939ide.c
index fa57920d003a..9f73fd43d1f4 100644
--- a/drivers/ide/tx4939ide.c
+++ b/drivers/ide/tx4939ide.c
@@ -537,7 +537,7 @@ static const struct ide_port_info tx4939ide_port_info __initdata = {
537 537
538static int __init tx4939ide_probe(struct platform_device *pdev) 538static int __init tx4939ide_probe(struct platform_device *pdev)
539{ 539{
540 hw_regs_t hw, *hws[] = { &hw }; 540 struct ide_hw hw, *hws[] = { &hw };
541 struct ide_host *host; 541 struct ide_host *host;
542 struct resource *res; 542 struct resource *res;
543 int irq, ret; 543 int irq, ret;
diff --git a/include/linux/ide.h b/include/linux/ide.h
index a3cd568553d3..b1b903a0dac8 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -178,7 +178,7 @@ typedef u8 hwif_chipset_t;
178/* 178/*
179 * Structure to hold all information about the location of this port 179 * Structure to hold all information about the location of this port
180 */ 180 */
181typedef struct hw_regs_s { 181struct ide_hw {
182 union { 182 union {
183 struct ide_io_ports io_ports; 183 struct ide_io_ports io_ports;
184 unsigned long io_ports_array[IDE_NR_PORTS]; 184 unsigned long io_ports_array[IDE_NR_PORTS];
@@ -188,9 +188,9 @@ typedef struct hw_regs_s {
188 ide_ack_intr_t *ack_intr; /* acknowledge interrupt */ 188 ide_ack_intr_t *ack_intr; /* acknowledge interrupt */
189 struct device *dev, *parent; 189 struct device *dev, *parent;
190 unsigned long config; 190 unsigned long config;
191} hw_regs_t; 191};
192 192
193static inline void ide_std_init_ports(hw_regs_t *hw, 193static inline void ide_std_init_ports(struct ide_hw *hw,
194 unsigned long io_addr, 194 unsigned long io_addr,
195 unsigned long ctl_addr) 195 unsigned long ctl_addr)
196{ 196{
@@ -1212,7 +1212,7 @@ static inline int ide_pci_is_in_compatibility_mode(struct pci_dev *dev)
1212} 1212}
1213 1213
1214void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, 1214void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *,
1215 hw_regs_t *, hw_regs_t **); 1215 struct ide_hw *, struct ide_hw **);
1216void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *); 1216void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *);
1217 1217
1218#ifdef CONFIG_BLK_DEV_IDEDMA_PCI 1218#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
@@ -1456,12 +1456,12 @@ void ide_undecoded_slave(ide_drive_t *);
1456void ide_port_apply_params(ide_hwif_t *); 1456void ide_port_apply_params(ide_hwif_t *);
1457int ide_sysfs_register_port(ide_hwif_t *); 1457int ide_sysfs_register_port(ide_hwif_t *);
1458 1458
1459struct ide_host *ide_host_alloc(const struct ide_port_info *, hw_regs_t **, 1459struct ide_host *ide_host_alloc(const struct ide_port_info *, struct ide_hw **,
1460 unsigned int); 1460 unsigned int);
1461void ide_host_free(struct ide_host *); 1461void ide_host_free(struct ide_host *);
1462int ide_host_register(struct ide_host *, const struct ide_port_info *, 1462int ide_host_register(struct ide_host *, const struct ide_port_info *,
1463 hw_regs_t **); 1463 struct ide_hw **);
1464int ide_host_add(const struct ide_port_info *, hw_regs_t **, unsigned int, 1464int ide_host_add(const struct ide_port_info *, struct ide_hw **, unsigned int,
1465 struct ide_host **); 1465 struct ide_host **);
1466void ide_host_remove(struct ide_host *); 1466void ide_host_remove(struct ide_host *);
1467int ide_legacy_device_add(const struct ide_port_info *, unsigned long); 1467int ide_legacy_device_add(const struct ide_port_info *, unsigned long);