* [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).