Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 187133
b: refs/heads/master
c: 87f530d
h: refs/heads/master
i:
  187131: 6d78083
v: v3
  • Loading branch information
Joe Perches authored and Linus Torvalds committed Mar 12, 2010
1 parent 5f2db75 commit f292f5b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 53 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 52a0d61f64123ab758d8b8cc8f8ca521733d2f32
refs/heads/master: 87f530d8f1733651f3e34b81c801d6e1bb635936
83 changes: 31 additions & 52 deletions trunk/drivers/block/floppy.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,15 @@
#define DEBUGT 2
#define DCL_DEBUG /* debug disk change line */

#ifdef DCL_DEBUG
#define debug_dcl(test, fmt, args...) \
do { if ((test) & FD_DEBUG) DPRINT(fmt, ##args); } while (0)
#else
#define debug_dcl(test, fmt, args...) \
do { if (0) DPRINT(fmt, ##args); } while (0)
#endif


/* do print messages for unexpected interrupts */
static int print_unex = 1;
#include <linux/module.h>
Expand Down Expand Up @@ -748,14 +757,12 @@ static int disk_change(int drive)
}
#endif

#ifdef DCL_DEBUG
if (UDP->flags & FD_DEBUG) {
DPRINT("checking disk change line for drive %d\n", drive);
DPRINT("jiffies=%lu\n", jiffies);
DPRINT("disk change line=%x\n", fd_inb(FD_DIR) & 0x80);
DPRINT("flags=%lx\n", UDRS->flags);
}
#endif
debug_dcl(UDP->flags,
"checking disk change line for drive %d\n", drive);
debug_dcl(UDP->flags, "jiffies=%lu\n", jiffies);
debug_dcl(UDP->flags, "disk change line=%x\n", fd_inb(FD_DIR) & 0x80);
debug_dcl(UDP->flags, "flags=%lx\n", UDRS->flags);

if (UDP->flags & FD_BROKEN_DCL)
return UTESTF(FD_DISK_CHANGED);
if ((fd_inb(FD_DIR) ^ UDP->flags) & 0x80) {
Expand Down Expand Up @@ -804,10 +811,8 @@ static int set_dor(int fdc, char mask, char data)
unit = olddor & 0x3;
if (is_selected(olddor, unit) && !is_selected(newdor, unit)) {
drive = REVDRIVE(fdc, unit);
#ifdef DCL_DEBUG
if (UDP->flags & FD_DEBUG)
DPRINT("calling disk change from set_dor\n");
#endif
debug_dcl(UDP->flags,
"calling disk change from set_dor\n");
disk_change(drive);
}
FDCS->dor = newdor;
Expand Down Expand Up @@ -1020,10 +1025,7 @@ static void cancel_activity(void)
* transfer */
static void fd_watchdog(void)
{
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("calling disk change from watchdog\n");
#endif
debug_dcl(DP->flags, "calling disk change from watchdog\n");

if (disk_change(current_drive)) {
DPRINT("disk removed during i/o\n");
Expand Down Expand Up @@ -1582,12 +1584,9 @@ static void seek_interrupt(void)
return;
}
if (DRS->track >= 0 && DRS->track != ST1 && !blind_seek) {
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG) {
DPRINT("clearing NEWCHANGE flag because of effective seek\n");
DPRINT("jiffies=%lu\n", jiffies);
}
#endif
debug_dcl(DP->flags,
"clearing NEWCHANGE flag because of effective seek\n");
debug_dcl(DP->flags, "jiffies=%lu\n", jiffies);
CLEARF(FD_DISK_NEWCHANGE); /* effective seek */
DRS->select_date = jiffies;
}
Expand All @@ -1607,12 +1606,9 @@ static void check_wp(void)
}
CLEARF(FD_VERIFY);
CLEARF(FD_NEED_TWADDLE);
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG) {
DPRINT("checking whether disk is write protected\n");
DPRINT("wp=%x\n", ST3 & 0x40);
}
#endif
debug_dcl(DP->flags,
"checking whether disk is write protected\n");
debug_dcl(DP->flags, "wp=%x\n", ST3 & 0x40);
if (!(ST3 & 0x40))
SETF(FD_DISK_WRITABLE);
else
Expand All @@ -1626,10 +1622,7 @@ static void seek_floppy(void)

blind_seek = 0;

#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("calling disk change from seek\n");
#endif
debug_dcl(DP->flags, "calling disk change from seek\n");

if (!TESTF(FD_DISK_NEWCHANGE) &&
disk_change(current_drive) && (raw_cmd->flags & FD_RAW_NEED_DISK)) {
Expand Down Expand Up @@ -1705,10 +1698,8 @@ static void recal_interrupt(void)
* not to move at recalibration is to
* be already at track 0.) Clear the
* new change flag */
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("clearing NEWCHANGE flag because of second recalibrate\n");
#endif
debug_dcl(DP->flags,
"clearing NEWCHANGE flag because of second recalibrate\n");

CLEARF(FD_DISK_NEWCHANGE);
DRS->select_date = jiffies;
Expand Down Expand Up @@ -1968,10 +1959,7 @@ static void floppy_ready(void)
if (fdc_dtr())
return;

#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("calling disk change from floppy_ready\n");
#endif
debug_dcl(DP->flags, "calling disk change from floppy_ready\n");
if (!(raw_cmd->flags & FD_RAW_NO_MOTOR) &&
disk_change(current_drive) && !DP->select_delay)
twaddle(); /* this clears the dcl on certain
Expand Down Expand Up @@ -2002,10 +1990,7 @@ static void floppy_start(void)
reschedule_timeout(current_reqD, "floppy start", 0);

scandrives();
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("setting NEWCHANGE in floppy_start\n");
#endif
debug_dcl(DP->flags, "setting NEWCHANGE in floppy_start\n");
SETF(FD_DISK_NEWCHANGE);
floppy_ready();
}
Expand Down Expand Up @@ -3024,10 +3009,7 @@ static int poll_drive(int interruptible, int flag)
raw_cmd->track = 0;
raw_cmd->cmd_count = 0;
cont = &poll_cont;
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("setting NEWCHANGE in poll_drive\n");
#endif
debug_dcl(DP->flags, "setting NEWCHANGE in poll_drive\n");
SETF(FD_DISK_NEWCHANGE);
WAIT(floppy_ready);
return ret;
Expand Down Expand Up @@ -3290,10 +3272,7 @@ static int raw_cmd_ioctl(int cmd, void __user *param)
raw_cmd = my_raw_cmd;
cont = &raw_cmd_cont;
ret = wait_til_done(floppy_start, 1);
#ifdef DCL_DEBUG
if (DP->flags & FD_DEBUG)
DPRINT("calling disk change from raw_cmd ioctl\n");
#endif
debug_dcl(DP->flags, "calling disk change from raw_cmd ioctl\n");

if (ret != -EINTR && FDCS->reset)
ret = -EIO;
Expand Down

0 comments on commit f292f5b

Please sign in to comment.