aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ide/at91_ide.c2
-rw-r--r--drivers/ide/au1xxx-ide.c3
-rw-r--r--drivers/ide/falconide.c3
-rw-r--r--drivers/ide/ide-eh.c7
-rw-r--r--drivers/ide/ide-h8300.c3
-rw-r--r--drivers/ide/ide-io-std.c16
-rw-r--r--drivers/ide/ide-io.c4
-rw-r--r--drivers/ide/ide-iops.c4
-rw-r--r--drivers/ide/ide-pm.c2
-rw-r--r--drivers/ide/ide-probe.c6
-rw-r--r--drivers/ide/ide-taskfile.c2
-rw-r--r--drivers/ide/ns87415.c3
-rw-r--r--drivers/ide/pmac.c14
-rw-r--r--drivers/ide/q40ide.c3
-rw-r--r--drivers/ide/scc_pata.c14
-rw-r--r--drivers/ide/sgiioc4.c3
-rw-r--r--drivers/ide/tx4938ide.c3
-rw-r--r--drivers/ide/tx4939ide.c6
18 files changed, 30 insertions, 68 deletions
diff --git a/drivers/ide/at91_ide.c b/drivers/ide/at91_ide.c
index 8fc6ae958b0b..e6e96743aa7b 100644
--- a/drivers/ide/at91_ide.c
+++ b/drivers/ide/at91_ide.c
@@ -295,7 +295,7 @@ static const struct ide_tp_ops at91_ide_tp_ops = {
295 .exec_command = ide_exec_command, 295 .exec_command = ide_exec_command,
296 .read_status = ide_read_status, 296 .read_status = ide_read_status,
297 .read_altstatus = ide_read_altstatus, 297 .read_altstatus = ide_read_altstatus,
298 .set_irq = ide_set_irq, 298 .write_devctl = ide_write_devctl,
299 299
300 .tf_load = at91_ide_tf_load, 300 .tf_load = at91_ide_tf_load,
301 .tf_read = at91_ide_tf_read, 301 .tf_read = at91_ide_tf_read,
diff --git a/drivers/ide/au1xxx-ide.c b/drivers/ide/au1xxx-ide.c
index 1bfb43d0d3a8..2ca10d533dad 100644
--- a/drivers/ide/au1xxx-ide.c
+++ b/drivers/ide/au1xxx-ide.c
@@ -467,8 +467,7 @@ static const struct ide_tp_ops au1xxx_tp_ops = {
467 .exec_command = ide_exec_command, 467 .exec_command = ide_exec_command,
468 .read_status = ide_read_status, 468 .read_status = ide_read_status,
469 .read_altstatus = ide_read_altstatus, 469 .read_altstatus = ide_read_altstatus,
470 470 .write_devctl = ide_write_devctl,
471 .set_irq = ide_set_irq,
472 471
473 .tf_load = ide_tf_load, 472 .tf_load = ide_tf_load,
474 .tf_read = ide_tf_read, 473 .tf_read = ide_tf_read,
diff --git a/drivers/ide/falconide.c b/drivers/ide/falconide.c
index b368a5effc3a..5063be85dc33 100644
--- a/drivers/ide/falconide.c
+++ b/drivers/ide/falconide.c
@@ -89,8 +89,7 @@ static const struct ide_tp_ops falconide_tp_ops = {
89 .exec_command = ide_exec_command, 89 .exec_command = ide_exec_command,
90 .read_status = ide_read_status, 90 .read_status = ide_read_status,
91 .read_altstatus = ide_read_altstatus, 91 .read_altstatus = ide_read_altstatus,
92 92 .write_devctl = ide_write_devctl,
93 .set_irq = ide_set_irq,
94 93
95 .tf_load = ide_tf_load, 94 .tf_load = ide_tf_load,
96 .tf_read = ide_tf_read, 95 .tf_read = ide_tf_read,
diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c
index 11664976eea3..de4b7f1c9c9f 100644
--- a/drivers/ide/ide-eh.c
+++ b/drivers/ide/ide-eh.c
@@ -401,15 +401,14 @@ static ide_startstop_t do_reset1(ide_drive_t *drive, int do_not_try_atapi)
401 * immediate interrupt due to the edge transition it produces. 401 * immediate interrupt due to the edge transition it produces.
402 * This single interrupt gives us a "fast poll" for drives that 402 * This single interrupt gives us a "fast poll" for drives that
403 * recover from reset very quickly, saving us the first 50ms wait time. 403 * recover from reset very quickly, saving us the first 50ms wait time.
404 *
405 * TODO: add ->softreset method and stop abusing ->set_irq
406 */ 404 */
407 /* set SRST and nIEN */ 405 /* set SRST and nIEN */
408 tp_ops->set_irq(hwif, 4); 406 tp_ops->write_devctl(hwif, ATA_SRST | ATA_NIEN | ATA_DEVCTL_OBS);
409 /* more than enough time */ 407 /* more than enough time */
410 udelay(10); 408 udelay(10);
411 /* clear SRST, leave nIEN (unless device is on the quirk list) */ 409 /* clear SRST, leave nIEN (unless device is on the quirk list) */
412 tp_ops->set_irq(hwif, drive->quirk_list == 2); 410 tp_ops->write_devctl(hwif, (drive->quirk_list == 2 ? 0 : ATA_NIEN) |
411 ATA_DEVCTL_OBS);
413 /* more than enough time */ 412 /* more than enough time */
414 udelay(10); 413 udelay(10);
415 hwif->poll_timeout = jiffies + WAIT_WORSTCASE; 414 hwif->poll_timeout = jiffies + WAIT_WORSTCASE;
diff --git a/drivers/ide/ide-h8300.c b/drivers/ide/ide-h8300.c
index 7492f28d1290..a57ccad61acf 100644
--- a/drivers/ide/ide-h8300.c
+++ b/drivers/ide/ide-h8300.c
@@ -159,8 +159,7 @@ static const struct ide_tp_ops h8300_tp_ops = {
159 .exec_command = ide_exec_command, 159 .exec_command = ide_exec_command,
160 .read_status = ide_read_status, 160 .read_status = ide_read_status,
161 .read_altstatus = ide_read_altstatus, 161 .read_altstatus = ide_read_altstatus,
162 162 .write_devctl = ide_write_devctl,
163 .set_irq = ide_set_irq,
164 163
165 .tf_load = h8300_tf_load, 164 .tf_load = h8300_tf_load,
166 .tf_read = h8300_tf_read, 165 .tf_read = h8300_tf_read,
diff --git a/drivers/ide/ide-io-std.c b/drivers/ide/ide-io-std.c
index 3a867e49a0af..bbeedce6b17d 100644
--- a/drivers/ide/ide-io-std.c
+++ b/drivers/ide/ide-io-std.c
@@ -64,23 +64,14 @@ u8 ide_read_altstatus(ide_hwif_t *hwif)
64} 64}
65EXPORT_SYMBOL_GPL(ide_read_altstatus); 65EXPORT_SYMBOL_GPL(ide_read_altstatus);
66 66
67void ide_set_irq(ide_hwif_t *hwif, int on) 67void ide_write_devctl(ide_hwif_t *hwif, u8 ctl)
68{ 68{
69 u8 ctl = ATA_DEVCTL_OBS;
70
71 if (on == 4) { /* hack for SRST */
72 ctl |= 4;
73 on &= ~4;
74 }
75
76 ctl |= on ? 0 : 2;
77
78 if (hwif->host_flags & IDE_HFLAG_MMIO) 69 if (hwif->host_flags & IDE_HFLAG_MMIO)
79 writeb(ctl, (void __iomem *)hwif->io_ports.ctl_addr); 70 writeb(ctl, (void __iomem *)hwif->io_ports.ctl_addr);
80 else 71 else
81 outb(ctl, hwif->io_ports.ctl_addr); 72 outb(ctl, hwif->io_ports.ctl_addr);
82} 73}
83EXPORT_SYMBOL_GPL(ide_set_irq); 74EXPORT_SYMBOL_GPL(ide_write_devctl);
84 75
85void ide_tf_load(ide_drive_t *drive, struct ide_cmd *cmd) 76void ide_tf_load(ide_drive_t *drive, struct ide_cmd *cmd)
86{ 77{
@@ -312,8 +303,7 @@ const struct ide_tp_ops default_tp_ops = {
312 .exec_command = ide_exec_command, 303 .exec_command = ide_exec_command,
313 .read_status = ide_read_status, 304 .read_status = ide_read_status,
314 .read_altstatus = ide_read_altstatus, 305 .read_altstatus = ide_read_altstatus,
315 306 .write_devctl = ide_write_devctl,
316 .set_irq = ide_set_irq,
317 307
318 .tf_load = ide_tf_load, 308 .tf_load = ide_tf_load,
319 .tf_read = ide_tf_read, 309 .tf_read = ide_tf_read,
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 3c52317d8524..5b57905a7d71 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -494,7 +494,9 @@ repeat:
494 * quirk_list may not like intr setups/cleanups 494 * quirk_list may not like intr setups/cleanups
495 */ 495 */
496 if (prev_port && prev_port->cur_dev->quirk_list == 0) 496 if (prev_port && prev_port->cur_dev->quirk_list == 0)
497 prev_port->tp_ops->set_irq(prev_port, 0); 497 prev_port->tp_ops->write_devctl(prev_port,
498 ATA_NIEN |
499 ATA_DEVCTL_OBS);
498 500
499 hwif->host->cur_port = hwif; 501 hwif->host->cur_port = hwif;
500 } 502 }
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index 0caca342802d..ae227dd8466f 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -360,7 +360,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
360 SELECT_DRIVE(drive); 360 SELECT_DRIVE(drive);
361 SELECT_MASK(drive, 1); 361 SELECT_MASK(drive, 1);
362 udelay(1); 362 udelay(1);
363 tp_ops->set_irq(hwif, 0); 363 tp_ops->write_devctl(hwif, ATA_NIEN | ATA_DEVCTL_OBS);
364 364
365 memset(&cmd, 0, sizeof(cmd)); 365 memset(&cmd, 0, sizeof(cmd));
366 cmd.tf_flags = IDE_TFLAG_OUT_FEATURE | IDE_TFLAG_OUT_NSECT; 366 cmd.tf_flags = IDE_TFLAG_OUT_FEATURE | IDE_TFLAG_OUT_NSECT;
@@ -372,7 +372,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
372 tp_ops->exec_command(hwif, ATA_CMD_SET_FEATURES); 372 tp_ops->exec_command(hwif, ATA_CMD_SET_FEATURES);
373 373
374 if (drive->quirk_list == 2) 374 if (drive->quirk_list == 2)
375 tp_ops->set_irq(hwif, 1); 375 tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS);
376 376
377 error = __ide_wait_stat(drive, drive->ready_stat, 377 error = __ide_wait_stat(drive, drive->ready_stat,
378 ATA_BUSY | ATA_DRQ | ATA_ERR, 378 ATA_BUSY | ATA_DRQ | ATA_ERR,
diff --git a/drivers/ide/ide-pm.c b/drivers/ide/ide-pm.c
index ebf2d21ebdcb..20553d4c42a2 100644
--- a/drivers/ide/ide-pm.c
+++ b/drivers/ide/ide-pm.c
@@ -233,7 +233,7 @@ void ide_check_pm_state(ide_drive_t *drive, struct request *rq)
233 if (rc) 233 if (rc)
234 printk(KERN_WARNING "%s: bus not ready on wakeup\n", drive->name); 234 printk(KERN_WARNING "%s: bus not ready on wakeup\n", drive->name);
235 SELECT_DRIVE(drive); 235 SELECT_DRIVE(drive);
236 hwif->tp_ops->set_irq(hwif, 1); 236 hwif->tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS);
237 rc = ide_wait_not_busy(hwif, 100000); 237 rc = ide_wait_not_busy(hwif, 100000);
238 if (rc) 238 if (rc)
239 printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name); 239 printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name);
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 7c1f1bf81836..d240f76b0da6 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -260,7 +260,7 @@ int ide_dev_read_id(ide_drive_t *drive, u8 cmd, u16 *id)
260 * during the identify phase that the IRQ handler isn't expecting. 260 * during the identify phase that the IRQ handler isn't expecting.
261 */ 261 */
262 if (io_ports->ctl_addr) 262 if (io_ports->ctl_addr)
263 tp_ops->set_irq(hwif, 0); 263 tp_ops->write_devctl(hwif, ATA_NIEN | ATA_DEVCTL_OBS);
264 264
265 /* take a deep breath */ 265 /* take a deep breath */
266 msleep(50); 266 msleep(50);
@@ -628,7 +628,7 @@ static int ide_port_wait_ready(ide_hwif_t *hwif)
628 if ((drive->dev_flags & IDE_DFLAG_NOPROBE) == 0 || 628 if ((drive->dev_flags & IDE_DFLAG_NOPROBE) == 0 ||
629 (drive->dev_flags & IDE_DFLAG_PRESENT)) { 629 (drive->dev_flags & IDE_DFLAG_PRESENT)) {
630 SELECT_DRIVE(drive); 630 SELECT_DRIVE(drive);
631 hwif->tp_ops->set_irq(hwif, 1); 631 hwif->tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS);
632 mdelay(2); 632 mdelay(2);
633 rc = ide_wait_not_busy(hwif, 35000); 633 rc = ide_wait_not_busy(hwif, 35000);
634 if (rc) 634 if (rc)
@@ -845,7 +845,7 @@ static int init_irq (ide_hwif_t *hwif)
845 irq_handler = ide_intr; 845 irq_handler = ide_intr;
846 846
847 if (io_ports->ctl_addr) 847 if (io_ports->ctl_addr)
848 hwif->tp_ops->set_irq(hwif, 1); 848 hwif->tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS);
849 849
850 if (request_irq(hwif->irq, irq_handler, sa, hwif->name, hwif)) 850 if (request_irq(hwif->irq, irq_handler, sa, hwif->name, hwif))
851 goto out_up; 851 goto out_up;
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index dba68db629bf..47f13cd11031 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -80,7 +80,7 @@ ide_startstop_t do_rw_taskfile(ide_drive_t *drive, struct ide_cmd *orig_cmd)
80 80
81 if ((cmd->tf_flags & IDE_TFLAG_DMA_PIO_FALLBACK) == 0) { 81 if ((cmd->tf_flags & IDE_TFLAG_DMA_PIO_FALLBACK) == 0) {
82 ide_tf_dump(drive->name, tf); 82 ide_tf_dump(drive->name, tf);
83 tp_ops->set_irq(hwif, 1); 83 tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS);
84 SELECT_MASK(drive, 0); 84 SELECT_MASK(drive, 0);
85 tp_ops->tf_load(drive, cmd); 85 tp_ops->tf_load(drive, cmd);
86 } 86 }
diff --git a/drivers/ide/ns87415.c b/drivers/ide/ns87415.c
index 13a9e00efa13..00ab0be7335a 100644
--- a/drivers/ide/ns87415.c
+++ b/drivers/ide/ns87415.c
@@ -109,8 +109,7 @@ static const struct ide_tp_ops superio_tp_ops = {
109 .exec_command = ide_exec_command, 109 .exec_command = ide_exec_command,
110 .read_status = superio_read_status, 110 .read_status = superio_read_status,
111 .read_altstatus = ide_read_altstatus, 111 .read_altstatus = ide_read_altstatus,
112 112 .write_devctl = ide_write_devctl,
113 .set_irq = ide_set_irq,
114 113
115 .tf_load = ide_tf_load, 114 .tf_load = ide_tf_load,
116 .tf_read = superio_tf_read, 115 .tf_read = superio_tf_read,
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c
index 879c3d8d9f36..7aa45ea37eeb 100644
--- a/drivers/ide/pmac.c
+++ b/drivers/ide/pmac.c
@@ -476,17 +476,8 @@ static void pmac_exec_command(ide_hwif_t *hwif, u8 cmd)
476 + IDE_TIMING_CONFIG)); 476 + IDE_TIMING_CONFIG));
477} 477}
478 478
479static void pmac_set_irq(ide_hwif_t *hwif, int on) 479static void pmac_write_devctl(ide_hwif_t *hwif, u8 ctl)
480{ 480{
481 u8 ctl = ATA_DEVCTL_OBS;
482
483 if (on == 4) { /* hack for SRST */
484 ctl |= 4;
485 on &= ~4;
486 }
487
488 ctl |= on ? 0 : 2;
489
490 writeb(ctl, (void __iomem *)hwif->io_ports.ctl_addr); 481 writeb(ctl, (void __iomem *)hwif->io_ports.ctl_addr);
491 (void)readl((void __iomem *)(hwif->io_ports.data_addr 482 (void)readl((void __iomem *)(hwif->io_ports.data_addr
492 + IDE_TIMING_CONFIG)); 483 + IDE_TIMING_CONFIG));
@@ -954,8 +945,7 @@ static const struct ide_tp_ops pmac_tp_ops = {
954 .exec_command = pmac_exec_command, 945 .exec_command = pmac_exec_command,
955 .read_status = ide_read_status, 946 .read_status = ide_read_status,
956 .read_altstatus = ide_read_altstatus, 947 .read_altstatus = ide_read_altstatus,
957 948 .write_devctl = pmac_write_devctl,
958 .set_irq = pmac_set_irq,
959 949
960 .tf_load = ide_tf_load, 950 .tf_load = ide_tf_load,
961 .tf_read = ide_tf_read, 951 .tf_read = ide_tf_read,
diff --git a/drivers/ide/q40ide.c b/drivers/ide/q40ide.c
index 2a43a2f49633..7fddfd34fcce 100644
--- a/drivers/ide/q40ide.c
+++ b/drivers/ide/q40ide.c
@@ -99,8 +99,7 @@ static const struct ide_tp_ops q40ide_tp_ops = {
99 .exec_command = ide_exec_command, 99 .exec_command = ide_exec_command,
100 .read_status = ide_read_status, 100 .read_status = ide_read_status,
101 .read_altstatus = ide_read_altstatus, 101 .read_altstatus = ide_read_altstatus,
102 102 .write_devctl = ide_write_devctl,
103 .set_irq = ide_set_irq,
104 103
105 .tf_load = ide_tf_load, 104 .tf_load = ide_tf_load,
106 .tf_read = ide_tf_read, 105 .tf_read = ide_tf_read,
diff --git a/drivers/ide/scc_pata.c b/drivers/ide/scc_pata.c
index 6e47eac1cd7f..6ba4983d831c 100644
--- a/drivers/ide/scc_pata.c
+++ b/drivers/ide/scc_pata.c
@@ -148,17 +148,8 @@ static u8 scc_dma_sff_read_status(ide_hwif_t *hwif)
148 return (u8)in_be32((void *)(hwif->dma_base + 4)); 148 return (u8)in_be32((void *)(hwif->dma_base + 4));
149} 149}
150 150
151static void scc_set_irq(ide_hwif_t *hwif, int on) 151static void scc_write_devctl(ide_hwif_t *hwif, u8 ctl)
152{ 152{
153 u8 ctl = ATA_DEVCTL_OBS;
154
155 if (on == 4) { /* hack for SRST */
156 ctl |= 4;
157 on &= ~4;
158 }
159
160 ctl |= on ? 0 : 2;
161
162 out_be32((void *)hwif->io_ports.ctl_addr, ctl); 153 out_be32((void *)hwif->io_ports.ctl_addr, ctl);
163 eieio(); 154 eieio();
164 in_be32((void *)(hwif->dma_base + 0x01c)); 155 in_be32((void *)(hwif->dma_base + 0x01c));
@@ -843,8 +834,7 @@ static const struct ide_tp_ops scc_tp_ops = {
843 .exec_command = scc_exec_command, 834 .exec_command = scc_exec_command,
844 .read_status = scc_read_status, 835 .read_status = scc_read_status,
845 .read_altstatus = scc_read_altstatus, 836 .read_altstatus = scc_read_altstatus,
846 837 .write_devctl = scc_write_devctl,
847 .set_irq = scc_set_irq,
848 838
849 .tf_load = scc_tf_load, 839 .tf_load = scc_tf_load,
850 .tf_read = scc_tf_read, 840 .tf_read = scc_tf_read,
diff --git a/drivers/ide/sgiioc4.c b/drivers/ide/sgiioc4.c
index 6ef5a567d377..58980fcafc3b 100644
--- a/drivers/ide/sgiioc4.c
+++ b/drivers/ide/sgiioc4.c
@@ -503,8 +503,7 @@ static const struct ide_tp_ops sgiioc4_tp_ops = {
503 .exec_command = ide_exec_command, 503 .exec_command = ide_exec_command,
504 .read_status = sgiioc4_read_status, 504 .read_status = sgiioc4_read_status,
505 .read_altstatus = ide_read_altstatus, 505 .read_altstatus = ide_read_altstatus,
506 506 .write_devctl = ide_write_devctl,
507 .set_irq = ide_set_irq,
508 507
509 .tf_load = ide_tf_load, 508 .tf_load = ide_tf_load,
510 .tf_read = ide_tf_read, 509 .tf_read = ide_tf_read,
diff --git a/drivers/ide/tx4938ide.c b/drivers/ide/tx4938ide.c
index 1c4a78ac1a20..ec3aa32fbbe0 100644
--- a/drivers/ide/tx4938ide.c
+++ b/drivers/ide/tx4938ide.c
@@ -204,8 +204,7 @@ static const struct ide_tp_ops tx4938ide_tp_ops = {
204 .exec_command = ide_exec_command, 204 .exec_command = ide_exec_command,
205 .read_status = ide_read_status, 205 .read_status = ide_read_status,
206 .read_altstatus = ide_read_altstatus, 206 .read_altstatus = ide_read_altstatus,
207 207 .write_devctl = ide_write_devctl,
208 .set_irq = ide_set_irq,
209 208
210 .tf_load = tx4938ide_tf_load, 209 .tf_load = tx4938ide_tf_load,
211 .tf_read = tx4938ide_tf_read, 210 .tf_read = tx4938ide_tf_read,
diff --git a/drivers/ide/tx4939ide.c b/drivers/ide/tx4939ide.c
index 77aee5b2ce95..43bc0372413a 100644
--- a/drivers/ide/tx4939ide.c
+++ b/drivers/ide/tx4939ide.c
@@ -571,8 +571,7 @@ static const struct ide_tp_ops tx4939ide_tp_ops = {
571 .exec_command = ide_exec_command, 571 .exec_command = ide_exec_command,
572 .read_status = ide_read_status, 572 .read_status = ide_read_status,
573 .read_altstatus = ide_read_altstatus, 573 .read_altstatus = ide_read_altstatus,
574 574 .write_devctl = ide_write_devctl,
575 .set_irq = ide_set_irq,
576 575
577 .tf_load = tx4939ide_tf_load, 576 .tf_load = tx4939ide_tf_load,
578 .tf_read = tx4939ide_tf_read, 577 .tf_read = tx4939ide_tf_read,
@@ -595,8 +594,7 @@ static const struct ide_tp_ops tx4939ide_tp_ops = {
595 .exec_command = ide_exec_command, 594 .exec_command = ide_exec_command,
596 .read_status = ide_read_status, 595 .read_status = ide_read_status,
597 .read_altstatus = ide_read_altstatus, 596 .read_altstatus = ide_read_altstatus,
598 597 .write_devctl = ide_write_devctl,
599 .set_irq = ide_set_irq,
600 598
601 .tf_load = tx4939ide_tf_load, 599 .tf_load = tx4939ide_tf_load,
602 .tf_read = ide_tf_read, 600 .tf_read = ide_tf_read,