1. 13 10月, 2007 20 次提交
  2. 21 9月, 2007 1 次提交
  3. 11 9月, 2007 1 次提交
  4. 31 8月, 2007 2 次提交
  5. 23 8月, 2007 2 次提交
  6. 15 8月, 2007 1 次提交
  7. 01 8月, 2007 1 次提交
  8. 20 7月, 2007 8 次提交
    • T
      libata: implement EH fast drain · 5ddf24c5
      Tejun Heo 提交于
      In most cases, when EH is scheduled, all in-flight commands are
      aborted causing EH to kick in immediately.  However, in some cases
      (especially with PMP), it's unclear which commands are affected by the
      error condition and although aborting all in-flight commands work, it
      isn't optimal and may cause unnecessary disruption.  On the other
      hand, waiting for in-flight commands to drain themselves can take up
      to 30seconds.
      
      This patch implements EH fast drain to handle such situations.  It
      gives in-flight commands some time to finish up but doesn't wait for
      too long.  After EH is scheduled, fast drain timer is started and if
      no other completion occurs in ATA_EH_FASTDRAIN_INTERVAL all in-flight
      commands are aborted.  If any completion occurred in the interval, the
      port is given another interval to finish up itself.
      
      Currently ATA_EH_FASTDRAIN_INTERVAL is 3 secs which should be enough
      for finishing up most commands.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      5ddf24c5
    • T
      libata: improve SCSI scan failure handling · 1ae46317
      Tejun Heo 提交于
      SCSI scan may fail due to memory allocation failure even if EH is not
      in progress.  Due to use of GFP_ATOMIC in SCSI scan path, allocation
      failure isn't too rare especially while probing multiple devices at
      once which is the case when a bunch of devices are connected to PMP.
      
      This patch moves SCSI scan failure detetion logic from
      ata_scsi_hotplug() to ata_scsi_scan_host() and implement synchronous
      scan behavior.  The synchronous path sleeps briefly and repeats SCSI
      scan if some devices aren't attached properly.  It contains robust
      retry loop to minimize the chance of device misdetection during boot
      and falls back to async retry if everything fails.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      1ae46317
    • T
      libata: quickly trigger SATA SPD down after debouncing failed · f1545154
      Tejun Heo 提交于
      Debouncing failure is a good indicator of basic link problem.  Use
      -EPIPE to indicate debouncing failure and make ata_eh_reset() invoke
      sata_down_spd_limit() if the error occurs during reset.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f1545154
    • T
      libata: improve SATA PHY speed down logic · 008a7896
      Tejun Heo 提交于
      sata_down_spd_limit() first reads the current SPD from SStatus and
      limit the speed to the lower one of one below the current limit or one
      below the current SPD in SStatus.  SPD may not be accessible or valid
      when SPD down is requested making sata_down_spd_limit() fail when it's
      most needed.
      
      This patch makes the current SPD cached after each successful reset
      and forces GEN I speed (1.5Gbps) if neither of SStatus or the cached
      value is valid, so sata_down_spd_limit() is now guaranteed to lower
      the speed limit if lower speed is available.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      008a7896
    • T
      libata: make ->scr_read/write callbacks return error code · da3dbb17
      Tejun Heo 提交于
      Convert ->scr_read/write callbacks to return error code to better
      indicate failure.  This will help handling of SCR_NOTIFICATION.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      da3dbb17
    • T
      libata: improve EH report formatting · b64bbc39
      Tejun Heo 提交于
      Requiring LLDs to format multiple error description messages properly
      doesn't work too well.  Help LLDs a bit by making ata_ehi_push_desc()
      insert ", " on each invocation.  __ata_ehi_push_desc() is the raw
      version without the automatic separator.
      
      While at it, make ehi_desc interface proper functions instead of
      macros.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      b64bbc39
    • T
      libata: add @is_cmd to ata_tf_to_fis() · 9977126c
      Tejun Heo 提交于
      Add @is_cmd to ata_tf_to_fis().  This controls bit 7 of the second
      byte which tells the device whether this H2D FIS is for a command or
      not.  This cleans up ahci a bit and will be used by PMP.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      9977126c
    • T
      libata: add ST9160821AS 3.CLF to NONCQ blacklist · 3fb6589c
      Tejun Heo 提交于
      Yay, the first one from Seagate.  3.ALC firmware is okay.  This was
      reported by Sam Freed on bugzilla bug 8759.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NSam Freed <sam@freed.net>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      3fb6589c
  9. 13 7月, 2007 2 次提交
  10. 11 7月, 2007 2 次提交