1/*
2 * Many thanks to Lode Leroy <Lode.Leroy@www.ibase.be>, who tested so many
3 * ALPHA patches to this driver on an EASYSTOR LS-120 ATAPI floppy drive.
4 *
5 * Ver 0.1   Oct 17 96   Initial test version, mostly based on ide-tape.c.
6 * Ver 0.2   Oct 31 96   Minor changes.
7 * Ver 0.3   Dec  2 96   Fixed error recovery bug.
8 * Ver 0.4   Jan 26 97   Add support for the HDIO_GETGEO ioctl.
9 * Ver 0.5   Feb 21 97   Add partitions support.
10 *                       Use the minimum of the LBA and CHS capacities.
11 *                       Avoid hwgroup->rq == NULL on the last irq.
12 *                       Fix potential null dereferencing with DEBUG_LOG.
13 * Ver 0.8   Dec  7 97   Increase irq timeout from 10 to 50 seconds.
14 *                       Add media write-protect detection.
15 *                       Issue START command only if TEST UNIT READY fails.
16 *                       Add work-around for IOMEGA ZIP revision 21.D.
17 *                       Remove idefloppy_get_capabilities().
18 * Ver 0.9   Jul  4 99   Fix a bug which might have caused the number of
19 *                        bytes requested on each interrupt to be zero.
20 *                        Thanks to <shanos@es.co.nz> for pointing this out.
21 * Ver 0.9.sv Jan 6 01   Sam Varshavchik <mrsam@courier-mta.com>
22 *                       Implement low level formatting.  Reimplemented
23 *                       IDEFLOPPY_CAPABILITIES_PAGE, since we need the srfp
24 *                       bit.  My LS-120 drive barfs on
25 *                       IDEFLOPPY_CAPABILITIES_PAGE, but maybe it's just me.
26 *                       Compromise by not reporting a failure to get this
27 *                       mode page.  Implemented four IOCTLs in order to
28 *                       implement formatting.  IOCTls begin with 0x4600,
29 *                       0x46 is 'F' as in Format.
30 *            Jan 9 01   Userland option to select format verify.
31 *                       Added PC_SUPPRESS_ERROR flag - some idefloppy drives
32 *                       do not implement IDEFLOPPY_CAPABILITIES_PAGE, and
33 *                       return a sense error.  Suppress error reporting in
34 *                       this particular case in order to avoid spurious
35 *                       errors in syslog.  The culprit is
36 *                       idefloppy_get_capability_page(), so move it to
37 *                       idefloppy_begin_format() so that it's not used
38 *                       unless absolutely necessary.
39 *                       If drive does not support format progress indication
40 *                       monitor the dsc bit in the status register.
41 *                       Also, O_NDELAY on open will allow the device to be
42 *                       opened without a disk available.  This can be used to
43 *                       open an unformatted disk, or get the device capacity.
44 * Ver 0.91  Dec 11 99   Added IOMEGA Clik! drive support by
45 *     		   <paul@paulbristow.net>
46 * Ver 0.92  Oct 22 00   Paul Bristow became official maintainer for this
47 *           		   driver.  Included Powerbook internal zip kludge.
48 * Ver 0.93  Oct 24 00   Fixed bugs for Clik! drive
49 *                        no disk on insert and disk change now works
50 * Ver 0.94  Oct 27 00   Tidied up to remove strstr(Clik) everywhere
51 * Ver 0.95  Nov  7 00   Brought across to kernel 2.4
52 * Ver 0.96  Jan  7 01   Actually in line with release version of 2.4.0
53 *                       including set_bit patch from Rusty Russell
54 * Ver 0.97  Jul 22 01   Merge 0.91-0.96 onto 0.9.sv for ac series
55 * Ver 0.97.sv Aug 3 01  Backported from 2.4.7-ac3
56 * Ver 0.98  Oct 26 01   Split idefloppy_transfer_pc into two pieces to
57 *                        fix a lost interrupt problem. It appears the busy
58 *                        bit was being deasserted by my IOMEGA ATAPI ZIP 100
59 *                        drive before the drive was actually ready.
60 * Ver 0.98a Oct 29 01   Expose delay value so we can play.
61 * Ver 0.99  Feb 24 02   Remove duplicate code, modify clik! detection code
62 *                        to support new PocketZip drives
63 */
64