patch: scsi cdrom driver (speed select and other stuff)

Gerd Knorr (kraxel@goldbach.isdn.cs.tu-berlin.de)
Sat, 23 Aug 1997 14:04:46 +0200 (MEST)


Hi !

Here is a patch for the scsi cdrom driver. It does:

* implements the select speed ioctl
* rearranged multisession stuff: support for these old TOSHIBA and NEC
drives is optional (vi vendor specific extentions). The code for
modern drives use is included allways.
* the driver does lazy blocksize switching now when reading XA sectors
(mode2/form2, 2336 bytes long) via CDROMREADMODE2 ioctl.

The driver is currently somewhat verbose.

Gerd

begin 644 sr.51.diff.gz
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
<J>>K5NCI?G='V(HGNPA5E;T2_P$9Q%.):5,`````
`
end