1. 10 1月, 2009 1 次提交
  2. 09 1月, 2009 13 次提交
  3. 08 1月, 2009 2 次提交
  4. 07 1月, 2009 1 次提交
  5. 31 12月, 2008 1 次提交
  6. 30 12月, 2008 1 次提交
  7. 29 12月, 2008 7 次提交
    • R
      sata_sil: add Large Block Transfer support · c7e324f1
      Robert Hancock 提交于
      This implements support for the Large Block Transfer feature found in Silicon
      Image 311x controllers. This allows transferring bigger contiguous chunks of
      data from system memory and avoids the 64KB boundary restriction of standard
      SFF controllers.
      
      This is based on a patch from Jeff Garzik (from the sii-lbt branch of
      libata-dev) but includes a few bug fixes: Since the bmdma2 register does not
      implement the status bits, the original bmdma register must be used except
      where the bmdma2 register is required. As well the DMA boundary should be
      31-bit instead of 32-bit since the top bit of the length field is still
      required for the PRD end-of-table flag.
      Signed-off-by: NRobert Hancock <hancockr@shaw.ca>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      c7e324f1
    • J
      [libata] ata_piix: cleanup dmi strings checking · 3c387730
      Jiri Slaby 提交于
      Commit
      	ATA: piix, fix pointer deref on suspend
      fixed a possible oops in an ugly manner. Use newly introduced dmi_match()
      to make the code pretty again.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: Alexandru Romanescu <a_romanescu@yahoo.co.uk>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      3c387730
    • L
      libata: blacklist NCQ on OCZ CORE 2 SSD (resend) · 5ccfca97
      Lubomir Bulej 提交于
      The patchlet below blacklists NCQ on OCZ CORE v2 SSD drive(s). Even
      though the drive advertises NCQ support with queue depth 1, it responds
      with all-zeroes FIS to NCQ commands which triggers ata error handling
      several times before the kernel decides to disable NCQ on the drive.
      Signed-off-by: NLubomir Bulej <lubomir.bulej@dsrg.mff.cuni.cz>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      5ccfca97
    • Q
      bd353ffd
    • T
      libata: perform port detach in EH · ece180d1
      Tejun Heo 提交于
      ata_port_detach() first made sure EH saw ATA_PFLAG_UNLOADING and then
      assumed EH context belongs to it and performed detach operation
      itself.  However, UNLOADING doesn't disable all of EH and this could
      lead to problems including triggering WARN_ON()'s in EH path.
      
      This patch makes port detach behave more like other EH actions such
      that ata_port_detach() requests EH to detach and waits for completion.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      ece180d1
    • T
      libata: when restoring SControl during detach do the PMP links first · ad74e4c1
      Tejun Heo 提交于
      When restoring SControl during detach, PMP links should be handled
      first as changing SControl of the host link can affect SCR access of
      PMP links.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      ad74e4c1
    • T
      libata: beef up iterators · 1eca4365
      Tejun Heo 提交于
      There currently are the following looping constructs.
      
      * __ata_port_for_each_link() for all available links
      * ata_port_for_each_link() for edge links
      * ata_link_for_each_dev() for all devices
      * ata_link_for_each_dev_reverse() for all devices in reverse order
      
      Now there's a need for looping construct which is similar to
      __ata_port_for_each_link() but iterates over PMP links before the host
      link.  Instead of adding another one with long name, do the following
      cleanup.
      
      * Implement and export ata_link_next() and ata_dev_next() which take
        @mode parameter and can be used to build custom loop.
      * Implement ata_for_each_link() and ata_for_each_dev() which take
        looping mode explicitly.
      
      The following iteration modes are implemented.
      
      * ATA_LITER_EDGE		: loop over edge links
      * ATA_LITER_HOST_FIRST		: loop over all links, host link first
      * ATA_LITER_PMP_FIRST		: loop over all links, PMP links first
      
      * ATA_DITER_ENABLED		: loop over enabled devices
      * ATA_DITER_ENABLED_REVERSE	: loop over enabled devices in reverse order
      * ATA_DITER_ALL			: loop over all devices
      * ATA_DITER_ALL_REVERSE		: loop over all devices in reverse order
      
      This change removes exlicit device enabledness checks from many loops
      and makes it clear which ones are iterated over in which direction.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      1eca4365
  8. 21 12月, 2008 1 次提交
  9. 16 12月, 2008 3 次提交
  10. 09 12月, 2008 5 次提交
  11. 02 12月, 2008 4 次提交
  12. 15 11月, 2008 1 次提交
    • T
      libata: improve phantom device detection · 6a6b97d3
      Tejun Heo 提交于
      Currently libata uses four methods to detect device presence.
      
      1. PHY status if available.
      2. TF register R/W test (only promotes presence, never demotes)
      3. device signature after reset
      4. IDENTIFY failure detection in SFF state machine
      
      Combination of the above works well in most cases but recently there
      have been a few reports where a phantom device causes unnecessary
      delay during probe.  In both cases, PHY status wasn't available.  In
      one case, it passed #2 and #3 and failed IDENTIFY with ATA_ERR which
      didn't qualify as #4.  The other failed #2 but as it passed #3 and #4,
      it still caused failure.
      
      In both cases, phantom device reported diagnostic failure, so these
      cases can be safely worked around by considering any !ATA_DRQ IDENTIFY
      failure as NODEV_HINT if diagnostic failure is set.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      6a6b97d3