Agreed.
/somewhat/ true I'm afraid: libata uses the SCSI layer for ATAPI
devices because they are essentially bridges to SCSI devices. It uses
the SCSI layer for ATA devices because the SCSI layer provided a huge
amount of infrastructure that would need to have been otherwise
duplicated, /then/ massaged into coordinating between <jgarzik's ATA
layer> and <SCSI layer> when dealing with ATAPI.
There is also a detail that was of /huge/ value when introducing a new
device class: distro installers automatically work, if you use SCSI.
If you use a new block device type, that behaves differently from other
types and is on a different major, you have to poke the distros into
action or do it yourself.
IOW, it was the high Just Works(tm) value of the SCSI layer when it came
to ATA (not ATAPI) devices.
For the future, ATA will eventually be more independent (though the SCSI
simulator will be available as an option, for compat), but the value is
big enough to put that task on the back-burner.
Jeff
-