1. 04 Nov, 2008 5 commits
    • Tejun Heo's avatar
      libata: implement ATA_HORKAGE_ATAPI_MOD16_DMA and apply it · 6a87e42e
      Tejun Heo authored
      libata always uses PIO for ATAPI commands when the number of bytes to
      transfer isn't multiple of 16 but quantum DAT72 chokes on odd bytes
      PIO transfers.  Implement a horkage to skip the mod16 check and apply
      it to the quantum device.
      
      This is reported by John Clark in the following thread.
      
        http://thread.gmane.org/gmane.linux.ide/34748Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: John Clark <clarkjc@runbox.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      6a87e42e
    • Elias Oltmanns's avatar
      libata: Fix a potential race condition in ata_scsi_park_show() · a464189d
      Elias Oltmanns authored
      Peter Moulder has pointed out that there is a slight chance that a
      negative value might be passed to jiffies_to_msecs() in
      ata_scsi_park_show(). This is fixed by saving the value of jiffies in a
      local variable, thus also reducing code since the volatile variable
      jiffies is accessed only once.
      Signed-off-by: default avatarElias Oltmanns <eo@nebensachen.de>
      Signed-off-by: Tejun Heo <tj.kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      a464189d
    • Tejun Heo's avatar
      sata_nv: fix generic, nf2/3 detection regression · 3c324283
      Tejun Heo authored
      All three flavors of sata_nv's are different in how their hardreset
      behaves.
      
      * generic: Hardreset is not reliable.  Link often doesn't come online
        after hardreset.
      
      * nf2/3: A little bit better - link comes online with longer debounce
        timing.  However, nf2/3 can't reliable wait for the first D2H
        Register FIS, so it can't wait for device readiness or classify the
        device after hardreset.  Follow-up SRST required.
      
      * ck804: Hardreset finally works.
      
      The core layer change to prefer hardreset and follow up changes
      exposed the above issues and caused various detection regressions for
      all three flavors.  This patch, hopefully, fixes all the known issues
      and should make sata_nv error handling more reliable.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      3c324283
    • Marcin Slusarz's avatar
      sata_via: restore vt*_prepare_host error handling · 554d491d
      Marcin Slusarz authored
      commit b9d5b89b (sata_via: fix support
      for 5287) accidently (?) removed vt*_prepare_host error handling - restore it
      
      catched by gcc:
      drivers/ata/sata_via.c: In function 'svia_init_one':
      drivers/ata/sata_via.c:567: warning: 'host' may be used uninitialized in this function
      Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Cc: Jeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      554d491d
    • Mikael Pettersson's avatar
      sata_promise: add ATA engine reset to reset ops · cadef677
      Mikael Pettersson authored
      Promise ATA engines need to be reset when errors occur.
      That's currently done for errors detected by sata_promise itself,
      but it's not done for errors like timeouts detected outside of
      the low-level driver.
      
      The effect of this omission is that a timeout tends to result
      in a sequence of failed COMRESETs after which libata EH gives
      up and disables the port. At that point the port's ATA engine
      hangs and even reloading the driver will not resume it.
      
      To fix this, make sata_promise override ->hardreset on SATA
      ports with code which calls pdc_reset_port() on the port in
      question before calling libata's hardreset. PATA ports don't
      use ->hardreset, so for those we override ->softreset instead.
      Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      cadef677
  2. 03 Nov, 2008 21 commits
  3. 02 Nov, 2008 14 commits