|
@@ -42,7 +42,7 @@ static void ide_outb (u8 val, unsigned long port)
|
|
outb(val, port);
|
|
outb(val, port);
|
|
}
|
|
}
|
|
|
|
|
|
-static void ide_outbsync (ide_drive_t *drive, u8 addr, unsigned long port)
|
|
|
|
|
|
+static void ide_outbsync(ide_hwif_t *hwif, u8 addr, unsigned long port)
|
|
{
|
|
{
|
|
outb(addr, port);
|
|
outb(addr, port);
|
|
}
|
|
}
|
|
@@ -68,7 +68,7 @@ static void ide_mm_outb (u8 value, unsigned long port)
|
|
writeb(value, (void __iomem *) port);
|
|
writeb(value, (void __iomem *) port);
|
|
}
|
|
}
|
|
|
|
|
|
-static void ide_mm_outbsync (ide_drive_t *drive, u8 value, unsigned long port)
|
|
|
|
|
|
+static void ide_mm_outbsync(ide_hwif_t *hwif, u8 value, unsigned long port)
|
|
{
|
|
{
|
|
writeb(value, (void __iomem *) port);
|
|
writeb(value, (void __iomem *) port);
|
|
}
|
|
}
|
|
@@ -686,7 +686,7 @@ int ide_driveid_update(ide_drive_t *drive)
|
|
SELECT_MASK(drive, 1);
|
|
SELECT_MASK(drive, 1);
|
|
ide_set_irq(drive, 0);
|
|
ide_set_irq(drive, 0);
|
|
msleep(50);
|
|
msleep(50);
|
|
- hwif->OUTBSYNC(drive, WIN_IDENTIFY, hwif->io_ports.command_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, WIN_IDENTIFY, hwif->io_ports.command_addr);
|
|
timeout = jiffies + WAIT_WORSTCASE;
|
|
timeout = jiffies + WAIT_WORSTCASE;
|
|
do {
|
|
do {
|
|
if (time_after(jiffies, timeout)) {
|
|
if (time_after(jiffies, timeout)) {
|
|
@@ -773,7 +773,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
|
|
ide_set_irq(drive, 0);
|
|
ide_set_irq(drive, 0);
|
|
hwif->OUTB(speed, io_ports->nsect_addr);
|
|
hwif->OUTB(speed, io_ports->nsect_addr);
|
|
hwif->OUTB(SETFEATURES_XFER, io_ports->feature_addr);
|
|
hwif->OUTB(SETFEATURES_XFER, io_ports->feature_addr);
|
|
- hwif->OUTBSYNC(drive, WIN_SETFEATURES, io_ports->command_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, WIN_SETFEATURES, io_ports->command_addr);
|
|
if (drive->quirk_list == 2)
|
|
if (drive->quirk_list == 2)
|
|
ide_set_irq(drive, 1);
|
|
ide_set_irq(drive, 1);
|
|
|
|
|
|
@@ -881,7 +881,7 @@ void ide_execute_command(ide_drive_t *drive, u8 cmd, ide_handler_t *handler,
|
|
|
|
|
|
spin_lock_irqsave(&ide_lock, flags);
|
|
spin_lock_irqsave(&ide_lock, flags);
|
|
__ide_set_handler(drive, handler, timeout, expiry);
|
|
__ide_set_handler(drive, handler, timeout, expiry);
|
|
- hwif->OUTBSYNC(drive, cmd, hwif->io_ports.command_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, cmd, hwif->io_ports.command_addr);
|
|
/*
|
|
/*
|
|
* Drive takes 400nS to respond, we must avoid the IRQ being
|
|
* Drive takes 400nS to respond, we must avoid the IRQ being
|
|
* serviced before that.
|
|
* serviced before that.
|
|
@@ -899,7 +899,7 @@ void ide_execute_pkt_cmd(ide_drive_t *drive)
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&ide_lock, flags);
|
|
spin_lock_irqsave(&ide_lock, flags);
|
|
- hwif->OUTBSYNC(drive, WIN_PACKETCMD, hwif->io_ports.command_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, WIN_PACKETCMD, hwif->io_ports.command_addr);
|
|
ndelay(400);
|
|
ndelay(400);
|
|
spin_unlock_irqrestore(&ide_lock, flags);
|
|
spin_unlock_irqrestore(&ide_lock, flags);
|
|
}
|
|
}
|
|
@@ -1094,7 +1094,7 @@ static ide_startstop_t do_reset1 (ide_drive_t *drive, int do_not_try_atapi)
|
|
pre_reset(drive);
|
|
pre_reset(drive);
|
|
SELECT_DRIVE(drive);
|
|
SELECT_DRIVE(drive);
|
|
udelay (20);
|
|
udelay (20);
|
|
- hwif->OUTBSYNC(drive, WIN_SRST, io_ports->command_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, WIN_SRST, io_ports->command_addr);
|
|
ndelay(400);
|
|
ndelay(400);
|
|
hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
|
|
hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
|
|
hwgroup->polling = 1;
|
|
hwgroup->polling = 1;
|
|
@@ -1125,14 +1125,14 @@ static ide_startstop_t do_reset1 (ide_drive_t *drive, int do_not_try_atapi)
|
|
* recover from reset very quickly, saving us the first 50ms wait time.
|
|
* recover from reset very quickly, saving us the first 50ms wait time.
|
|
*/
|
|
*/
|
|
/* set SRST and nIEN */
|
|
/* set SRST and nIEN */
|
|
- hwif->OUTBSYNC(drive, drive->ctl|6, io_ports->ctl_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, drive->ctl | 6, io_ports->ctl_addr);
|
|
/* more than enough time */
|
|
/* more than enough time */
|
|
udelay(10);
|
|
udelay(10);
|
|
if (drive->quirk_list == 2)
|
|
if (drive->quirk_list == 2)
|
|
ctl = drive->ctl; /* clear SRST and nIEN */
|
|
ctl = drive->ctl; /* clear SRST and nIEN */
|
|
else
|
|
else
|
|
ctl = drive->ctl | 2; /* clear SRST, leave nIEN */
|
|
ctl = drive->ctl | 2; /* clear SRST, leave nIEN */
|
|
- hwif->OUTBSYNC(drive, ctl, io_ports->ctl_addr);
|
|
|
|
|
|
+ hwif->OUTBSYNC(hwif, ctl, io_ports->ctl_addr);
|
|
/* more than enough time */
|
|
/* more than enough time */
|
|
udelay(10);
|
|
udelay(10);
|
|
hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
|
|
hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
|