aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-probe.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-07-23 13:55:52 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-07-23 13:55:52 -0400
commit6e6afb3b7401f0181da74a1add57f126946b43e6 (patch)
tree2ca80a7fa25a387b5f3d479d9e94b1339ee440ac /drivers/ide/ide-probe.c
parent1f6d8a0fd8f6cc5ee2219a8cf9b2da16dfd67397 (diff)
ide: add ->set_irq method
Add ->set_irq method for setting nIEN bit of ATA Device Control register and use it instead of ide_set_irq(). While at it: * Use ->set_irq in init_irq() and do_reset1(). * Don't use HWIF() macro in ide_check_pm_state(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r--drivers/ide/ide-probe.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index fe14d576ef01..475bd7263184 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -361,7 +361,7 @@ static int try_to_identify (ide_drive_t *drive, u8 cmd)
361 autoprobe = 1; 361 autoprobe = 1;
362 cookie = probe_irq_on(); 362 cookie = probe_irq_on();
363 } 363 }
364 ide_set_irq(drive, autoprobe); 364 hwif->set_irq(hwif, autoprobe);
365 } 365 }
366 366
367 retval = actual_try_to_identify(drive, cmd); 367 retval = actual_try_to_identify(drive, cmd);
@@ -369,7 +369,7 @@ static int try_to_identify (ide_drive_t *drive, u8 cmd)
369 if (autoprobe) { 369 if (autoprobe) {
370 int irq; 370 int irq;
371 371
372 ide_set_irq(drive, 0); 372 hwif->set_irq(hwif, 0);
373 /* clear drive IRQ */ 373 /* clear drive IRQ */
374 (void)hwif->read_status(hwif); 374 (void)hwif->read_status(hwif);
375 udelay(5); 375 udelay(5);
@@ -709,7 +709,7 @@ static int ide_port_wait_ready(ide_hwif_t *hwif)
709 /* Ignore disks that we will not probe for later. */ 709 /* Ignore disks that we will not probe for later. */
710 if (!drive->noprobe || drive->present) { 710 if (!drive->noprobe || drive->present) {
711 SELECT_DRIVE(drive); 711 SELECT_DRIVE(drive);
712 ide_set_irq(drive, 1); 712 hwif->set_irq(hwif, 1);
713 mdelay(2); 713 mdelay(2);
714 rc = ide_wait_not_busy(hwif, 35000); 714 rc = ide_wait_not_busy(hwif, 35000);
715 if (rc) 715 if (rc)
@@ -1066,8 +1066,7 @@ static int init_irq (ide_hwif_t *hwif)
1066 sa = IRQF_SHARED; 1066 sa = IRQF_SHARED;
1067 1067
1068 if (io_ports->ctl_addr) 1068 if (io_ports->ctl_addr)
1069 /* clear nIEN */ 1069 hwif->set_irq(hwif, 1);
1070 hwif->OUTBSYNC(hwif, ATA_DEVCTL_OBS, io_ports->ctl_addr);
1071 1070
1072 if (request_irq(hwif->irq,&ide_intr,sa,hwif->name,hwgroup)) 1071 if (request_irq(hwif->irq,&ide_intr,sa,hwif->name,hwgroup))
1073 goto out_unlink; 1072 goto out_unlink;