ide: remove atapi_ireason_t
PATCH 7/15 ide: remove atapi_ireason_t
Remove atapi_ireason_t.
While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)
--- drivers/ide/ide-floppy.c | 25 ++++++++++++------------- drivers/ide/ide-tape.c | 27 +++++++++++++-------------- drivers/scsi/ide-scsi.c | 17 ++++++++--------- include/linux/ide.h | 24 ------------------------ 4 files changed, 33 insertions(+), 60 deletions(-)
drivers/ide/ide-floppy.c +12 -13
@@ -788,12 +788,11 @@ static ide_startstop_t idefloppy_pc_intr {idefloppy_floppy_t *floppy = drive->driver_data;ide_hwif_t *hwif = drive->hwif; -atapi_ireason_t ireason;idefloppy_pc_t *pc = floppy->pc;struct request *rq = pc->rq;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;debug_log (KERN_INFO "ide-floppy: Reached %s interrupt handler\n" , __FUNCTION__);
@@ -852,18 +851,18 @@ static ide_startstop_t idefloppy_pc_intr bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG );/* on this interrupt */ - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &1 ) {printk (KERN_ERR "ide-floppy: CoD != 0 in idefloppy_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &1 ) ==test_bit (PC_WRITING , &pc->flags)) {/* Hopefully, we will never get here */ printk (KERN_ERR "ide-floppy: We wanted to %s, " , - ireason.b.io ?"Write" :"Read" ); + (ireason &1 ) ?"Write" :"Read" );printk (KERN_ERR "but the floppy wants us to %s !\n" , - ireason.b.io ?"Read" :"Write" ); + (ireason &1 ) ?"Read" :"Write" );return ide_do_reset (drive); }if (!test_bit (PC_WRITING , &pc->flags)) {
@@ -920,15 +919,15 @@ static ide_startstop_t idefloppy_transfe {ide_startstop_t startstop;idefloppy_floppy_t *floppy = drive->driver_data; -atapi_ireason_t ireason; +u8 ireason;if (ide_wait_stat (&startstop, drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-floppy: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = drive->hwif->INB (IDE_IREASON_REG ); +if ((ireason &2 ) ==0 || (ireason &1 )) {printk (KERN_ERR "ide-floppy: (IO,CoD) != (0,1) while " "issuing a packet command\n" );return ide_do_reset (drive);
@@ -968,15 +967,15 @@ static ide_startstop_t idefloppy_transfe {idefloppy_floppy_t *floppy = drive->driver_data;ide_startstop_t startstop; -atapi_ireason_t ireason; +u8 ireason;if (ide_wait_stat (&startstop, drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-floppy: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = drive->hwif->INB (IDE_IREASON_REG ); +if ((ireason &2 ) ==0 || (ireason &1 )) {printk (KERN_ERR "ide-floppy: (IO,CoD) != (0,1) " "while issuing a packet command\n" );return ide_do_reset (drive);
drivers/ide/ide-tape.c +13 -14
@@ -1847,14 +1847,13 @@ static ide_startstop_t idetape_pc_intr ( {ide_hwif_t *hwif = drive->hwif;idetape_tape_t *tape = drive->driver_data; -atapi_ireason_t ireason;idetape_pc_t *pc = tape->pc;unsigned int temp;#if SIMULATE_ERRORS static int error_sim_count =0 ;#endif u16 bcount; -u8 stat; +u8 stat, ireason;#if IDETAPE_DEBUG_LOG if (tape->debug_level >=4 )
@@ -1965,18 +1964,18 @@ static ide_startstop_t idetape_pc_intr ( bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG ); - ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &2 ) {printk (KERN_ERR "ide-tape: CoD != 0 in idetape_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &1 ) ==test_bit (PC_WRITING , &pc->flags)) {/* Hopefully, we will never get here */ printk (KERN_ERR "ide-tape: We wanted to %s, " , - ireason.b.io ?"Write" :"Read" ); + (ireason &1 ) ?"Write" :"Read" );printk (KERN_ERR "ide-tape: but the tape wants us to %s !\n" , - ireason.b.io ?"Read" :"Write" ); + (ireason &1 ) ?"Read" :"Write" );return ide_do_reset (drive); }if (!test_bit (PC_WRITING , &pc->flags)) {
@@ -2070,28 +2069,28 @@ static ide_startstop_t idetape_transfer_ide_hwif_t *hwif = drive->hwif;idetape_tape_t *tape = drive->driver_data;idetape_pc_t *pc = tape->pc; -atapi_ireason_t ireason;int retries =100 ;ide_startstop_t startstop; +u8 ireason;if (ide_wait_stat (&startstop,drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-tape: Strange, packet command initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all = hwif->INB (IDE_IREASON_REG ); -while (retries-- && (!ireason.b.cod || ireason.b.io)) { + ireason = hwif->INB (IDE_IREASON_REG ); +while (retries-- && ((ireason &2 ) ==0 || (ireason &1 ))) {printk (KERN_ERR "ide-tape: (IO,CoD != (0,1) while issuing " "a packet command, retrying\n" );udelay (100 ); - ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG );if (retries ==0 ) {printk (KERN_ERR "ide-tape: (IO,CoD != (0,1) while " "issuing a packet command, ignoring\n" ); - ireason.b.cod =1 ; - ireason.b.io =0 ; + ireason |=2 ;/* set CoD */ + ireason &= ~1 ;/* clear IO */ } } -if (!ireason.b.cod || ireason.b.io) { +if ((ireason &2 ) ==0 || (ireason &1 )) {printk (KERN_ERR "ide-tape: (IO,CoD) != (0,1) while issuing " "a packet command\n" );return ide_do_reset (drive);
drivers/scsi/ide-scsi.c +8 -9
@@ -403,10 +403,9 @@ static ide_startstop_t idescsi_pc_intr (ide_hwif_t *hwif = drive->hwif;idescsi_pc_t *pc = scsi->pc;struct request *rq = pc->rq; -atapi_ireason_t ireason;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;#if IDESCSI_DEBUG_LOG printk (KERN_INFO "ide-scsi: Reached idescsi_pc_intr interrupt handler\n" );
@@ -444,13 +443,13 @@ static ide_startstop_t idescsi_pc_intr ( } bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG ); - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &2 ) {printk (KERN_ERR "ide-scsi: CoD != 0 in idescsi_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io) { +if (ireason &1 ) { temp = pc->actually_transferred + bcount;if (temp > pc->request_transfer) {if (temp > pc->buffer_size) {
@@ -479,7 +478,7 @@ static ide_startstop_t idescsi_pc_intr (#endif /* IDESCSI_DEBUG_LOG */ } } -if (ireason.b.io) { +if (ireason &1 ) {clear_bit (PC_WRITING , &pc->flags);if (pc->sg)idescsi_input_buffers (drive, pc, bcount);
@@ -508,16 +507,16 @@ static ide_startstop_t idescsi_transfer_ide_hwif_t *hwif = drive->hwif;idescsi_scsi_t *scsi =drive_to_idescsi (drive);idescsi_pc_t *pc = scsi->pc; -atapi_ireason_t ireason;ide_startstop_t startstop; +u8 ireason;if (ide_wait_stat (&startstop,drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-scsi: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = hwif->INB (IDE_IREASON_REG ); +if ((ireason &2 ) ==0 || (ireason &1 )) {printk (KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while " "issuing a packet command\n" );return ide_do_reset (drive);
include/linux/ide.h +0 -24
@@ -346,30 +346,6 @@ typedef union { } select_t, ata_select_t;/* -* ATAPI Interrupt Reason Register. -* -* cod : Information transferred is command (1) or data (0) -* io : The device requests us to read (1) or write (0) -* reserved : Reserved -*/ -typedef union { -unsigned all :8 ; -struct { -#if defined(__LITTLE_ENDIAN_BITFIELD) -unsigned cod :1 ; -unsigned io :1 ; -unsigned reserved :6 ; -#elif defined(__BIG_ENDIAN_BITFIELD) -unsigned reserved :6 ; -unsigned io :1 ; -unsigned cod :1 ; -#else -#error "Please fix <asm/byteorder.h>" -#endif - } b; -}atapi_ireason_t ; - -/* * Status returned from various ide_ functions */ typedef enum {
Quoted 7 lines · Bartlomiej Zolnierkiewicz
Remove
atapi_ireason_t.While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
[...]
[PATCH] ide: remove atapi_ireason_t (take 2)
Remove atapi_ireason_t.
While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)
v2:
* v1 had CD and IO bits reversed in many places.
* Use CD and IO defines from <linux/hdreg.h>.
--- drivers/ide/ide-floppy.c | 25 ++++++++++++------------- drivers/ide/ide-tape.c | 27 +++++++++++++-------------- drivers/scsi/ide-scsi.c | 17 ++++++++--------- include/linux/ide.h | 24 ------------------------ 4 files changed, 33 insertions(+), 60 deletions(-)
drivers/ide/ide-floppy.c +12 -13
@@ -788,12 +788,11 @@ static ide_startstop_t idefloppy_pc_intr {idefloppy_floppy_t *floppy = drive->driver_data;ide_hwif_t *hwif = drive->hwif; -atapi_ireason_t ireason;idefloppy_pc_t *pc = floppy->pc;struct request *rq = pc->rq;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;debug_log (KERN_INFO "ide-floppy: Reached %s interrupt handler\n" , __FUNCTION__);
@@ -852,18 +851,18 @@ static ide_startstop_t idefloppy_pc_intr bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG );/* on this interrupt */ - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-floppy: CoD != 0 in idefloppy_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &IO ) ==test_bit (PC_WRITING , &pc->flags)) {/* Hopefully, we will never get here */ printk (KERN_ERR "ide-floppy: We wanted to %s, " , - ireason.b.io ?"Write" :"Read" ); + (ireason &IO ) ?"Write" :"Read" );printk (KERN_ERR "but the floppy wants us to %s !\n" , - ireason.b.io ?"Read" :"Write" ); + (ireason &IO ) ?"Read" :"Write" );return ide_do_reset (drive); }if (!test_bit (PC_WRITING , &pc->flags)) {
@@ -920,15 +919,15 @@ static ide_startstop_t idefloppy_transfe {ide_startstop_t startstop;idefloppy_floppy_t *floppy = drive->driver_data; -atapi_ireason_t ireason; +u8 ireason;if (ide_wait_stat (&startstop, drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-floppy: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = drive->hwif->INB (IDE_IREASON_REG ); +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-floppy: (IO,CoD) != (0,1) while " "issuing a packet command\n" );return ide_do_reset (drive);
@@ -968,15 +967,15 @@ static ide_startstop_t idefloppy_transfe {idefloppy_floppy_t *floppy = drive->driver_data;ide_startstop_t startstop; -atapi_ireason_t ireason; +u8 ireason;if (ide_wait_stat (&startstop, drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-floppy: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = drive->hwif->INB (IDE_IREASON_REG ); +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-floppy: (IO,CoD) != (0,1) " "while issuing a packet command\n" );return ide_do_reset (drive);
drivers/ide/ide-tape.c +13 -14
@@ -1847,14 +1847,13 @@ static ide_startstop_t idetape_pc_intr ( {ide_hwif_t *hwif = drive->hwif;idetape_tape_t *tape = drive->driver_data; -atapi_ireason_t ireason;idetape_pc_t *pc = tape->pc;unsigned int temp;#if SIMULATE_ERRORS static int error_sim_count =0 ;#endif u16 bcount; -u8 stat; +u8 stat, ireason;#if IDETAPE_DEBUG_LOG if (tape->debug_level >=4 )
@@ -1965,18 +1964,18 @@ static ide_startstop_t idetape_pc_intr ( bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG ); - ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-tape: CoD != 0 in idetape_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &IO ) ==test_bit (PC_WRITING , &pc->flags)) {/* Hopefully, we will never get here */ printk (KERN_ERR "ide-tape: We wanted to %s, " , - ireason.b.io ?"Write" :"Read" ); + (ireason &IO ) ?"Write" :"Read" );printk (KERN_ERR "ide-tape: but the tape wants us to %s !\n" , - ireason.b.io ?"Read" :"Write" ); + (ireason &IO ) ?"Read" :"Write" );return ide_do_reset (drive); }if (!test_bit (PC_WRITING , &pc->flags)) {
@@ -2070,28 +2069,28 @@ static ide_startstop_t idetape_transfer_ide_hwif_t *hwif = drive->hwif;idetape_tape_t *tape = drive->driver_data;idetape_pc_t *pc = tape->pc; -atapi_ireason_t ireason;int retries =100 ;ide_startstop_t startstop; +u8 ireason;if (ide_wait_stat (&startstop,drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-tape: Strange, packet command initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all = hwif->INB (IDE_IREASON_REG ); -while (retries-- && (!ireason.b.cod || ireason.b.io)) { + ireason = hwif->INB (IDE_IREASON_REG ); +while (retries-- && ((ireason &CD ) ==0 || (ireason &IO ))) {printk (KERN_ERR "ide-tape: (IO,CoD != (0,1) while issuing " "a packet command, retrying\n" );udelay (100 ); - ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG );if (retries ==0 ) {printk (KERN_ERR "ide-tape: (IO,CoD != (0,1) while " "issuing a packet command, ignoring\n" ); - ireason.b.cod =1 ; - ireason.b.io =0 ; + ireason |=CD ; + ireason &= ~IO ; } } -if (!ireason.b.cod || ireason.b.io) { +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-tape: (IO,CoD) != (0,1) while issuing " "a packet command\n" );return ide_do_reset (drive);
drivers/scsi/ide-scsi.c +8 -9
@@ -403,10 +403,9 @@ static ide_startstop_t idescsi_pc_intr (ide_hwif_t *hwif = drive->hwif;idescsi_pc_t *pc = scsi->pc;struct request *rq = pc->rq; -atapi_ireason_t ireason;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;#if IDESCSI_DEBUG_LOG printk (KERN_INFO "ide-scsi: Reached idescsi_pc_intr interrupt handler\n" );
@@ -444,13 +443,13 @@ static ide_startstop_t idescsi_pc_intr ( } bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG ); - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-scsi: CoD != 0 in idescsi_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io) { +if (ireason &IO ) { temp = pc->actually_transferred + bcount;if (temp > pc->request_transfer) {if (temp > pc->buffer_size) {
@@ -479,7 +478,7 @@ static ide_startstop_t idescsi_pc_intr (#endif /* IDESCSI_DEBUG_LOG */ } } -if (ireason.b.io) { +if (ireason &IO ) {clear_bit (PC_WRITING , &pc->flags);if (pc->sg)idescsi_input_buffers (drive, pc, bcount);
@@ -508,16 +507,16 @@ static ide_startstop_t idescsi_transfer_ide_hwif_t *hwif = drive->hwif;idescsi_scsi_t *scsi =drive_to_idescsi (drive);idescsi_pc_t *pc = scsi->pc; -atapi_ireason_t ireason;ide_startstop_t startstop; +u8 ireason;if (ide_wait_stat (&startstop,drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-scsi: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = hwif->INB (IDE_IREASON_REG ); +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while " "issuing a packet command\n" );return ide_do_reset (drive);
include/linux/ide.h +0 -24
@@ -346,30 +346,6 @@ typedef union { } select_t, ata_select_t;/* -* ATAPI Interrupt Reason Register. -* -* cod : Information transferred is command (1) or data (0) -* io : The device requests us to read (1) or write (0) -* reserved : Reserved -*/ -typedef union { -unsigned all :8 ; -struct { -#if defined(__LITTLE_ENDIAN_BITFIELD) -unsigned cod :1 ; -unsigned io :1 ; -unsigned reserved :6 ; -#elif defined(__BIG_ENDIAN_BITFIELD) -unsigned reserved :6 ; -unsigned io :1 ; -unsigned cod :1 ; -#else -#error "Please fix <asm/byteorder.h>" -#endif - } b; -}atapi_ireason_t ; - -/* * Status returned from various ide_ functions */ typedef enum {
Quoted 11 lines · Bartlomiej Zolnierkiewicz
[PATCH] ide: remove
atapi_ireason_t(take 2)Remove
atapi_ireason_t.While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)v2:
* v1 had CD and IO bits reversed in many places.* Use CD and IO defines from <
linux/hdreg.h>.
You're reading my mind. :-)
Quoted 25 lines
Cc Sergei Shtylyov <[email protected]>Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>Index:
b/drivers/ide/ide-floppy.c
===================================================================drivers/ide/ide-floppy.c +1
-2@@ -788,12 +788,11 @@ static ide_startstop_t idefloppy_pc_intr {idefloppy_floppy_t *floppy = drive->driver_data;ide_hwif_t *hwif = drive->hwif; -atapi_ireason_t ireason;idefloppy_pc_t *pc = floppy->pc;struct request *rq = pc->rq;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;debug_log (KERN_INFO "ide-floppy: Reached %s interrupt handler\n" , __FUNCTION__);@@ -852,18 +851,18 @@ static ide_startstop_t idefloppy_pc_intr bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG );/* on this interrupt */
drivers/ide/ide-floppy.c static ide_startstop_t idefloppy_pc_intr · line 860
Quoted 10 lines
drivers/ide/ide-floppy.c +3
-3- ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-floppy: CoD != 0 in idefloppy_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &IO ) ==test_bit (PC_WRITING , &pc->flags)) {
This won't work as IO is 0x02 and test_bit() returns 0 or 1.
[...]
Quoted 4 lines
Index:
b/drivers/ide/ide-tape.c
===================================================================drivers/ide/ide-tape.c +0
-0
[...]
Quoted 4 lines
drivers/ide/ide-tape.c +0
-0@@ -1965,18 +1964,18 @@ static ide_startstop_t idetape_pc_intr ( bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG );
drivers/ide/ide-tape.c static ide_startstop_t idetape_pc_intr ( · line 1973
Quoted 10 lines
drivers/ide/ide-tape.c +3
-3- ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-tape: CoD != 0 in idetape_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &IO ) ==test_bit (PC_WRITING , &pc->flags)) {
This won't work either...
[...]
MBR, Sergei
Quoted 44 lines · Sergei Shtylyov
Quoted 11 lines · Bartlomiej Zolnierkiewicz
[PATCH] ide: remove
atapi_ireason_t(take 2)Remove
atapi_ireason_t.While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)v2:
* v1 had CD and IO bits reversed in many places.* Use CD and IO defines from <
linux/hdreg.h>.You're reading my mind. :-)
Quoted 28 lines
Cc Sergei Shtylyov <[email protected]>Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>Index:
b/drivers/ide/ide-floppy.c
===================================================================drivers/ide/ide-floppy.c +2
-3@@ -788,12 +788,11 @@ static ide_startstop_t idefloppy_pc_intr {idefloppy_floppy_t *floppy = drive->driver_data;ide_hwif_t *hwif = drive->hwif; -atapi_ireason_t ireason;idefloppy_pc_t *pc = floppy->pc;struct request *rq = pc->rq;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;debug_log (KERN_INFO "ide-floppy: Reached %s interrupt handler\n" , __FUNCTION__);@@ -852,18 +851,18 @@ static ide_startstop_t idefloppy_pc_intr bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG );/* on this interrupt */ - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG );
Quoted 9 lines
drivers/ide/ide-floppy.c static ide_startstop_t idefloppy_pc_intr · line 860
Quoted 7 lines
drivers/ide/ide-floppy.c +2
-2-if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-floppy: CoD != 0 in idefloppy_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if ((ireason &IO ) ==test_bit (PC_WRITING , &pc->flags)) {This won't work as IO is 0x02 and test_bit() returns 0 or 1.
Thanks!
[ Heh, after "take 2" I had a feeling that something still may be not right
so I deferred committing of this patch series to the official tree... :) ]
[PATCH] ide: remove atapi_ireason_t (take 3)
Remove atapi_ireason_t.
While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)
v2:
* v1 had CD and IO bits reversed in many places.
* Use CD and IO defines from <linux/hdreg.h>.
v3:
* Fix incorrect "(ireason & IO) == test_bit()". (Noticed by Sergei)
--- drivers/ide/ide-floppy.c | 25 ++++++++++++------------- drivers/ide/ide-tape.c | 27 +++++++++++++-------------- drivers/scsi/ide-scsi.c | 17 ++++++++--------- include/linux/ide.h | 24 ------------------------ 4 files changed, 33 insertions(+), 60 deletions(-)
drivers/ide/ide-floppy.c +12 -13
@@ -788,12 +788,11 @@ static ide_startstop_t idefloppy_pc_intr {idefloppy_floppy_t *floppy = drive->driver_data;ide_hwif_t *hwif = drive->hwif; -atapi_ireason_t ireason;idefloppy_pc_t *pc = floppy->pc;struct request *rq = pc->rq;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;debug_log (KERN_INFO "ide-floppy: Reached %s interrupt handler\n" , __FUNCTION__);
@@ -852,18 +851,18 @@ static ide_startstop_t idefloppy_pc_intr bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG );/* on this interrupt */ - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-floppy: CoD != 0 in idefloppy_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if (((ireason &IO ) ==IO ) ==test_bit (PC_WRITING , &pc->flags)) {/* Hopefully, we will never get here */ printk (KERN_ERR "ide-floppy: We wanted to %s, " , - ireason.b.io ?"Write" :"Read" ); + (ireason &IO ) ?"Write" :"Read" );printk (KERN_ERR "but the floppy wants us to %s !\n" , - ireason.b.io ?"Read" :"Write" ); + (ireason &IO ) ?"Read" :"Write" );return ide_do_reset (drive); }if (!test_bit (PC_WRITING , &pc->flags)) {
@@ -920,15 +919,15 @@ static ide_startstop_t idefloppy_transfe {ide_startstop_t startstop;idefloppy_floppy_t *floppy = drive->driver_data; -atapi_ireason_t ireason; +u8 ireason;if (ide_wait_stat (&startstop, drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-floppy: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = drive->hwif->INB (IDE_IREASON_REG ); +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-floppy: (IO,CoD) != (0,1) while " "issuing a packet command\n" );return ide_do_reset (drive);
@@ -968,15 +967,15 @@ static ide_startstop_t idefloppy_transfe {idefloppy_floppy_t *floppy = drive->driver_data;ide_startstop_t startstop; -atapi_ireason_t ireason; +u8 ireason;if (ide_wait_stat (&startstop, drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-floppy: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = drive->hwif->INB (IDE_IREASON_REG ); +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-floppy: (IO,CoD) != (0,1) " "while issuing a packet command\n" );return ide_do_reset (drive);
drivers/ide/ide-tape.c +13 -14
@@ -1847,14 +1847,13 @@ static ide_startstop_t idetape_pc_intr ( {ide_hwif_t *hwif = drive->hwif;idetape_tape_t *tape = drive->driver_data; -atapi_ireason_t ireason;idetape_pc_t *pc = tape->pc;unsigned int temp;#if SIMULATE_ERRORS static int error_sim_count =0 ;#endif u16 bcount; -u8 stat; +u8 stat, ireason;#if IDETAPE_DEBUG_LOG if (tape->debug_level >=4 )
@@ -1965,18 +1964,18 @@ static ide_startstop_t idetape_pc_intr ( bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG ); - ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-tape: CoD != 0 in idetape_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io ==test_bit (PC_WRITING , &pc->flags)) { +if (((ireason &IO ) ==IO ) ==test_bit (PC_WRITING , &pc->flags)) {/* Hopefully, we will never get here */ printk (KERN_ERR "ide-tape: We wanted to %s, " , - ireason.b.io ?"Write" :"Read" ); + (ireason &IO ) ?"Write" :"Read" );printk (KERN_ERR "ide-tape: but the tape wants us to %s !\n" , - ireason.b.io ?"Read" :"Write" ); + (ireason &IO ) ?"Read" :"Write" );return ide_do_reset (drive); }if (!test_bit (PC_WRITING , &pc->flags)) {
@@ -2070,28 +2069,28 @@ static ide_startstop_t idetape_transfer_ide_hwif_t *hwif = drive->hwif;idetape_tape_t *tape = drive->driver_data;idetape_pc_t *pc = tape->pc; -atapi_ireason_t ireason;int retries =100 ;ide_startstop_t startstop; +u8 ireason;if (ide_wait_stat (&startstop,drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-tape: Strange, packet command initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all = hwif->INB (IDE_IREASON_REG ); -while (retries-- && (!ireason.b.cod || ireason.b.io)) { + ireason = hwif->INB (IDE_IREASON_REG ); +while (retries-- && ((ireason &CD ) ==0 || (ireason &IO ))) {printk (KERN_ERR "ide-tape: (IO,CoD != (0,1) while issuing " "a packet command, retrying\n" );udelay (100 ); - ireason.all = hwif->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG );if (retries ==0 ) {printk (KERN_ERR "ide-tape: (IO,CoD != (0,1) while " "issuing a packet command, ignoring\n" ); - ireason.b.cod =1 ; - ireason.b.io =0 ; + ireason |=CD ; + ireason &= ~IO ; } } -if (!ireason.b.cod || ireason.b.io) { +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-tape: (IO,CoD) != (0,1) while issuing " "a packet command\n" );return ide_do_reset (drive);
drivers/scsi/ide-scsi.c +8 -9
@@ -403,10 +403,9 @@ static ide_startstop_t idescsi_pc_intr (ide_hwif_t *hwif = drive->hwif;idescsi_pc_t *pc = scsi->pc;struct request *rq = pc->rq; -atapi_ireason_t ireason;unsigned int temp;u16 bcount; -u8 stat; +u8 stat, ireason;#if IDESCSI_DEBUG_LOG printk (KERN_INFO "ide-scsi: Reached idescsi_pc_intr interrupt handler\n" );
@@ -444,13 +443,13 @@ static ide_startstop_t idescsi_pc_intr ( } bcount = (hwif->INB (IDE_BCOUNTH_REG ) <<8 ) | hwif->INB (IDE_BCOUNTL_REG ); - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); + ireason = hwif->INB (IDE_IREASON_REG ); -if (ireason.b.cod) { +if (ireason &CD ) {printk (KERN_ERR "ide-scsi: CoD != 0 in idescsi_pc_intr\n" );return ide_do_reset (drive); } -if (ireason.b.io) { +if (ireason &IO ) { temp = pc->actually_transferred + bcount;if (temp > pc->request_transfer) {if (temp > pc->buffer_size) {
@@ -479,7 +478,7 @@ static ide_startstop_t idescsi_pc_intr (#endif /* IDESCSI_DEBUG_LOG */ } } -if (ireason.b.io) { +if (ireason &IO ) {clear_bit (PC_WRITING , &pc->flags);if (pc->sg)idescsi_input_buffers (drive, pc, bcount);
@@ -508,16 +507,16 @@ static ide_startstop_t idescsi_transfer_ide_hwif_t *hwif = drive->hwif;idescsi_scsi_t *scsi =drive_to_idescsi (drive);idescsi_pc_t *pc = scsi->pc; -atapi_ireason_t ireason;ide_startstop_t startstop; +u8 ireason;if (ide_wait_stat (&startstop,drive,DRQ_STAT ,BUSY_STAT ,WAIT_READY )) {printk (KERN_ERR "ide-scsi: Strange, packet command " "initiated yet DRQ isn't asserted\n" );return startstop; } - ireason.all =HWIF (drive)->INB (IDE_IREASON_REG ); -if (!ireason.b.cod || ireason.b.io) { + ireason = hwif->INB (IDE_IREASON_REG ); +if ((ireason &CD ) ==0 || (ireason &IO )) {printk (KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while " "issuing a packet command\n" );return ide_do_reset (drive);
include/linux/ide.h +0 -24
@@ -346,30 +346,6 @@ typedef union { } select_t, ata_select_t;/* -* ATAPI Interrupt Reason Register. -* -* cod : Information transferred is command (1) or data (0) -* io : The device requests us to read (1) or write (0) -* reserved : Reserved -*/ -typedef union { -unsigned all :8 ; -struct { -#if defined(__LITTLE_ENDIAN_BITFIELD) -unsigned cod :1 ; -unsigned io :1 ; -unsigned reserved :6 ; -#elif defined(__BIG_ENDIAN_BITFIELD) -unsigned reserved :6 ; -unsigned io :1 ; -unsigned cod :1 ; -#else -#error "Please fix <asm/byteorder.h>" -#endif - } b; -}atapi_ireason_t ; - -/* * Status returned from various ide_ functions */ typedef enum {
Sergei Shtylyov
Acked-byQuoted 15 lines · Bartlomiej Zolnierkiewicz
Thanks!
[ Heh, after "take 2" I had a feeling that something still may be not right
so I deferred committing of this patch series to the official tree... :) ][PATCH] ide: remove
atapi_ireason_t(take 3)Remove
atapi_ireason_t.While at it:
* replace 'HWIF(drive)' by 'drive->hwif' (or just 'hwif' where possible)v2:
* v1 had CD and IO bits reversed in many places.
Quoted 6 lines
* Use CD and IO defines from <
linux/hdreg.h>.v3:
* Fix incorrect "(ireason & IO) ==test_bit()". (Noticed by Sergei)Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
MBR, Sergei