On 01/04/2010 09:06 PM, Robert Hancock wrote:
Indeed, which is why I suspect that a global change to handle this
controller may not be a good idea. Overriding sff_exec_command for this
driver to not do the altstatus read (just wait 600ns, maybe) might be
the best solution for now.
Well, I think it's fair to say that this should be applied more
generally than just one driver. It is definitely conceivable that
reading AltStatus causes a problem with more than one host controller,
even though the ATA7 and ATA8 state diagrams recommends doing so.
One solution could be taken from the old-IDE driver: handle things at
the other end of the transaction. Audit the paths that check status at
the end of a drive command, rather than focusing on the start of the
transaction.
That is where the "hard requirements" exist, anyway. ATA requires us to
* wait 400ns before reading Status, and/or
* wait one PIO cycle before reading Status
And logically, we only need to read Status at the end of the
transaction, or when handling a non-DMA PCI shared interrupt.
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html