| Borislav Petkov | d3f2084 | 2008-02-01 23:09:33 +0100 | [diff] [blame] | 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 |  */ |