libata: Populate host-to-device FIS "auxiliary" field
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hello,
Quoted 10 lines
The auxiliary field is part of ata taskfile for all intents and purposes. FIS is the new command structure anyway and struct
ata_taskfileproper should be able to describe the command withata_queuedcmdproviding the surrounding context. The argument thatata_taskfileshouldn't contain anything which wasn't in PATA taskfile is bogus as it already contains ATA_TFLAG_*.
That's what make 'structata_taskfile' bogus. I'm going to remove
'protocol', 'flags', and 'ctl' fields from there (at least to save a space in 'structata_queued_cmd' because they're not used in 'result_tf').
Quoted 5 lines
Quoted 2 lines
So, please put the aux field into
ata_taskfile. That's where it belongs.Can't agree to that. I was going to make 'struct
ata_taskfile' reflect the
historical notion and remove from it all not belonging to that notion. Alas, libata has a bad history of mistreating the historical terms...
While I understand that some non-spec items don't belong in the taskfile struct (and should/will be cleaned up), I have to agree with Tejun regarding how the auxiliary field should be put in 'struct ata_taskfile'. If anything, the struct should represent ALL items that an ATA command will use as inputs. As of now, it's the stuff that's currently in the taskfile + this pesky new 'auxiliary' entry. (FYI, ATA-8 ACS refers to these items as"fields.")
Quoted 1 line
From what I can tell, there are a couple of places where a rigid definition of a taskfile truly matters, and that's:
1) SCSI to ATA passthrough
2) PATA
But in any event, sticking 'auxiliary' in doesn't matter from a compatibility standpoint, since only NCQ commands use the new field, and the above can't transport NCQ (yet in (1) case).
Tejun put it succinctly by stating:
Quoted 2 lines
I mean, FIS is the new TF. We can rename
ata_taskfiletoata_fisand map things the other way but that'd just be extra churn.
Ideally this would be the case, since the SATA FIS is a super-set of any/all fields defined in all ATA commands.
Regards,
Marc