mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
ide: remove drive->ctl
Remove drive->ctl (it is always equal to 0x08 after init time). While at it: * Use ATA_DEVCTL_OBS define. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
0fd04dcc2e
commit
ff07488346
9 changed files with 15 additions and 18 deletions
|
@ -96,7 +96,7 @@ static void h8300_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
outb(drive->ctl & ~0x80, io_ports->ctl_addr);
|
outb(ATA_DEVCTL_OBS & ~0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = inb(io_ports->nsect_addr);
|
tf->nsect = inb(io_ports->nsect_addr);
|
||||||
|
@ -110,7 +110,7 @@ static void h8300_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
tf->device = inb(io_ports->device_addr);
|
tf->device = inb(io_ports->device_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
outb(drive->ctl | 0x80, io_ports->ctl_addr);
|
outb(ATA_DEVCTL_OBS | 0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
||||||
tf->hob_feature = inb(io_ports->feature_addr);
|
tf->hob_feature = inb(io_ports->feature_addr);
|
||||||
|
|
|
@ -186,7 +186,7 @@ static void ide_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
tf_outb(drive->ctl & ~0x80, io_ports->ctl_addr);
|
tf_outb(ATA_DEVCTL_OBS & ~0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = tf_inb(io_ports->nsect_addr);
|
tf->nsect = tf_inb(io_ports->nsect_addr);
|
||||||
|
@ -200,7 +200,7 @@ static void ide_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
tf->device = tf_inb(io_ports->device_addr);
|
tf->device = tf_inb(io_ports->device_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
tf_outb(drive->ctl | 0x80, io_ports->ctl_addr);
|
tf_outb(ATA_DEVCTL_OBS | 0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
||||||
tf->hob_feature = tf_inb(io_ports->feature_addr);
|
tf->hob_feature = tf_inb(io_ports->feature_addr);
|
||||||
|
@ -1125,13 +1125,13 @@ 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(hwif, drive->ctl | 6, io_ports->ctl_addr);
|
hwif->OUTBSYNC(hwif, ATA_DEVCTL_OBS | 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 = ATA_DEVCTL_OBS; /* clear SRST and nIEN */
|
||||||
else
|
else
|
||||||
ctl = drive->ctl | 2; /* clear SRST, leave nIEN */
|
ctl = ATA_DEVCTL_OBS | 2; /* clear SRST, leave nIEN */
|
||||||
hwif->OUTBSYNC(hwif, 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);
|
||||||
|
|
|
@ -1065,7 +1065,7 @@ static int init_irq (ide_hwif_t *hwif)
|
||||||
|
|
||||||
if (io_ports->ctl_addr)
|
if (io_ports->ctl_addr)
|
||||||
/* clear nIEN */
|
/* clear nIEN */
|
||||||
hwif->OUTBSYNC(hwif, 0x08, io_ports->ctl_addr);
|
hwif->OUTBSYNC(hwif, ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (request_irq(hwif->irq,&ide_intr,sa,hwif->name,hwgroup))
|
if (request_irq(hwif->irq,&ide_intr,sa,hwif->name,hwgroup))
|
||||||
goto out_unlink;
|
goto out_unlink;
|
||||||
|
|
|
@ -136,7 +136,6 @@ static void ide_port_init_devices_data(ide_hwif_t *hwif)
|
||||||
drive->media = ide_disk;
|
drive->media = ide_disk;
|
||||||
drive->select.all = (unit<<4)|0xa0;
|
drive->select.all = (unit<<4)|0xa0;
|
||||||
drive->hwif = hwif;
|
drive->hwif = hwif;
|
||||||
drive->ctl = 0x08;
|
|
||||||
drive->ready_stat = READY_STAT;
|
drive->ready_stat = READY_STAT;
|
||||||
drive->bad_wstat = BAD_W_STAT;
|
drive->bad_wstat = BAD_W_STAT;
|
||||||
drive->special.b.recalibrate = 1;
|
drive->special.b.recalibrate = 1;
|
||||||
|
|
|
@ -759,8 +759,7 @@ static void hpt3xx_maskproc(ide_drive_t *drive, int mask)
|
||||||
enable_irq (hwif->irq);
|
enable_irq (hwif->irq);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
outb(mask ? (drive->ctl | 2) : (drive->ctl & ~2),
|
outb(ATA_DEVCTL_OBS | (mask ? 2 : 0), hwif->io_ports.ctl_addr);
|
||||||
hwif->io_ports.ctl_addr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -76,7 +76,7 @@ static void superio_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
outb(drive->ctl & ~0x80, io_ports->ctl_addr);
|
outb(ATA_DEVCTL_OBS & ~0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = inb(io_ports->nsect_addr);
|
tf->nsect = inb(io_ports->nsect_addr);
|
||||||
|
@ -90,7 +90,7 @@ static void superio_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
tf->device = superio_ide_inb(io_ports->device_addr);
|
tf->device = superio_ide_inb(io_ports->device_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
outb(drive->ctl | 0x80, io_ports->ctl_addr);
|
outb(ATA_DEVCTL_OBS | 0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
||||||
tf->hob_feature = inb(io_ports->feature_addr);
|
tf->hob_feature = inb(io_ports->feature_addr);
|
||||||
|
|
|
@ -703,7 +703,7 @@ static void scc_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
scc_ide_outb(drive->ctl & ~0x80, io_ports->ctl_addr);
|
scc_ide_outb(ATA_DEVCTL_OBS & ~0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (task->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = scc_ide_inb(io_ports->nsect_addr);
|
tf->nsect = scc_ide_inb(io_ports->nsect_addr);
|
||||||
|
@ -717,7 +717,7 @@ static void scc_tf_read(ide_drive_t *drive, ide_task_t *task)
|
||||||
tf->device = scc_ide_inb(io_ports->device_addr);
|
tf->device = scc_ide_inb(io_ports->device_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
if (task->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
scc_ide_outb(drive->ctl | 0x80, io_ports->ctl_addr);
|
scc_ide_outb(ATA_DEVCTL_OBS | 0x80, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
||||||
tf->hob_feature = scc_ide_inb(io_ports->feature_addr);
|
tf->hob_feature = scc_ide_inb(io_ports->feature_addr);
|
||||||
|
|
|
@ -111,7 +111,7 @@ sgiioc4_init_hwif_ports(hw_regs_t * hw, unsigned long data_port,
|
||||||
static void
|
static void
|
||||||
sgiioc4_maskproc(ide_drive_t * drive, int mask)
|
sgiioc4_maskproc(ide_drive_t * drive, int mask)
|
||||||
{
|
{
|
||||||
writeb(mask ? (drive->ctl | 2) : (drive->ctl & ~2),
|
writeb(ATA_DEVCTL_OBS | (mask ? 2 : 0),
|
||||||
(void __iomem *)drive->hwif->io_ports.ctl_addr);
|
(void __iomem *)drive->hwif->io_ports.ctl_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -364,7 +364,6 @@ typedef struct ide_drive_s {
|
||||||
u8 wcache; /* status of write cache */
|
u8 wcache; /* status of write cache */
|
||||||
u8 acoustic; /* acoustic management */
|
u8 acoustic; /* acoustic management */
|
||||||
u8 media; /* disk, cdrom, tape, floppy, ... */
|
u8 media; /* disk, cdrom, tape, floppy, ... */
|
||||||
u8 ctl; /* "normal" value for Control register */
|
|
||||||
u8 ready_stat; /* min status value for drive ready */
|
u8 ready_stat; /* min status value for drive ready */
|
||||||
u8 mult_count; /* current multiple sector setting */
|
u8 mult_count; /* current multiple sector setting */
|
||||||
u8 mult_req; /* requested multiple sector setting */
|
u8 mult_req; /* requested multiple sector setting */
|
||||||
|
@ -1340,7 +1339,7 @@ static inline void ide_set_irq(ide_drive_t *drive, int on)
|
||||||
{
|
{
|
||||||
ide_hwif_t *hwif = drive->hwif;
|
ide_hwif_t *hwif = drive->hwif;
|
||||||
|
|
||||||
hwif->OUTBSYNC(hwif, drive->ctl | (on ? 0 : 2),
|
hwif->OUTBSYNC(hwif, ATA_DEVCTL_OBS | (on ? 0 : 2),
|
||||||
hwif->io_ports.ctl_addr);
|
hwif->io_ports.ctl_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue