Re: FDC motor left on

From: Richard B. Johnson
Date: Mon Oct 06 2003 - 07:41:45 EST


On Sat, 4 Oct 2003, Dave Jones wrote:

> On Fri, Oct 03, 2003 at 01:25:30PM -0400, Richard B. Johnson wrote:
> > In linux-2.4.22 and earlier, if there is no FDC driver installed,
> > the FDC motor may continue to run after boot if the motor was
> > started as part of the BIOS boot sequence.
> > This patch turns OFF the motor once Linux gets control.
> >
> >
> > --- linux-2.4.22/arch/i386/boot/setup.S.orig Fri Aug 2 20:39:42 2002
> > +++ linux-2.4.22/arch/i386/boot/setup.S Fri Oct 3 11:50:43 2003
> > @@ -59,6 +59,8 @@
>
> Does this mean the 'kill_motor' function in bootsect.S isn't doing
> what it should be? If so, maybe that needs fixing instead of turning
> it off in two places ?
>
> Dave

Yes. I didn't even see that. The code there makes me kinda sick.
Anyway, the kill_motor function executes "reset diskette/disk" function
which will never turn OFF the drive. Instead, it will restart
the motor timer because, as a condition of reseting the diskette,
it must make sure the motor is running.

I suggest that the FDC control byte be read, then the result be
ANDed with ~0x10, then written back. The ifed-out code clears
the whole control word which is inappropriate at a time the
diskette channel may be still be active.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.22 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/