1. 10 7月, 2007 4 次提交
    • T
      libata: reimplement ACPI invocation · 6746544c
      Tejun Heo 提交于
      This patch reimplements ACPI invocation such that, instead of
      exporting ACPI details to the rest of libata, ACPI event handlers -
      ata_acpi_on_resume() and ata_acpi_on_devcfg() - are used.  These two
      functions are responsible for determining whether specific ACPI method
      is used and when.
      
      On resume, _GTF is scheduled by setting ATA_DFLAG_ACPI_PENDING device
      flag.  This is done this way to avoid performing the action on wrong
      device device (device swapping while suspended).
      
      On every ata_dev_configure(), ata_acpi_on_devcfg() is called, which
      performs _SDD and _GTF.  _GTF is performed only after resuming and, if
      SATA, hardreset as the ACPI spec specifies.  As _GTF may contain
      arbitrary commands, IDENTIFY page is re-read after _GTF taskfiles are
      executed.
      
      If one of ACPI methods fails, ata_acpi_on_devcfg() retries on the
      first failure.  If it fails again on the second try, ACPI is disabled
      on the device.  Note that successful configuration clears ACPI failed
      status.
      
      With all feature checks moved to the above two functions,
      do_drive_set_taskfiles() is trivial and thus collapsed into
      ata_acpi_exec_tfs(), which is now static and converted to return the
      number of executed taskfiles to be used by ata_acpi_on_resume().  As
      failures are handled properly, ata_acpi_push_id() now returns -errno
      on errors instead of unconditional zero.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      6746544c
    • T
      libata-acpi: miscellaneous cleanups · 69b16a5f
      Tejun Heo 提交于
      * Add missing LOCKING: and RETURNS: to function comment.
      
      * Don't conditionalize warning messages with ata_msg_probe().  Print
        directly with KERN_WARNING.
      
      * Drop duplicate debug messages.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      69b16a5f
    • T
      libata-acpi: clean up ata_acpi_exec_tfs() · 4700c4bc
      Tejun Heo 提交于
      This patch cleans up ata_acpi_exec_tfs() and its friends.
      
      * Rename taskfile_array to ata_acpi_gtf and make it __packed as it's
        used as argument to ACPI method, and use pointer to ata_acpi_gtf and
        number of taskfiles to represent _GTF taskfiles instead of a pointer
        casted into unsigned long and byte count.  This makes argument
        re-checking in do_drive_set_taskfiles() unnecessary.
      
      * Pointer in void * not in unsigned long.
      
      * Clean up do_drive_get_GTF() error handling and make
        do_drive_get_GTF() return number of taskfiles on success, 0 if _GTF
        doesn't exist or doesn't contain valid ata.  -errno on other errors.
      
      * Remove superflous check for acpi->buffer.pointer.
      
      * Update taskfile_load_raw() such that printed messages look similar
        to the messages printed by ata_eh_report().
      
      * s/do_drive_get_GTF/ata_dev_get_GTF/
        s/do_drive_set_taskfiles/ata_dev_set_taskfiles/
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      4700c4bc
    • T
      libata-acpi: implement ata_acpi_associate() · fafbae87
      Tejun Heo 提交于
      * Add acpi_handle to ata_host and ata_port.  Rename
        ata_device->obj_handle to ->acpi_handle and move it above such that
        it doesn't get cleared on reconfiguration.
      
      * Replace ACPI node association which ata_acpi_associate() which is
        called once during host initialization.  Unlike the previous
        implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to
        choose between IDE or SATA ACPI hierarchy and uses simple child look
        up instead of recursive walk to match the nodes.  This is way safer
        and simpler.  Please read the following message for more info.
      
        http://article.gmane.org/gmane.linux.ide/17554Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      fafbae87
  2. 16 5月, 2007 1 次提交
    • T
      libata-acpi: add ATA_FLAG_ACPI_SATA port flag · 3cadbcc0
      Tejun Heo 提交于
      Whether a controller needs IDE or SATA ACPI hierarchy is determined by
      the programming interface of the controller not by whether the
      controller is SATA or PATA, or it supports slave device or not.  This
      patch adds ATA_FLAG_ACPI_SATA port flags which tells libata-acpi that
      the port needs SATA ACPI nodes, and sets the flag for ahci and
      sata_sil24.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      3cadbcc0
  3. 12 5月, 2007 1 次提交
  4. 10 5月, 2007 1 次提交
  5. 28 3月, 2007 1 次提交
  6. 10 3月, 2007 1 次提交
  7. 09 3月, 2007 1 次提交
  8. 25 2月, 2007 1 次提交
  9. 23 2月, 2007 1 次提交
  10. 17 2月, 2007 3 次提交