On Thu, 2007-10-18 at 08:13 -0400, James Bottomley wrote: > On Thu, 2007-10-18 at 13:57 +0200, Mathieu Fluhr wrote: > > On Thu, 2007-10-18 at 06:06 -0400, Jeff Garzik wrote: > > > > > The SCSI midlayer makes a lot of "if scsi version <= 2" choices. In the > > > case of ATAPI, we do not want to force ATAPI down the path of ancient > > > SCSI devices, as this disables some MMC features that modern ATAPI > > > devices support. > > > > If I fully understand your point, if this faking code wasn't present, > > and if the inquiry data was left as it is, all modern ATAPI devices > > would be considered as really old SCSI devices. Am I right? > > Not really. Firstly, a lot of ATAPI devices report the correct > compliance level and secondly, the consequence of reporting no > compliance (level 0) is that the mid layer will be very careful to use > the most minimal command set it can (the usual consequence of sending a > USB device a command it doesn't understand is to have it crash). > Ok, then, what about what the standard is saying regarding the ANSI version field? Quoting to the latest MtFuji draft (Section 17.7.1): "The ANSI Version field shall contain a non-zero value to comply with this version of the Specification for a SCSI logical unit or zero for an ATAPI logical unit." and this is exactly how we see that the logical unit is a real SCSI one or an ATAPI one. > However, this will have no effect for at least CDs: The sr driver is > only interested in the MMC compliance level not the SCSI compliance > level. We are not using the sr driver to perform our SCSI commands, as it is filtering which CDB is allowed and which isn't. As we have some vendor-specific SCSI commands (like the one for changing booktype), we are using the sg driver to be able to use them. > > As far as I saw in libata-scsi.c there a SCSI-to-ATAPI and ATAPI-to-SCSI > > translator that automatically transform the command sent... Am I also > > right on this point? > > The former only, I believe. Absolutly... but if the inquiry data buffer gets modified by the midlayer, after that I am not able anymore to setup correctly the commands for the _real_ interface. (once again, the blank command example). Mathieu - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html