• Sergei Shtylyov's avatar
    cmd64x: fix recovery time calculation (take 3) · e277a1aa
    Sergei Shtylyov authored
    The driver wrongly takes the address setup time into account when calculating
    the PIO recovery time -- this leads to slight overclocking of the PIO modes 0
    and 1 (so, the prayers failed to help, as usual :-).  Rework the code to be
    calculating recovery clock count as a difference between the total cycle count
    and the active count (we don't need to calculate the recovery time itself since
    it's not specified for the PIO modes 0 to 2, and for modes 3 and 4 this formula
    gives enough recovery time anyway in the chip's supported PCI frequency range).
    
    This patch has been inspired by reading the datasheets and looking at what the
    libata driver does; it has been compile-tested only (as usual :-) but anyway,
    the new code gives the same or longer recovery times than the old one...
    Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    e277a1aa
cmd64x.c 21.8 KB