18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Many thanks to Lode Leroy <Lode.Leroy@www.ibase.be>, who tested so many
38c2ecf20Sopenharmony_ci * ALPHA patches to this driver on an EASYSTOR LS-120 ATAPI floppy drive.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Ver 0.1   Oct 17 96   Initial test version, mostly based on ide-tape.c.
68c2ecf20Sopenharmony_ci * Ver 0.2   Oct 31 96   Minor changes.
78c2ecf20Sopenharmony_ci * Ver 0.3   Dec  2 96   Fixed error recovery bug.
88c2ecf20Sopenharmony_ci * Ver 0.4   Jan 26 97   Add support for the HDIO_GETGEO ioctl.
98c2ecf20Sopenharmony_ci * Ver 0.5   Feb 21 97   Add partitions support.
108c2ecf20Sopenharmony_ci *                       Use the minimum of the LBA and CHS capacities.
118c2ecf20Sopenharmony_ci *                       Avoid hwgroup->rq == NULL on the last irq.
128c2ecf20Sopenharmony_ci *                       Fix potential null dereferencing with DEBUG_LOG.
138c2ecf20Sopenharmony_ci * Ver 0.8   Dec  7 97   Increase irq timeout from 10 to 50 seconds.
148c2ecf20Sopenharmony_ci *                       Add media write-protect detection.
158c2ecf20Sopenharmony_ci *                       Issue START command only if TEST UNIT READY fails.
168c2ecf20Sopenharmony_ci *                       Add work-around for IOMEGA ZIP revision 21.D.
178c2ecf20Sopenharmony_ci *                       Remove idefloppy_get_capabilities().
188c2ecf20Sopenharmony_ci * Ver 0.9   Jul  4 99   Fix a bug which might have caused the number of
198c2ecf20Sopenharmony_ci *                        bytes requested on each interrupt to be zero.
208c2ecf20Sopenharmony_ci *                        Thanks to <shanos@es.co.nz> for pointing this out.
218c2ecf20Sopenharmony_ci * Ver 0.9.sv Jan 6 01   Sam Varshavchik <mrsam@courier-mta.com>
228c2ecf20Sopenharmony_ci *                       Implement low level formatting.  Reimplemented
238c2ecf20Sopenharmony_ci *                       IDEFLOPPY_CAPABILITIES_PAGE, since we need the srfp
248c2ecf20Sopenharmony_ci *                       bit.  My LS-120 drive barfs on
258c2ecf20Sopenharmony_ci *                       IDEFLOPPY_CAPABILITIES_PAGE, but maybe it's just me.
268c2ecf20Sopenharmony_ci *                       Compromise by not reporting a failure to get this
278c2ecf20Sopenharmony_ci *                       mode page.  Implemented four IOCTLs in order to
288c2ecf20Sopenharmony_ci *                       implement formatting.  IOCTls begin with 0x4600,
298c2ecf20Sopenharmony_ci *                       0x46 is 'F' as in Format.
308c2ecf20Sopenharmony_ci *            Jan 9 01   Userland option to select format verify.
318c2ecf20Sopenharmony_ci *                       Added PC_SUPPRESS_ERROR flag - some idefloppy drives
328c2ecf20Sopenharmony_ci *                       do not implement IDEFLOPPY_CAPABILITIES_PAGE, and
338c2ecf20Sopenharmony_ci *                       return a sense error.  Suppress error reporting in
348c2ecf20Sopenharmony_ci *                       this particular case in order to avoid spurious
358c2ecf20Sopenharmony_ci *                       errors in syslog.  The culprit is
368c2ecf20Sopenharmony_ci *                       idefloppy_get_capability_page(), so move it to
378c2ecf20Sopenharmony_ci *                       idefloppy_begin_format() so that it's not used
388c2ecf20Sopenharmony_ci *                       unless absolutely necessary.
398c2ecf20Sopenharmony_ci *                       If drive does not support format progress indication
408c2ecf20Sopenharmony_ci *                       monitor the dsc bit in the status register.
418c2ecf20Sopenharmony_ci *                       Also, O_NDELAY on open will allow the device to be
428c2ecf20Sopenharmony_ci *                       opened without a disk available.  This can be used to
438c2ecf20Sopenharmony_ci *                       open an unformatted disk, or get the device capacity.
448c2ecf20Sopenharmony_ci * Ver 0.91  Dec 11 99   Added IOMEGA Clik! drive support by
458c2ecf20Sopenharmony_ci *     		   <paul@paulbristow.net>
468c2ecf20Sopenharmony_ci * Ver 0.92  Oct 22 00   Paul Bristow became official maintainer for this
478c2ecf20Sopenharmony_ci *           		   driver.  Included Powerbook internal zip kludge.
488c2ecf20Sopenharmony_ci * Ver 0.93  Oct 24 00   Fixed bugs for Clik! drive
498c2ecf20Sopenharmony_ci *                        no disk on insert and disk change now works
508c2ecf20Sopenharmony_ci * Ver 0.94  Oct 27 00   Tidied up to remove strstr(Clik) everywhere
518c2ecf20Sopenharmony_ci * Ver 0.95  Nov  7 00   Brought across to kernel 2.4
528c2ecf20Sopenharmony_ci * Ver 0.96  Jan  7 01   Actually in line with release version of 2.4.0
538c2ecf20Sopenharmony_ci *                       including set_bit patch from Rusty Russell
548c2ecf20Sopenharmony_ci * Ver 0.97  Jul 22 01   Merge 0.91-0.96 onto 0.9.sv for ac series
558c2ecf20Sopenharmony_ci * Ver 0.97.sv Aug 3 01  Backported from 2.4.7-ac3
568c2ecf20Sopenharmony_ci * Ver 0.98  Oct 26 01   Split idefloppy_transfer_pc into two pieces to
578c2ecf20Sopenharmony_ci *                        fix a lost interrupt problem. It appears the busy
588c2ecf20Sopenharmony_ci *                        bit was being deasserted by my IOMEGA ATAPI ZIP 100
598c2ecf20Sopenharmony_ci *                        drive before the drive was actually ready.
608c2ecf20Sopenharmony_ci * Ver 0.98a Oct 29 01   Expose delay value so we can play.
618c2ecf20Sopenharmony_ci * Ver 0.99  Feb 24 02   Remove duplicate code, modify clik! detection code
628c2ecf20Sopenharmony_ci *                        to support new PocketZip drives
638c2ecf20Sopenharmony_ci */
64