1. 09 10月, 2009 1 次提交
  2. 06 10月, 2009 3 次提交
    • T
      ahci: filter FPDMA non-zero offset enable for Aspire 3810T · f80ae7e4
      Tejun Heo 提交于
      Curiously, Aspire 3810T issues many SATA feature enable commands via
      _GTF, of which one is invalid and another is not supported by the
      drive.  In the process, it also enables FPDMA non-zero offset.
      However, the feature also needs to be supported and enabled from the
      controller and it's wrong to enable it from _GTF unless the controller
      can do it by default.
      
      Currently, this ends up enabling FPDMA non-zero offset only on the
      drive side leading to NCQ command failures and eventual disabling of
      NCQ.  This patch makes libata filter out FPDMA non-zero offset enable
      for the machine.
      
      This was reported by Marcus Meissner in bnc#522790.
      
        https://bugzilla.novell.com/show_bug.cgi?id=522790Reported-by: NMarcus Meissner <meissner@novell.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      f80ae7e4
    • R
      ahci: display all AHCI 1.3 HBA capability flags (v2) · 4c521c8e
      Robert Hancock 提交于
      Update the AHCI driver to display all of the HBA capabilities defined in the
      AHCI 1.3 specification. Some of these are in a new CAP2 (HBA Capabilities
      Extended) register which is only defined on AHCI 1.2 or later. The spec says
      that undefined registers should always return 0 on read, but to be safe we
      assume a value of 0 unless the controller reports AHCI version 1.2 or later.
      The value can also be retrieved through sysfs as with the existing capability
      field.
      
      For example, on an Intel Ibex Peak (PCH) controller:
      
      ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pmp pio slum part ems
      sxs apst
      
      We don't do anything special with the new flags yet.
      
      Also, change the code that displays the flags to use the same bit enumerations
      that are used to control actual operation.
      Signed-off-by: NRobert Hancock <hancockrwd@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      4c521c8e
    • T
      ahci: disable 64bit DMA by default on SB600s · 2fcad9d2
      Tejun Heo 提交于
      Till now only one board, ASUS M2A-VM, can do 64bit dma with recent
      BIOSen.  Enabling 64bit DMA by default already broke three boards.
      Enabling 64bit DMA isn't worth these regressions.  Disable 64bit DMA
      by default and enable it only on boards which are known to work.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NGabriele Balducci <balducci@units.it>
      Reported-by: maierp@informatik.tu-muenchen.de
      Cc: Shane Huang <shane.huang@amd.com>
      Cc: stable@kernel.org
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      2fcad9d2
  3. 18 9月, 2009 1 次提交
  4. 11 9月, 2009 2 次提交
  5. 09 9月, 2009 3 次提交
    • T
      ahci: Gigabyte GA-MA69VM-S2 can't do 64bit DMA · 1b549dcb
      Tejun Heo 提交于
      Gigabyte GA-MA69VM-S2 can't do 64bit DMA either.  It's yet unknown
      whether recent BIOS fixes the problem.  Blacklist regardless of BIOS
      revisions for now.
      
      Sandor Bodo-Merle reported and provided the initial patch for this
      issue.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NSandor Bodo-Merle <sbodomerle@gmail.com>
      Cc: Shane Huang <shane.huang@amd.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      1b549dcb
    • T
      ahci: make ahci_asus_m2a_vm_32bit_only() quirk more generic · 03d783bf
      Tejun Heo 提交于
      It turns out ASUS M2A-VM isn't the only one with the 32bit DMA
      problem.  Make ahci_asus_m2a_vm_32bit_only() more generic using the
      new dmi_get_date() and rename it to ahci_sb600_32bit_only().  Cut off
      date is now pointed to by dmi_system_id->driver_data in "yyyymmdd"
      format and it's now also allowed to be omitted.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Sandor Bodo-Merle <sbodomerle@gmail.com>
      Cc: Shane Huang <shane.huang@amd.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      03d783bf
    • T
      dmi: extend dmi_get_year() to dmi_get_date() · 3e5cd1f2
      Tejun Heo 提交于
      There are cases where full date information is required instead of
      just the year.  Add month and day parsing to dmi_get_year() and rename
      it to dmi_get_date().
      
      As the original function only required '/' followed by any number of
      parseable characters at the end of the string, keep that behavior to
      avoid upsetting existing users.
      
      The new function takes dates of format [mm[/dd]]/yy[yy].  Year, month
      and date are checked to be in the ranges of [1-9999], [1-12] and
      [1-31] respectively and any invalid or out-of-range component is
      returned as zero.
      
      The dummy implementation is updated accordingly but the return value
      is updated to indicate field not found which is consistent with how
      other dummy functions behave.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      3e5cd1f2
  6. 02 9月, 2009 2 次提交
  7. 12 8月, 2009 2 次提交
  8. 29 7月, 2009 1 次提交
  9. 15 7月, 2009 1 次提交
  10. 10 6月, 2009 3 次提交
  11. 06 6月, 2009 1 次提交
    • T
      ahci: add warning messages for hp laptops with broken suspend · 9b10ae86
      Tejun Heo 提交于
      Harddisks on HP dv[4-6] and HDX18 fail to come online after resume on
      earlier BIOSen.  Fortunately, HP recently released BIOS updates for
      all machines to fix the issue.  Detect old BIOSen, warn the user to
      update BIOS on boot and suspend attempts and fail suspend.
      
      Kudos to all the bug reporters.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: kernel.org@epperson.homelinux.net
      Cc: emisca@gmail.com
      Cc: Gadi Cohen <dragon@wastelands.net>
      Cc: Paul Swanson <paul@procursa.com>
      Cc: s@ourada.org
      Cc: Trevor Davenport <trevor.davenport@gmail.com>
      Cc: corruptor1972 <steven_tierney@yahoo.co.uk>
      Cc: Victoria Wilson <mail@vwilson.co.uk>
      Cc: khiraly <khiraly.list@gmail.com>
      Cc: Sean <wollombi@gmail.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      9b10ae86
  12. 13 4月, 2009 1 次提交
  13. 07 4月, 2009 3 次提交
  14. 25 3月, 2009 4 次提交
  15. 05 3月, 2009 1 次提交
  16. 03 2月, 2009 1 次提交
  17. 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
  18. 11 1月, 2009 1 次提交
  19. 09 1月, 2009 2 次提交
  20. 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
  21. 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
  22. 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