1. 07 4月, 2009 1 次提交
  2. 25 3月, 2009 4 次提交
  3. 05 3月, 2009 1 次提交
  4. 03 2月, 2009 1 次提交
  5. 27 1月, 2009 1 次提交
    • R
      SATA AHCI: Blacklist system that spins off disks during ACPI power off · 1fd68434
      Rafael J. Wysocki 提交于
      Some notebooks from HP have the problem that their BIOSes attempt to
      spin down hard drives before entering ACPI system states S4 and S5.
      This leads to a yo-yo effect during system power-off shutdown and the
      last phase of hibernation when the disk is first spun down by the
      kernel and then almost immediately turned on and off by the BIOS.
      This, in turn, may result in shortening the disk's life times.
      
      To prevent this from happening we can blacklist the affected systems
      using DMI information.
      
      Blacklist HP nx6310 that uses the AHCI driver.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      1fd68434
  6. 11 1月, 2009 1 次提交
  7. 09 1月, 2009 2 次提交
  8. 29 12月, 2008 1 次提交
    • 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
  9. 28 10月, 2008 3 次提交
    • D
      libata: ahci enclosure management bit mask · 87943acf
      David Milburn 提交于
      Enclosure management bit mask definitions.
      Signed-off-by: NDavid Milburn <dmilburn@redhat.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      87943acf
    • D
      libata: ahci enclosure management led sync · eb40963c
      David Milburn 提交于
      Synchronize ahci_sw_activity and ahci_sw_activity_blink with ata_port lock.
      Signed-off-by: NDavid Milburn <dmilburn@redhat.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      eb40963c
    • M
      ahci: Add support for Promise PDC42819 · c77a036b
      Mark Nelson 提交于
      Add an appropriate entry for the Promise PDC42819 controller. It has an
      AHCI mode and so far works correctly with board_ahci.
      
      This chip is found on Promise's FastTrak TX2650 (2 port) and TX4650 (4 port)
      software-based RAID cards (for which there is a binary driver, t3sas) and
      can be found on some motherboards, for example the MSI K9A2 Platinum,
      which calls the chip a Promise T3 controller.
      
      Although this controller also supports SAS devices, its default bootup mode
      is AHCI and the binary driver has to do some magic to get the chip into the
      appropriate mode to drive SAS disks.
      
      Seeing as no documentation is provided by Promise, adding this entry to the
      ahci driver allows the controller to be useful to people as a SATA
      controller (with no ill effects on the system if a SAS disk is connected -
      probing of the port just times out with "link online but device
      misclassified"), without having to resort to using the binary driver. Users
      who require SAS or the proprietary software raid can get this functionality
      using the binary driver.
      Signed-off-by: NMark Nelson <mdnelson8@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      c77a036b
  10. 29 9月, 2008 2 次提交
    • E
      libata: Implement disk shock protection support · 45fabbb7
      Elias Oltmanns 提交于
      On user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD
      FEATURE as specified in ATA-7 is issued to the device and processing of
      the request queue is stopped thereafter until the specified timeout
      expires or user space asks to resume normal operation. This is supposed
      to prevent the heads of a hard drive from accidentally crashing onto the
      platter when a heavy shock is anticipated (like a falling laptop
      expected to hit the floor). In fact, the whole port stops processing
      commands until the timeout has expired in order to avoid any resets due
      to failed commands on another device.
      Signed-off-by: NElias Oltmanns <eo@nebensachen.de>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      45fabbb7
    • T
      libata: make SCR access ops per-link · 82ef04fb
      Tejun Heo 提交于
      Logically, SCR access ops should take @link; however, there was no
      compelling reason to convert all SCR access ops when adding @link
      abstraction as there's one-to-one mapping between a port and a non-PMP
      link.  However, that assumption won't hold anymore with the scheduled
      addition of slave link.
      
      Make SCR access ops per-link.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      82ef04fb
  11. 09 9月, 2008 3 次提交
    • S
      ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs · 8e48b6b3
      Seth Heasley 提交于
      Add the Intel Ibex Peak (PCH) SATA RAID Controller DeviceIDs.
      Signed-off-by: NSeth Heasley <seth.heasley@intel.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      8e48b6b3
    • T
      ahci: disable PMP for marvell ahcis · 17248461
      Tejun Heo 提交于
      Marvell ahcis don't play nicely with PMPs.  Disable it.
      
      Reported by KueiHuan Chen in the following thread.
      
        http://thread.gmane.org/gmane.linux.ide/33296Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: KueiHuan Chen <kueihuan.chen@gmail.com>
      Cc: Mark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      17248461
    • A
      ahci, pata_marvell: play nicely together · 5b66c829
      Alan Cox 提交于
      I've been chasing Jeff about this for months.  Jeff added the Marvell
      device identifiers to the ahci driver without making the AHCI driver
      handle the PATA port. This means a lot of users can't use current
      kernels and in most distro cases can't even install.
      
      This has been going on since March 2008 for the 6121 Marvell, and late 2007
      for the 6145!!!
      
      This was all pointed out at the time and repeatedly ignored. Bugs assigned
      to Jeff about this are ignored also.
      
      To quote Jeff in email
      
      > "Just switch the order of 'ahci' and 'pata_marvell' in
      > /etc/modprobe.conf, then use Fedora's tools regenerate the initrd.
      
      > See?  It's not rocket science, and the current configuration can be
      > easily made to work for Fedora users."
      
      (Which isn't trivial, isn't end user, shouldn't be needed, and as it usually
      breaks at install time is in fact impossible)
      
      To quote Jeff in August 2007
      
      > "   mv-ahci-pata
      > Marvell 6121/6141 PATA support.  Needs fixing in the 'PATA controller
      > command' area before it is usable, and can go upstream."
      
      Only he add the ids anyway later and caused regressions, adding a further
      id in March causing more regresions.
      
      The actual fix for the moment is very simple. If the user has included
      the pata_marvell driver let it drive the ports. If they've only selected
      for SATA support give them the AHCI driver which will run the port a fraction
      faster. Allow the user to control this decision via ahci.marvell_enable as
      a module parameter so that distributions can ship 'it works' defaults and
      smarter users (or config tools) can then flip it over it desired.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      5b66c829
  12. 22 8月, 2008 2 次提交
  13. 26 7月, 2008 1 次提交
  14. 15 7月, 2008 3 次提交
  15. 06 7月, 2008 1 次提交
  16. 04 7月, 2008 1 次提交
  17. 19 6月, 2008 2 次提交
  18. 13 6月, 2008 2 次提交
  19. 31 5月, 2008 1 次提交
  20. 06 5月, 2008 1 次提交
    • T
      libata: improve post-reset device ready test · 78ab88f0
      Tejun Heo 提交于
      Some controllers (jmb and inic162x) use 0x77 and 0x7f to indicate that
      the device isn't ready yet.  It looks like they use 0xff if device
      presence is detected but connection isn't established.  0x77 or 0x7f
      after connection is established and use the value from signature FIS
      after receiving it.
      
      This patch implements ata_check_ready(), which takes TF status value
      and determines whether the port is ready or not considering the above
      and other conditions, and use it in @check_ready() functions.  This is
      safe as both 0x77 and 0x7f aren't valid ready status value even though
      they have BSY bit cleared.
      
      This fixes hot plug detection failures which can be triggered with
      certain drives if they aren't already spun up when the data connector
      is hot plugged.
      
      Tested on sil, sil24, ahci (jmb/ich), piix and inic162x combined with
      eight drives from all major vendors.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      78ab88f0
  21. 30 4月, 2008 1 次提交
  22. 25 4月, 2008 1 次提交
  23. 20 4月, 2008 1 次提交
  24. 18 4月, 2008 3 次提交
    • T
      libata: move link onlineness check out of softreset methods · 45db2f6c
      Tejun Heo 提交于
      Currently, SATA softresets should do link onlineness check before
      actually performing SRST protocol but it doesn't really belong to
      softreset.
      
      This patch moves onlineness check in softreset to ata_eh_reset() and
      ata_eh_followup_srst_needed() to clean up code and help future sata_mv
      changes which need clear separation between SCR and TF accesses.
      
      sata_fsl is peculiar in that its softreset really isn't softreset but
      combination of hardreset and softreset.  This patch adds dummy private
      ->prereset to keep the current behavior but the driver really should
      implement separate hard and soft resets and return -EAGAIN from
      hardreset if it should be follwed by softreset.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      45db2f6c
    • T
      libata: implement PMP helpers · 071f44b1
      Tejun Heo 提交于
      Implement helpers to test whether PMP is supported, attached and
      determine pmp number to use when issuing SRST to a link.  While at it,
      move ata_is_host_link() so that it's together with the two new PMP
      helpers.
      
      This change simplifies LLDs and helps making PMP support optional.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      071f44b1
    • T
      libata: don't use ap->ioaddr in non-SFF drivers · 350756f6
      Tejun Heo 提交于
      ap->ioaddr is to carry addresses for TF and BMDMA registers of a SFF
      controller, don't abuse it in non-SFF controllers.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      350756f6