The original question concerned specifically the DMA command timeout which is twice more than the usual one, WAIT_CMD (10 seconds)...
When a drive is in standby, we don't send it anything special to wake up.
So even DMA commands have to have a long enough timeout to allow
for spinning up.
Yes, but why *twice* as long as the others?
I would guess simply because DMA has to transfer up to 256 sectors of data,
possibly with sector reallocations, in addition to waiting for the drive
to spin up. Other commands don't.
At the time that was coded (?), I suspect that PIO READ/WRITE commands
were fed data as it became available to/from the drive. This may or may
not still be the case, but it does imply that they don't need to hang
around as long on the timeouts as do DMA commands (which have to wait
for *everything* to be transferred).
Cheers