ide: rename IDE_TFLAG_IN_[HOB_]FEATURE
The feature register has never been readable -- when its location is read, one gets the error register value; hence rename IDE_TFLAG_IN_[HOB_]FEATURE into IDE_TFLAG_IN_[HOB_]ERROR and introduce the 'hob_error' field into the 'struct ide_taskfile' (despite the error register not really depending on the HOB bit). Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
committed by
Bartlomiej Zolnierkiewicz
parent
ecf3a31d2a
commit
6762511934
@@ -244,8 +244,8 @@ static void at91_ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
ide_mm_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
ide_mm_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = ide_mm_inb(io_ports->feature_addr);
|
tf->error = ide_mm_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = ide_mm_inb(io_ports->nsect_addr);
|
tf->nsect = ide_mm_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -260,8 +260,8 @@ static void at91_ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
ide_mm_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
ide_mm_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature = ide_mm_inb(io_ports->feature_addr);
|
tf->hob_error = ide_mm_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = ide_mm_inb(io_ports->nsect_addr);
|
tf->hob_nsect = ide_mm_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -100,8 +100,8 @@ static void h8300_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = inb(io_ports->feature_addr);
|
tf->error = inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = inb(io_ports->nsect_addr);
|
tf->nsect = inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -116,8 +116,8 @@ static void h8300_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature = inb(io_ports->feature_addr);
|
tf->hob_error = inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = inb(io_ports->nsect_addr);
|
tf->hob_nsect = inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -159,8 +159,8 @@ void ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
tf_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
tf_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = tf_inb(io_ports->feature_addr);
|
tf->error = tf_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = tf_inb(io_ports->nsect_addr);
|
tf->nsect = tf_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -175,8 +175,8 @@ void ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
tf_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
tf_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature = tf_inb(io_ports->feature_addr);
|
tf->hob_error = tf_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = tf_inb(io_ports->nsect_addr);
|
tf->hob_nsect = tf_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -55,7 +55,7 @@ u8 ide_read_error(ide_drive_t *drive)
|
|||||||
struct ide_cmd cmd;
|
struct ide_cmd cmd;
|
||||||
|
|
||||||
memset(&cmd, 0, sizeof(cmd));
|
memset(&cmd, 0, sizeof(cmd));
|
||||||
cmd.tf_flags = IDE_TFLAG_IN_FEATURE;
|
cmd.tf_flags = IDE_TFLAG_IN_ERROR;
|
||||||
|
|
||||||
drive->hwif->tp_ops->tf_read(drive, &cmd);
|
drive->hwif->tp_ops->tf_read(drive, &cmd);
|
||||||
|
|
||||||
|
@@ -76,8 +76,8 @@ static void superio_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = inb(io_ports->feature_addr);
|
tf->error = inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = inb(io_ports->nsect_addr);
|
tf->nsect = inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -92,8 +92,8 @@ static void superio_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature = inb(io_ports->feature_addr);
|
tf->hob_error = inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = inb(io_ports->nsect_addr);
|
tf->hob_nsect = inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -702,8 +702,8 @@ static void scc_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
scc_ide_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
scc_ide_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = scc_ide_inb(io_ports->feature_addr);
|
tf->error = scc_ide_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = scc_ide_inb(io_ports->nsect_addr);
|
tf->nsect = scc_ide_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -718,8 +718,8 @@ static void scc_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
scc_ide_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
scc_ide_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature = scc_ide_inb(io_ports->feature_addr);
|
tf->hob_error = scc_ide_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = scc_ide_inb(io_ports->nsect_addr);
|
tf->hob_nsect = scc_ide_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -144,8 +144,8 @@ static void tx4938ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
tx4938ide_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
tx4938ide_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = tx4938ide_inb(io_ports->feature_addr);
|
tf->error = tx4938ide_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = tx4938ide_inb(io_ports->nsect_addr);
|
tf->nsect = tx4938ide_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -160,9 +160,8 @@ static void tx4938ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
tx4938ide_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
tx4938ide_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature =
|
tf->hob_error = tx4938ide_inb(io_ports->feature_addr);
|
||||||
tx4938ide_inb(io_ports->feature_addr);
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = tx4938ide_inb(io_ports->nsect_addr);
|
tf->hob_nsect = tx4938ide_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -511,8 +511,8 @@ static void tx4939ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
/* be sure we're looking at the low order bits */
|
/* be sure we're looking at the low order bits */
|
||||||
tx4939ide_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
tx4939ide_outb(ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_ERROR)
|
||||||
tf->feature = tx4939ide_inb(io_ports->feature_addr);
|
tf->error = tx4939ide_inb(io_ports->feature_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_NSECT)
|
||||||
tf->nsect = tx4939ide_inb(io_ports->nsect_addr);
|
tf->nsect = tx4939ide_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_LBAL)
|
||||||
@@ -527,9 +527,8 @@ static void tx4939ide_tf_read(ide_drive_t *drive, struct ide_cmd *cmd)
|
|||||||
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
if (cmd->tf_flags & IDE_TFLAG_LBA48) {
|
||||||
tx4939ide_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
tx4939ide_outb(ATA_HOB | ATA_DEVCTL_OBS, io_ports->ctl_addr);
|
||||||
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_FEATURE)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_ERROR)
|
||||||
tf->hob_feature =
|
tf->hob_error = tx4939ide_inb(io_ports->feature_addr);
|
||||||
tx4939ide_inb(io_ports->feature_addr);
|
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_NSECT)
|
||||||
tf->hob_nsect = tx4939ide_inb(io_ports->nsect_addr);
|
tf->hob_nsect = tx4939ide_inb(io_ports->nsect_addr);
|
||||||
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
if (cmd->tf_flags & IDE_TFLAG_IN_HOB_LBAL)
|
||||||
|
@@ -265,7 +265,7 @@ enum {
|
|||||||
IDE_TFLAG_WRITE = (1 << 12),
|
IDE_TFLAG_WRITE = (1 << 12),
|
||||||
IDE_TFLAG_CUSTOM_HANDLER = (1 << 13),
|
IDE_TFLAG_CUSTOM_HANDLER = (1 << 13),
|
||||||
IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 14),
|
IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 14),
|
||||||
IDE_TFLAG_IN_HOB_FEATURE = (1 << 15),
|
IDE_TFLAG_IN_HOB_ERROR = (1 << 15),
|
||||||
IDE_TFLAG_IN_HOB_NSECT = (1 << 16),
|
IDE_TFLAG_IN_HOB_NSECT = (1 << 16),
|
||||||
IDE_TFLAG_IN_HOB_LBAL = (1 << 17),
|
IDE_TFLAG_IN_HOB_LBAL = (1 << 17),
|
||||||
IDE_TFLAG_IN_HOB_LBAM = (1 << 18),
|
IDE_TFLAG_IN_HOB_LBAM = (1 << 18),
|
||||||
@@ -273,10 +273,10 @@ enum {
|
|||||||
IDE_TFLAG_IN_HOB_LBA = IDE_TFLAG_IN_HOB_LBAL |
|
IDE_TFLAG_IN_HOB_LBA = IDE_TFLAG_IN_HOB_LBAL |
|
||||||
IDE_TFLAG_IN_HOB_LBAM |
|
IDE_TFLAG_IN_HOB_LBAM |
|
||||||
IDE_TFLAG_IN_HOB_LBAH,
|
IDE_TFLAG_IN_HOB_LBAH,
|
||||||
IDE_TFLAG_IN_HOB = IDE_TFLAG_IN_HOB_FEATURE |
|
IDE_TFLAG_IN_HOB = IDE_TFLAG_IN_HOB_ERROR |
|
||||||
IDE_TFLAG_IN_HOB_NSECT |
|
IDE_TFLAG_IN_HOB_NSECT |
|
||||||
IDE_TFLAG_IN_HOB_LBA,
|
IDE_TFLAG_IN_HOB_LBA,
|
||||||
IDE_TFLAG_IN_FEATURE = (1 << 20),
|
IDE_TFLAG_IN_ERROR = (1 << 20),
|
||||||
IDE_TFLAG_IN_NSECT = (1 << 21),
|
IDE_TFLAG_IN_NSECT = (1 << 21),
|
||||||
IDE_TFLAG_IN_LBAL = (1 << 22),
|
IDE_TFLAG_IN_LBAL = (1 << 22),
|
||||||
IDE_TFLAG_IN_LBAM = (1 << 23),
|
IDE_TFLAG_IN_LBAM = (1 << 23),
|
||||||
@@ -310,8 +310,12 @@ enum {
|
|||||||
|
|
||||||
struct ide_taskfile {
|
struct ide_taskfile {
|
||||||
u8 hob_data; /* 0: high data byte (for TASKFILE IOCTL) */
|
u8 hob_data; /* 0: high data byte (for TASKFILE IOCTL) */
|
||||||
|
/* 1-5: additional data to support LBA48 */
|
||||||
|
union {
|
||||||
|
u8 hob_error; /* read: error */
|
||||||
|
u8 hob_feature; /* write: feature */
|
||||||
|
};
|
||||||
|
|
||||||
u8 hob_feature; /* 1-5: additional data to support LBA48 */
|
|
||||||
u8 hob_nsect;
|
u8 hob_nsect;
|
||||||
u8 hob_lbal;
|
u8 hob_lbal;
|
||||||
u8 hob_lbam;
|
u8 hob_lbam;
|
||||||
|
Reference in New Issue
Block a user