diff options
author | Joe Perches <joe@perches.com> | 2010-03-10 15:21:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-12 15:52:30 -0800 |
commit | 57584c5a3824a15f65d2b065d9f453fc1ae1dab7 (patch) | |
tree | e874998d0550a50d73dc191513aeaaf1c12487c6 /drivers | |
parent | 29f1c7848feb3954939b52fd5b7dca30dbce9426 (diff) |
drivers/block/floppy.c: add function is_ready_state
Used a couple of times, might simplify the code a bit.
Signed-off-by: Joe Perches <joe@perches.com>
Cc: Stephen Hemminger <shemminger@vyatta.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/floppy.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index e080e1930cc..1264102cdcb 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -782,6 +782,12 @@ static inline int is_selected(int dor, int unit) return ((dor & (0x10 << unit)) && (dor & 3) == unit); } +static bool is_ready_state(int status) +{ + int state = status & (STATUS_READY | STATUS_DIR | STATUS_DMA); + return state == STATUS_READY; +} + static int set_dor(int fdc, char mask, char data) { unsigned char unit; @@ -823,8 +829,10 @@ static void twaddle(void) DRS->select_date = jiffies; } -/* reset all driver information about the current fdc. This is needed after - * a reset, and after a raw command. */ +/* + * Reset all driver information about the current fdc. + * This is needed after a reset, and after a raw command. + */ static void reset_fdc_info(int mode) { int drive; @@ -1162,7 +1170,8 @@ static int output_byte(char byte) if (status < 0) return -1; - if ((status & (STATUS_READY | STATUS_DIR | STATUS_DMA)) == STATUS_READY) { + + if (is_ready_state(status)) { fd_outb(byte, FD_DATA); #ifdef FLOPPY_SANITY_CHECK output_log[output_log_pos].data = byte; @@ -1221,8 +1230,10 @@ static int need_more_output(void) if (status < 0) return -1; - if ((status & (STATUS_READY | STATUS_DIR | STATUS_DMA)) == STATUS_READY) + + if (is_ready_state(status)) return MORE_OUTPUT; + return result(); } |