Douglas Gilbert wrote:
I could have a go at the SCSI half of it. According to SAT, START STOP UNIT should only be allowed for non-packet ATA devices. I assume your SATAPI code will the bypass libata-scsi.c SAT layer.
Mostly. There is still a few translation bits in there. 99% bypass, not 100%.
SAT suggests libata should issue a ATA STANDBY (sector=0) to "stop" the device. I can't see the STANDBY command (0xE2) defined anywhere in libata or the ide subsystem (or their headers).
I'm sure you're capable of adding an enum to linux/ata.h :)
The action to start the SATA device depends on the power mode of the SATA device: - SLEEP: send a hardware or software reset: that should get it to ACTIVE or STANDBY mode - STANDBY or IDLE: send a (READ) VERIFY (sector=0) ATA to the command - ACTIVE: I assume this would be a nop The START STOP UNIT SCSI command also has an "IMMED"iate bit. That could just be ignored initially. Is half a patch any use?
Sure. Jeff - : 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