^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) * Ver 0.1 Nov 1 95 Pre-working code :-)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Ver 0.2 Nov 23 95 A short backup (few megabytes) and restore procedure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * was successful ! (Using tar cvf ... on the block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * device interface).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * A longer backup resulted in major swapping, bad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * overall Linux performance and eventually failed as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * we received non serial read-ahead requests from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * buffer cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) * Ver 0.3 Nov 28 95 Long backups are now possible, thanks to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) * character device interface. Linux's responsiveness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) * and performance doesn't seem to be much affected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) * from the background backup procedure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * Some general mtio.h magnetic tape operations are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * now supported by our character device. As a result,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * popular tape utilities are starting to work with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * ide tapes :-)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * The following configurations were tested:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) * 1. An IDE ATAPI TAPE shares the same interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) * and irq with an IDE ATAPI CDROM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) * 2. An IDE ATAPI TAPE shares the same interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) * and irq with a normal IDE disk.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) * Both configurations seemed to work just fine !
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) * However, to be on the safe side, it is meanwhile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) * recommended to give the IDE TAPE its own interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) * and irq.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) * The one thing which needs to be done here is to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) * add a "request postpone" feature to ide.c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) * so that we won't have to wait for the tape to finish
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) * performing a long media access (DSC) request (such
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) * as a rewind) before we can access the other device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) * on the same interface. This effect doesn't disturb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) * normal operation most of the time because read/write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) * requests are relatively fast, and once we are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) * performing one tape r/w request, a lot of requests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) * from the other device can be queued and ide.c will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) * service all of them after this single tape request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) * Ver 1.0 Dec 11 95 Integrated into Linux 1.3.46 development tree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) * On each read / write request, we now ask the drive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) * if we can transfer a constant number of bytes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) * (a parameter of the drive) only to its buffers,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) * without causing actual media access. If we can't,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) * we just wait until we can by polling the DSC bit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) * This ensures that while we are not transferring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) * more bytes than the constant referred to above, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) * interrupt latency will not become too high and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) * we won't cause an interrupt timeout, as happened
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) * occasionally in the previous version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) * While polling for DSC, the current request is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) * postponed and ide.c is free to handle requests from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) * the other device. This is handled transparently to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) * ide.c. The hwgroup locking method which was used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) * in the previous version was removed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) * Use of new general features which are provided by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) * ide.c for use with atapi devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) * (Programming done by Mark Lord)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) * Few potential bug fixes (Again, suggested by Mark)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) * Single character device data transfers are now
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) * not limited in size, as they were before.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) * We are asking the tape about its recommended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) * transfer unit and send a larger data transfer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) * as several transfers of the above size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) * For best results, use an integral number of this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) * basic unit (which is shown during driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) * initialization). I will soon add an ioctl to get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) * this important parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) * Our data transfer buffer is allocated on startup,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) * rather than before each data transfer. This should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) * ensure that we will indeed have a data buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) * Ver 1.1 Dec 14 95 Fixed random problems which occurred when the tape
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) * shared an interface with another device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) * (poll_for_dsc was a complete mess).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) * Removed some old (non-active) code which had
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) * to do with supporting buffer cache originated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) * requests.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) * The block device interface can now be opened, so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) * that general ide driver features like the unmask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) * interrupts flag can be selected with an ioctl.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) * This is the only use of the block device interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) * New fast pipelined operation mode (currently only on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) * writes). When using the pipelined mode, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) * throughput can potentially reach the maximum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) * tape supported throughput, regardless of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) * user backup program. On my tape drive, it sometimes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) * boosted performance by a factor of 2. Pipelined
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) * mode is enabled by default, but since it has a few
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) * downfalls as well, you may want to disable it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) * A short explanation of the pipelined operation mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) * is available below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) * Ver 1.2 Jan 1 96 Eliminated pipelined mode race condition.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) * Added pipeline read mode. As a result, restores
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) * are now as fast as backups.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) * Optimized shared interface behavior. The new behavior
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) * typically results in better IDE bus efficiency and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) * higher tape throughput.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) * Pre-calculation of the expected read/write request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) * service time, based on the tape's parameters. In
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) * the pipelined operation mode, this allows us to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) * adjust our polling frequency to a much lower value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) * and thus to dramatically reduce our load on Linux,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) * without any decrease in performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) * Implemented additional mtio.h operations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) * The recommended user block size is returned by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) * the MTIOCGET ioctl.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) * Additional minor changes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) * Ver 1.3 Feb 9 96 Fixed pipelined read mode bug which prevented the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) * use of some block sizes during a restore procedure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) * The character device interface will now present a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) * continuous view of the media - any mix of block sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) * during a backup/restore procedure is supported. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) * driver will buffer the requests internally and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * convert them to the tape's recommended transfer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) * unit, making performance almost independent of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) * chosen user block size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) * Some improvements in error recovery.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) * By cooperating with ide-dma.c, bus mastering DMA can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) * now sometimes be used with IDE tape drives as well.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) * Bus mastering DMA has the potential to dramatically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) * reduce the CPU's overhead when accessing the device,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) * and can be enabled by using hdparm -d1 on the tape's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) * block device interface. For more info, read the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) * comments in ide-dma.c.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) * Ver 1.4 Mar 13 96 Fixed serialize support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) * Ver 1.5 Apr 12 96 Fixed shared interface operation, broken in 1.3.85.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) * Fixed pipelined read mode inefficiency.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) * Fixed nasty null dereferencing bug.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) * Ver 1.6 Aug 16 96 Fixed FPU usage in the driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) * Fixed end of media bug.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) * Ver 1.7 Sep 10 96 Minor changes for the CONNER CTT8000-A model.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) * Ver 1.8 Sep 26 96 Attempt to find a better balance between good
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) * interactive response and high system throughput.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) * Ver 1.9 Nov 5 96 Automatically cross encountered filemarks rather
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) * than requiring an explicit FSF command.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) * Abort pending requests at end of media.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) * MTTELL was sometimes returning incorrect results.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) * Return the real block size in the MTIOCGET ioctl.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) * Some error recovery bug fixes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) * Ver 1.10 Nov 5 96 Major reorganization.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) * Reduced CPU overhead a bit by eliminating internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) * bounce buffers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) * Added module support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) * Added multiple tape drives support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) * Added partition support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) * Rewrote DSC handling.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) * Some portability fixes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) * Removed ide-tape.h.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) * Additional minor changes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) * Ver 1.11 Dec 2 96 Bug fix in previous DSC timeout handling.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) * Use ide_stall_queue() for DSC overlap.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) * Use the maximum speed rather than the current speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) * to compute the request service time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) * Ver 1.12 Dec 7 97 Fix random memory overwriting and/or last block data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) * corruption, which could occur if the total number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) * of bytes written to the tape was not an integral
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) * number of tape blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) * Add support for INTERRUPT DRQ devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) * Ver 1.13 Jan 2 98 Add "speed == 0" work-around for HP COLORADO 5GB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) * Ver 1.14 Dec 30 98 Partial fixes for the Sony/AIWA tape drives.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) * Replace cli()/sti() with hwgroup spinlocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) * Ver 1.15 Mar 25 99 Fix SMP race condition by replacing hwgroup
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) * spinlock with private per-tape spinlock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) * Ver 1.16 Sep 1 99 Add OnStream tape support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) * Abort read pipeline on EOD.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) * Wait for the tape to become ready in case it returns
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) * "in the process of becoming ready" on open().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) * Fix zero padding of the last written block in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) * case the tape block size is larger than PAGE_SIZE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) * Decrease the default disconnection time to tn.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) * Ver 1.16e Oct 3 99 Minor fixes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) * Ver 1.16e1 Oct 13 99 Patches by Arnold Niessen,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) * niessen@iae.nl / arnold.niessen@philips.com
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) * GO-1) Undefined code in idetape_read_position
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) * according to Gadi's email
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) * AJN-1) Minor fix asc == 11 should be asc == 0x11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) * in idetape_issue_packet_command (did effect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) * debugging output only)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) * AJN-2) Added more debugging output, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) * added ide-tape: where missing. I would also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) * like to add tape->name where possible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) * AJN-3) Added different debug_level's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) * via /proc/ide/hdc/settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) * "debug_level" determines amount of debugging output;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) * can be changed using /proc/ide/hdx/settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) * 0 : almost no debugging output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) * 1 : 0+output errors only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) * 2 : 1+output all sensekey/asc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) * 3 : 2+follow all chrdev related procedures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) * 4 : 3+follow all procedures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) * 5 : 4+include pc_stack rq_stack info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) * 6 : 5+USE_COUNT updates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) * AJN-4) Fixed timeout for retension in idetape_queue_pc_tail
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) * from 5 to 10 minutes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) * AJN-5) Changed maximum number of blocks to skip when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) * reading tapes with multiple consecutive write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) * errors from 100 to 1000 in idetape_get_logical_blk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) * Proposed changes to code:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) * 1) output "logical_blk_num" via /proc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) * 2) output "current_operation" via /proc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) * 3) Either solve or document the fact that `mt rewind' is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) * required after reading from /dev/nhtx to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) * able to rmmod the idetape module;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) * Also, sometimes an application finishes but the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) * device remains `busy' for some time. Same cause ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) * Proposed changes to release-notes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) * 4) write a simple `quickstart' section in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) * release notes; I volunteer if you don't want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) * 5) include a pointer to video4linux in the doc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) * to stimulate video applications
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) * 6) release notes lines 331 and 362: explain what happens
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) * if the application data rate is higher than 1100 KB/s;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) * similar approach to lower-than-500 kB/s ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) * 7) 6.6 Comparison; wouldn't it be better to allow different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) * strategies for read and write ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) * Wouldn't it be better to control the tape buffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) * contents instead of the bandwidth ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) * 8) line 536: replace will by would (if I understand
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) * this section correctly, a hypothetical and unwanted situation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) * is being described)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) * Ver 1.16f Dec 15 99 Change place of the secondary OnStream header frames.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) * Ver 1.17 Nov 2000 / Jan 2001 Marcel Mol, marcel@mesa.nl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) * - Add idetape_onstream_mode_sense_tape_parameter_page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) * function to get tape capacity in frames: tape->capacity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) * - Add support for DI-50 drives( or any DI- drive).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) * - 'workaround' for read error/blank block around block 3000.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) * - Implement Early warning for end of media for Onstream.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) * - Cosmetic code changes for readability.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) * - Idetape_position_tape should not use SKIP bit during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) * Onstream read recovery.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) * - Add capacity, logical_blk_num and first/last_frame_position
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) * to /proc/ide/hd?/settings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) * - Module use count was gone in the Linux 2.4 driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) * Ver 1.17a Apr 2001 Willem Riede osst@riede.org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) * - Get drive's actual block size from mode sense block descriptor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) * - Limit size of pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) * Ver 1.17b Oct 2002 Alan Stern <stern@rowland.harvard.edu>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) * Changed IDETAPE_MIN_PIPELINE_STAGES to 1 and actually used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) * it in the code!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) * Actually removed aborted stages in idetape_abort_pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) * instead of just changing the command code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) * Made the transfer byte count for Request Sense equal to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) * actual length of the data transfer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) * Changed handling of partial data transfers: they do not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) * cause DMA errors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) * Moved initiation of DMA transfers to the correct place.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) * Removed reference to unallocated memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) * Made __idetape_discard_read_pipeline return the number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) * sectors skipped, not the number of stages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) * Replaced errant kfree() calls with __idetape_kfree_stage().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) * Fixed off-by-one error in testing the pipeline length.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) * Fixed handling of filemarks in the read pipeline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) * Small code optimization for MTBSF and MTBSFM ioctls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) * Don't try to unlock the door during device close if is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) * already unlocked!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) * Cosmetic fixes to miscellaneous debugging output messages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) * Set the minimum /proc/ide/hd?/settings values for "pipeline",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) * "pipeline_min", and "pipeline_max" to 1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) */