* [PATCH 4/15] ide: remove atapi_error_t
@ 2007-10-30 23:25 Bartlomiej Zolnierkiewicz
2007-11-01 18:47 ` Sergei Shtylyov
0 siblings, 1 reply; 4+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2007-10-30 23:25 UTC (permalink / raw)
To: linux-ide
Remove atapi_error_t.
While at it:
* replace 'HWIF(drive)' by 'drive->hwif'
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/ide-floppy.c | 3 +--
drivers/ide/ide-lib.c | 21 ++++++++++-----------
drivers/ide/ide-tape.c | 3 +--
include/linux/ide.h | 30 ------------------------------
4 files changed, 12 insertions(+), 45 deletions(-)
Index: b/drivers/ide/ide-floppy.c
===================================================================
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -772,9 +772,8 @@ static void idefloppy_retry_pc (ide_driv
{
idefloppy_pc_t *pc;
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);
rq = idefloppy_next_rq_storage(drive);
idefloppy_create_request_sense_cmd(pc);
Index: b/drivers/ide/ide-lib.c
===================================================================
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c
@@ -558,9 +558,8 @@ static u8 ide_dump_ata_status(ide_drive_
static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat)
{
unsigned long flags;
- atapi_error_t error;
+ u8 err = 0;
- error.all = 0;
local_irq_save(flags);
printk("%s: %s: status=0x%02x { ", drive->name, msg, stat);
if (stat & BUSY_STAT)
@@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv
}
printk("}\n");
if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) {
- error.all = HWIF(drive)->INB(IDE_ERROR_REG);
- printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all);
- if (error.b.ili) printk("IllegalLengthIndication ");
- if (error.b.eom) printk("EndOfMedia ");
- if (error.b.abrt) printk("AbortedCommand ");
- if (error.b.mcr) printk("MediaChangeRequested ");
- if (error.b.sense_key) printk("LastFailedSense=0x%02x ",
- error.b.sense_key);
+ err = drive->hwif->INB(IDE_ERROR_REG);
+ printk("%s: %s: error=0x%02x { ", drive->name, msg, err);
+ if (err & MARK_ERR) printk("IllegalLengthIndication ");
+ if (err & TRK0_ERR) printk("EndOfMedia ");
+ if (err & ABRT_ERR) printk("AbortedCommand ");
+ if (err & MCR_ERR) printk("MediaChangeRequested ");
+ if (err & 0xf0) printk("LastFailedSense=0x%02x ",
+ (err & 0xf0) >> 4);
printk("}\n");
}
ide_dump_opcode(drive);
local_irq_restore(flags);
- return error.all;
+ return err;
}
/**
Index: b/drivers/ide/ide-tape.c
===================================================================
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -1808,9 +1808,8 @@ static ide_startstop_t idetape_retry_pc
idetape_tape_t *tape = drive->driver_data;
idetape_pc_t *pc;
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);
rq = idetape_next_rq_storage(drive);
idetape_create_request_sense_cmd(pc);
Index: b/include/linux/ide.h
===================================================================
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -417,36 +417,6 @@ typedef union {
} 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
*/
typedef enum {
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH 4/15] ide: remove atapi_error_t 2007-10-30 23:25 [PATCH 4/15] ide: remove atapi_error_t Bartlomiej Zolnierkiewicz @ 2007-11-01 18:47 ` Sergei Shtylyov 2007-11-02 20:04 ` Bartlomiej Zolnierkiewicz 0 siblings, 1 reply; 4+ messages in thread From: Sergei Shtylyov @ 2007-11-01 18:47 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide Hello. Bartlomiej Zolnierkiewicz wrote: > Remove atapi_error_t. > While at it: > * replace 'HWIF(drive)' by 'drive->hwif' > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> > --- > drivers/ide/ide-floppy.c | 3 +-- > drivers/ide/ide-lib.c | 21 ++++++++++----------- > drivers/ide/ide-tape.c | 3 +-- > include/linux/ide.h | 30 ------------------------------ > 4 files changed, 12 insertions(+), 45 deletions(-) > Index: b/drivers/ide/ide-lib.c > =================================================================== > --- a/drivers/ide/ide-lib.c > +++ b/drivers/ide/ide-lib.c [...] > @@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv > } > printk("}\n"); > if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { > - error.all = HWIF(drive)->INB(IDE_ERROR_REG); > - printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all); > - if (error.b.ili) printk("IllegalLengthIndication "); > - if (error.b.eom) printk("EndOfMedia "); > - if (error.b.abrt) printk("AbortedCommand "); > - if (error.b.mcr) printk("MediaChangeRequested "); > - if (error.b.sense_key) printk("LastFailedSense=0x%02x ", > - error.b.sense_key); > + err = drive->hwif->INB(IDE_ERROR_REG); > + printk("%s: %s: error=0x%02x { ", drive->name, msg, err); > + if (err & MARK_ERR) printk("IllegalLengthIndication "); > + if (err & TRK0_ERR) printk("EndOfMedia "); > + if (err & ABRT_ERR) printk("AbortedCommand "); > + if (err & MCR_ERR) printk("MediaChangeRequested "); > + if (err & 0xf0) printk("LastFailedSense=0x%02x ", > + (err & 0xf0) >> 4); I'd rather prefer that the ATAPI bit definitions be added to <linux/hdreg.h> -- the ATAPI sector count register fields definitions are already there... MBR, Sergei ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/15] ide: remove atapi_error_t 2007-11-01 18:47 ` Sergei Shtylyov @ 2007-11-02 20:04 ` Bartlomiej Zolnierkiewicz 2007-11-04 13:05 ` Sergei Shtylyov 0 siblings, 1 reply; 4+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2007-11-02 20:04 UTC (permalink / raw) To: Sergei Shtylyov; +Cc: linux-ide Hi, On Thursday 01 November 2007, Sergei Shtylyov wrote: > Hello. > > Bartlomiej Zolnierkiewicz wrote: > > > Remove atapi_error_t. > > > While at it: > > * replace 'HWIF(drive)' by 'drive->hwif' > > > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> > > --- > > drivers/ide/ide-floppy.c | 3 +-- > > drivers/ide/ide-lib.c | 21 ++++++++++----------- > > drivers/ide/ide-tape.c | 3 +-- > > include/linux/ide.h | 30 ------------------------------ > > 4 files changed, 12 insertions(+), 45 deletions(-) > > > Index: b/drivers/ide/ide-lib.c > > =================================================================== > > --- a/drivers/ide/ide-lib.c > > +++ b/drivers/ide/ide-lib.c > [...] > > @@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv > > } > > printk("}\n"); > > if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { > > - error.all = HWIF(drive)->INB(IDE_ERROR_REG); > > - printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all); > > - if (error.b.ili) printk("IllegalLengthIndication "); > > - if (error.b.eom) printk("EndOfMedia "); > > - if (error.b.abrt) printk("AbortedCommand "); > > - if (error.b.mcr) printk("MediaChangeRequested "); > > - if (error.b.sense_key) printk("LastFailedSense=0x%02x ", > > - error.b.sense_key); > > + err = drive->hwif->INB(IDE_ERROR_REG); > > + printk("%s: %s: error=0x%02x { ", drive->name, msg, err); > > + if (err & MARK_ERR) printk("IllegalLengthIndication "); > > + if (err & TRK0_ERR) printk("EndOfMedia "); > > + if (err & ABRT_ERR) printk("AbortedCommand "); > > + if (err & MCR_ERR) printk("MediaChangeRequested "); > > + if (err & 0xf0) printk("LastFailedSense=0x%02x ", > > + (err & 0xf0) >> 4); > > I'd rather prefer that the ATAPI bit definitions be added to > <linux/hdreg.h> -- the ATAPI sector count register fields definitions are > already there... Yeah, that should do it: [PATCH] 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>. Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> --- drivers/ide/ide-floppy.c | 3 +-- drivers/ide/ide-lib.c | 21 ++++++++++----------- drivers/ide/ide-tape.c | 3 +-- include/linux/hdreg.h | 3 +++ include/linux/ide.h | 30 ------------------------------ 5 files changed, 15 insertions(+), 45 deletions(-) Index: b/drivers/ide/ide-floppy.c =================================================================== --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c @@ -772,9 +772,8 @@ static void idefloppy_retry_pc (ide_driv { idefloppy_pc_t *pc; 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); rq = idefloppy_next_rq_storage(drive); idefloppy_create_request_sense_cmd(pc); Index: b/drivers/ide/ide-lib.c =================================================================== --- a/drivers/ide/ide-lib.c +++ b/drivers/ide/ide-lib.c @@ -558,9 +558,8 @@ static u8 ide_dump_ata_status(ide_drive_ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat) { unsigned long flags; - atapi_error_t error; + u8 err = 0; - error.all = 0; local_irq_save(flags); printk("%s: %s: status=0x%02x { ", drive->name, msg, stat); if (stat & BUSY_STAT) @@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv } printk("}\n"); if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { - error.all = HWIF(drive)->INB(IDE_ERROR_REG); - printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all); - if (error.b.ili) printk("IllegalLengthIndication "); - if (error.b.eom) printk("EndOfMedia "); - if (error.b.abrt) printk("AbortedCommand "); - if (error.b.mcr) printk("MediaChangeRequested "); - if (error.b.sense_key) printk("LastFailedSense=0x%02x ", - error.b.sense_key); + err = drive->hwif->INB(IDE_ERROR_REG); + printk("%s: %s: error=0x%02x { ", drive->name, msg, err); + if (err & ILI_ERR) printk("IllegalLengthIndication "); + if (err & EOM_ERR) printk("EndOfMedia "); + if (err & ABRT_ERR) printk("AbortedCommand "); + if (err & MCR_ERR) printk("MediaChangeRequested "); + if (err & LFS_ERR) printk("LastFailedSense=0x%02x ", + (err & LFS_ERR) >> 4); printk("}\n"); } ide_dump_opcode(drive); local_irq_restore(flags); - return error.all; + return err; } /** Index: b/drivers/ide/ide-tape.c =================================================================== --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -1808,9 +1808,8 @@ static ide_startstop_t idetape_retry_pc idetape_tape_t *tape = drive->driver_data; idetape_pc_t *pc; 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); rq = idetape_next_rq_storage(drive); idetape_create_request_sense_cmd(pc); Index: b/include/linux/hdreg.h =================================================================== --- a/include/linux/hdreg.h +++ b/include/linux/hdreg.h @@ -44,7 +44,9 @@ /* Bits for HD_ERROR */ #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 EOM_ERR 0x02 /* End Of Media (ATAPI) */ #define ABRT_ERR 0x04 /* Command aborted */ #define MCR_ERR 0x08 /* media change request */ #define ID_ERR 0x10 /* ID field not found */ @@ -52,6 +54,7 @@ #define ECC_ERR 0x40 /* Uncorrectable ECC error */ #define BBD_ERR 0x80 /* pre-EIDE meaning: block marked bad */ #define ICRC_ERR 0x80 /* new meaning: CRC error during transfer */ +#define LFS_ERR 0xf0 /* Last Failed Sense (ATAPI) */ /* Bits of HD_NSECTOR */ #define CD 0x01 Index: b/include/linux/ide.h =================================================================== --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -417,36 +417,6 @@ typedef union { } 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 */ typedef enum { ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/15] ide: remove atapi_error_t 2007-11-02 20:04 ` Bartlomiej Zolnierkiewicz @ 2007-11-04 13:05 ` Sergei Shtylyov 0 siblings, 0 replies; 4+ messages in thread From: Sergei Shtylyov @ 2007-11-04 13:05 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide Bartlomiej Zolnierkiewicz wrote: >>>Index: b/drivers/ide/ide-lib.c >>>=================================================================== >>>--- a/drivers/ide/ide-lib.c >>>+++ b/drivers/ide/ide-lib.c >>[...] >>>@@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv >>> } >>> printk("}\n"); >>> if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { >>>- error.all = HWIF(drive)->INB(IDE_ERROR_REG); >>>- printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all); >>>- if (error.b.ili) printk("IllegalLengthIndication "); >>>- if (error.b.eom) printk("EndOfMedia "); >>>- if (error.b.abrt) printk("AbortedCommand "); >>>- if (error.b.mcr) printk("MediaChangeRequested "); >>>- if (error.b.sense_key) printk("LastFailedSense=0x%02x ", >>>- error.b.sense_key); >>>+ err = drive->hwif->INB(IDE_ERROR_REG); >>>+ printk("%s: %s: error=0x%02x { ", drive->name, msg, err); >>>+ if (err & MARK_ERR) printk("IllegalLengthIndication "); >>>+ if (err & TRK0_ERR) printk("EndOfMedia "); >>>+ if (err & ABRT_ERR) printk("AbortedCommand "); >>>+ if (err & MCR_ERR) printk("MediaChangeRequested "); >>>+ if (err & 0xf0) printk("LastFailedSense=0x%02x ", >>>+ (err & 0xf0) >> 4); >> I'd rather prefer that the ATAPI bit definitions be added to >><linux/hdreg.h> -- the ATAPI sector count register fields definitions are >>already there... > Yeah, that should do it: > [PATCH] 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>. > Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> > Index: b/drivers/ide/ide-lib.c > =================================================================== > --- a/drivers/ide/ide-lib.c > +++ b/drivers/ide/ide-lib.c [...] > @@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv > } > printk("}\n"); > if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { > - error.all = HWIF(drive)->INB(IDE_ERROR_REG); > - printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all); > - if (error.b.ili) printk("IllegalLengthIndication "); > - if (error.b.eom) printk("EndOfMedia "); > - if (error.b.abrt) printk("AbortedCommand "); > - if (error.b.mcr) printk("MediaChangeRequested "); > - if (error.b.sense_key) printk("LastFailedSense=0x%02x ", > - error.b.sense_key); > + err = drive->hwif->INB(IDE_ERROR_REG); > + printk("%s: %s: error=0x%02x { ", drive->name, msg, err); > + if (err & ILI_ERR) printk("IllegalLengthIndication "); > + if (err & EOM_ERR) printk("EndOfMedia "); > + if (err & ABRT_ERR) printk("AbortedCommand "); > + if (err & MCR_ERR) printk("MediaChangeRequested "); Well, actually MCR bit is not defined for ATAPI (this condition should be reported via REQUEST SENSE I guess). > + if (err & LFS_ERR) printk("LastFailedSense=0x%02x ", > + (err & LFS_ERR) >> 4); > =================================================================== > --- a/include/linux/hdreg.h > +++ b/include/linux/hdreg.h [...] > @@ -52,6 +54,7 @@ > #define ECC_ERR 0x40 /* Uncorrectable ECC error */ > #define BBD_ERR 0x80 /* pre-EIDE meaning: block marked bad */ > #define ICRC_ERR 0x80 /* new meaning: CRC error during transfer */ > +#define LFS_ERR 0xf0 /* Last Failed Sense (ATAPI) */ Well, the field name is actually just "sense key"... MBR, Sergei ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-11-04 13:04 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-10-30 23:25 [PATCH 4/15] ide: remove atapi_error_t Bartlomiej Zolnierkiewicz 2007-11-01 18:47 ` Sergei Shtylyov 2007-11-02 20:04 ` Bartlomiej Zolnierkiewicz 2007-11-04 13:05 ` Sergei Shtylyov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).