[PATCH v2 08/32] swim: Don't start motor until medium is present
Finn Thain <[email protected]>
| Newsgroups | org.kernel.vger.linux-m68k,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <a86d8ecf6ef9bfa0fa1fb4895a4b10e03e3e4a82.1786929430.git.fthain@linux-m68k.org> |
The spindle motor should not be running when a disk is to be inserted. Don't start the motor while the drive is empty. Reviewed-by: Laurent Vivier <[email protected]> Fixes: 8852ecd97488 ("m68k: mac - Add SWIM floppy support") Signed-off-by: Finn Thain <[email protected]> --- drivers/block/swim.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/block/swim.c b/drivers/block/swim.c index 597d35b514ae..6a49fc51f5d2 100644 --- a/drivers/block/swim.c +++ b/drivers/block/swim.c @@ -630,8 +630,7 @@ static int floppy_open(struct gendisk *disk, blk_mode_t mode) fs->ref_count++; swim_drive(base, fs->location); - swim_motor(base, ON); - swim_action(base, SETMFM); + if (fs->ejected) setup_medium(fs); if (!fs->disk_in) { @@ -639,6 +638,9 @@ static int floppy_open(struct gendisk *disk, blk_mode_t mode) goto out; } + swim_motor(base, ON); + swim_action(base, SETMFM); + set_capacity(fs->disk, fs->total_secs); if (mode & BLK_OPEN_NDELAY) -- 2.52.0