1. 05 11月, 2007 25 次提交
  2. 04 11月, 2007 8 次提交
  3. 03 11月, 2007 7 次提交
    • T
      libata: don't configure downstream links faster than the upstream link · 5270222f
      Tejun Heo 提交于
      There's nothing to be gained by configuring downstream links faster
      than the upstream link and such configurations cause problems on
      certain PMPs.  Limit downstream link speed by the upstream link speed.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      5270222f
    • T
      libata: request PHY speed configuration on SControl access failure · db64bcf3
      Tejun Heo 提交于
      In sata_set_spd_needed(), if SControl read failed, it returned 0 and
      skipped PHY speed configuration.  However, if SControl access fails,
      it's far more logical to request PHY speed configuration.  Reverse the
      logic.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      db64bcf3
    • T
      libata: consider errors not associated with commands for speed down · dfcc173d
      Tejun Heo 提交于
      libata EH used to ignore errors not associated with commands when
      determining whether speed down is necessary or not.  This leads to the
      following problems.
      
      * Errors not associated with commands can occur indefinitely without
        libata EH taking corrective actions.
      
      * Upstream link errors don't trigger speed down when PMP is attached
        to it and commands issued to downstream device trigger errors on the
        upstream link.
      
      This patch makes ata_eh_link_autopsy() consider errors not associated
      with command for speed down.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      dfcc173d
    • T
      libata: more robust reset failure handling · 08cf69d0
      Tejun Heo 提交于
      Reset failure is a critical error.  It results in disabling the link
      requiring user intervention to re-enable it.  Make reset failure
      handling more robust such that libata EH doesn't give up too early.
      
      * Temporary glitches during hardreset may lead to classification
        failure when there's no softreset available.  Retry instead of
        giving up.
      
      * Initial softreset or follow up softreset may fail classification.
        Move classification error handling block out of followup softreset
        block such that both cases are handled and retry instead of giving
        up.  Also, on the last try, give ATA class a blind shot.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      08cf69d0
    • T
      libata: cosmetic clean up / reorganization of ata_eh_reset() · 416dc9ed
      Tejun Heo 提交于
      Clean up and reorganize ata_eh_reset() to ease further changes.
      
      * Cache ARRAY_SIZE(ata_eh_reset_timeouts) in @max_tries.
      * Cache link->flags in @lflags.
      * Move failure handling block to the end of the function and unnest
        both success and failure handling blocks.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      416dc9ed
    • T
      libata: fix timing computation in ata_eh_reset() · cd955463
      Tejun Heo 提交于
      As jiffies changes asynchronously, it needs to be cached if unchanging
      timestamp is needed.  The code in ata_eh_reset() intended to do that
      with @now but never actually did it.  Fix it.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      cd955463
    • T
      libata: increase 128 KB / cmd limit for ATAPI tape drives · f8d8e579
      Tony Battersby 提交于
      Commands sent to ATAPI tape drives via the SCSI generic (sg) driver are
      limited in the amount of data that they can transfer by the max_sectors
      value.  The max_sectors value is currently calculated according to the
      command set for disk drives, which doesn't apply to tape drives.  The
      default max_sectors value of 256 limits ATAPI tape drive commands to
      128 KB.  This patch against 2.6.24-rc1 increases the max_sectors value
      for tape drives to 65535, which permits tape drive commands to transfer
      just under 32 MB.
      
      Tested with a SuperMicro PDSME motherboard, AHCI, and a Sony SDX-570V
      SATA tape drive.
      
      Note that some of the chipset drivers also set their own max_sectors
      value, which may override the value set in libata-core.  I don't have
      any of these chipsets to test, so I didn't go messing with them.  Also,
      ATAPI devices other than tape drives may benefit from similar changes,
      but I have only tape drives and disk drives to test.
      Signed-off-by: NTony Battersby <tonyb@cybernetics.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f8d8e579