• Sergei Shtylyov's avatar
    pata_hpt3x2n: fix clock turnaround · 256ace9b
    Sergei Shtylyov authored
    The clock turnaround code still doesn't work for several reasons:
    
    - 'USE_DPLL' flag in 'ap->host->private_data' is never initialized
      or updated, so the driver can only set the chip to the DPLL clock
      mode, not the PCI mode;
    
    - the driver doesn't serialize access to the channels depending on
      the current clock mode like the vendor drivers, so the clock
      turnaround is only executed "optionally", not always as it should be;
    
    - the wrong ports are written to when hpt3x2n_set_clock() is called
      for the secondary channel;
    
    - hpt3x2n_set_clock() can inadvertently enable the disabled channels
      when resetting the channel state machines.
    Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    256ace9b
pata_hpt3x2n.c 15 KB