floppy: support arbitrary first-sector numbers
authorKeith Wansbrough <keith@lochan.org>
Mon, 22 Sep 2008 21:57:17 +0000 (14:57 -0700)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 9 Oct 2008 06:56:19 +0000 (08:56 +0200)
commit9e49184c82e9ec3ab4d45f9ea5a17ccaf43869f0
tree532d70e75854e1f7c070d4818f3b44cefe528d3e
parent061837bc8687edc2739ef02f721b7ae0b8076390
floppy: support arbitrary first-sector numbers

The current floppy_struct allows floppies to number sectors starting
from 0 or 1.  This patch allows arbitrary first-sector numbers - for
example, 0xC1 for Amstrad CPC disks.

This extends the existing 1-bit field (FD_ZEROBASED, bit 2 of stretch)
to 8 bits (FD_SECTMASK, bits 2 to 9).

Currently 0x00 denotes a first sector number of 1, and 0x01 denotes a
first sector number of 0.  We extend this by interpreting FD_SECTMASK
as the first sector number with the LSB flipped.

Signed-off-by: Keith Wansbrough <keith@lochan.org>
Cc: Alain Knaff <alain@linux.lu>
Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
Cc: Karel Zak <kzak@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
drivers/block/floppy.c
include/linux/fd.h