ide: remove atapi_error_t (take 2)

Remove atapi_error_t.

While at it:
* replace 'HWIF(drive)' by 'drive->hwif'

v2:
* Add {ILI,EOM,LFS}_ERR defines to <linux/hdreg.h>.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
Bartlomiej Zolnierkiewicz 2008-01-25 22:17:12 +01:00
parent 22c525b976
commit 0e38a66a1e
5 changed files with 15 additions and 45 deletions

View File

@ -772,9 +772,8 @@ static void idefloppy_retry_pc (ide_drive_t *drive)
{ {
idefloppy_pc_t *pc; idefloppy_pc_t *pc;
struct request *rq; struct request *rq;
atapi_error_t error;
error.all = HWIF(drive)->INB(IDE_ERROR_REG); (void)drive->hwif->INB(IDE_ERROR_REG);
pc = idefloppy_next_pc_storage(drive); pc = idefloppy_next_pc_storage(drive);
rq = idefloppy_next_rq_storage(drive); rq = idefloppy_next_rq_storage(drive);
idefloppy_create_request_sense_cmd(pc); idefloppy_create_request_sense_cmd(pc);

View File

@ -562,9 +562,8 @@ static u8 ide_dump_ata_status(ide_drive_t *drive, const char *msg, u8 stat)
static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat) static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat)
{ {
unsigned long flags; unsigned long flags;
atapi_error_t error; u8 err = 0;
error.all = 0;
local_irq_save(flags); local_irq_save(flags);
printk("%s: %s: status=0x%02x { ", drive->name, msg, stat); printk("%s: %s: status=0x%02x { ", drive->name, msg, stat);
if (stat & BUSY_STAT) if (stat & BUSY_STAT)
@ -580,19 +579,19 @@ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat)
} }
printk("}\n"); printk("}\n");
if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) {
error.all = HWIF(drive)->INB(IDE_ERROR_REG); err = drive->hwif->INB(IDE_ERROR_REG);
printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all); printk("%s: %s: error=0x%02x { ", drive->name, msg, err);
if (error.b.ili) printk("IllegalLengthIndication "); if (err & ILI_ERR) printk("IllegalLengthIndication ");
if (error.b.eom) printk("EndOfMedia "); if (err & EOM_ERR) printk("EndOfMedia ");
if (error.b.abrt) printk("AbortedCommand "); if (err & ABRT_ERR) printk("AbortedCommand ");
if (error.b.mcr) printk("MediaChangeRequested "); if (err & MCR_ERR) printk("MediaChangeRequested ");
if (error.b.sense_key) printk("LastFailedSense=0x%02x ", if (err & LFS_ERR) printk("LastFailedSense=0x%02x ",
error.b.sense_key); (err & LFS_ERR) >> 4);
printk("}\n"); printk("}\n");
} }
ide_dump_opcode(drive); ide_dump_opcode(drive);
local_irq_restore(flags); local_irq_restore(flags);
return error.all; return err;
} }
/** /**

View File

@ -1808,9 +1808,8 @@ static ide_startstop_t idetape_retry_pc (ide_drive_t *drive)
idetape_tape_t *tape = drive->driver_data; idetape_tape_t *tape = drive->driver_data;
idetape_pc_t *pc; idetape_pc_t *pc;
struct request *rq; struct request *rq;
atapi_error_t error;
error.all = HWIF(drive)->INB(IDE_ERROR_REG); (void)drive->hwif->INB(IDE_ERROR_REG);
pc = idetape_next_pc_storage(drive); pc = idetape_next_pc_storage(drive);
rq = idetape_next_rq_storage(drive); rq = idetape_next_rq_storage(drive);
idetape_create_request_sense_cmd(pc); idetape_create_request_sense_cmd(pc);

View File

@ -44,7 +44,9 @@
/* Bits for HD_ERROR */ /* Bits for HD_ERROR */
#define MARK_ERR 0x01 /* Bad address mark */ #define MARK_ERR 0x01 /* Bad address mark */
#define ILI_ERR 0x01 /* Illegal Length Indication (ATAPI) */
#define TRK0_ERR 0x02 /* couldn't find track 0 */ #define TRK0_ERR 0x02 /* couldn't find track 0 */
#define EOM_ERR 0x02 /* End Of Media (ATAPI) */
#define ABRT_ERR 0x04 /* Command aborted */ #define ABRT_ERR 0x04 /* Command aborted */
#define MCR_ERR 0x08 /* media change request */ #define MCR_ERR 0x08 /* media change request */
#define ID_ERR 0x10 /* ID field not found */ #define ID_ERR 0x10 /* ID field not found */
@ -52,6 +54,7 @@
#define ECC_ERR 0x40 /* Uncorrectable ECC error */ #define ECC_ERR 0x40 /* Uncorrectable ECC error */
#define BBD_ERR 0x80 /* pre-EIDE meaning: block marked bad */ #define BBD_ERR 0x80 /* pre-EIDE meaning: block marked bad */
#define ICRC_ERR 0x80 /* new meaning: CRC error during transfer */ #define ICRC_ERR 0x80 /* new meaning: CRC error during transfer */
#define LFS_ERR 0xf0 /* Last Failed Sense (ATAPI) */
/* Bits of HD_NSECTOR */ /* Bits of HD_NSECTOR */
#define CD 0x01 #define CD 0x01

View File

@ -416,36 +416,6 @@ typedef union {
} b; } b;
} atapi_ireason_t; } atapi_ireason_t;
/*
* The ATAPI error register.
*
* ili : Illegal Length Indication
* eom : End Of Media Detected
* abrt : Aborted command - As defined by ATA
* mcr : Media Change Requested - As defined by ATA
* sense_key : Sense key of the last failed packet command
*/
typedef union {
unsigned all :8;
struct {
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned ili :1;
unsigned eom :1;
unsigned abrt :1;
unsigned mcr :1;
unsigned sense_key :4;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned sense_key :4;
unsigned mcr :1;
unsigned abrt :1;
unsigned eom :1;
unsigned ili :1;
#else
#error "Please fix <asm/byteorder.h>"
#endif
} b;
} atapi_error_t;
/* /*
* Status returned from various ide_ functions * Status returned from various ide_ functions
*/ */