WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] ahci with pm support

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] ahci with pm support
From: "Lu, Guanqun" <guanqun.lu@xxxxxxxxx>
Date: Fri, 10 Oct 2008 09:32:51 +0800
Accept-language: en-US
Acceptlanguage: en-US
Delivery-date: Thu, 09 Oct 2008 18:34:16 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AckqeBxt2ULRAP8zQRiV4ZfGrjzO4w==
Thread-topic: [PATCH] ahci with pm support
This patch adds the power management support to ahci driver.
And it is necessary for S3.

It is back-ported from linux kernel mainline tree.
More precisely, the patch is the diff between the commit
c1332875cbe0c148c7f200d4f9b36b64e34d9872 and tag v2.8.18.

The authorship of the overall changes go to:

=============
commit c1332875cbe0c148c7f200d4f9b36b64e34d9872
Author: Tejun Heo <htejun@xxxxxxxxx>
Date:   Wed Jul 26 15:59:26 2006 +0900

    [PATCH] ahci: implement Power Management support

    Implement power management support.

    Original implementation is from Zhao, Forrest <forrest.zhao@xxxxxxxxx>

    Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
    Signed-off-by: Zhao, Forrest <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>

commit d91542c11f3981768367815cf087ad36e792ea4a
Author: Tejun Heo <htejun@xxxxxxxxx>
Date:   Wed Jul 26 15:59:26 2006 +0900

    [PATCH] ahci: separate out ahci_reset_controller() and 
ahci_init_controller()

    Separate out ahci_reset_controller() and ahci_init_controller() from
    ata_host_init().  These will be used by PM callbacks.  This patch
    doesn't introduce any behavior change.

    Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
    Signed-off-by: Zhao, Forrest <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>

commit 0be0aa98985dfec42502c0d0af2a1baff9bdb19f
Author: Tejun Heo <htejun@xxxxxxxxx>
Date:   Wed Jul 26 15:59:26 2006 +0900

    [PATCH] libata: improve driver initialization and deinitialization

    Implement ahci_[de]init_port() and use it during initialization and
    de-initialization.  ahci_[de]init_port() are supersets of what used to
    be done during driver [de-]initialization.  This patch makes the
    following behavior changes.

    * Per-port IRQ mask is cleared on driver load as done in other
      drivers.  The mask will be configured properly during probe.

    * During init_one(), HOST_IRQ_STAT is cleared after masking port IRQs
      such that there is no race window.

    * CMD_SPIN_UP is cleared during init_one() instead of being set.  It
      is set in port_start().  This is more consistent with overall
      structure of initialization.  Note that CMD_SPIN_UP simply controls
      PHY activation.

    * Slumber and staggered spin-up are handled properly.

    * All init/deinit operations are done in step-by-step manner as
      described in the spec instead of issued as single merged command.

    Original implementation is from Zhao, Forrest <forrest.zhao@xxxxxxxxx>

    Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
    Signed-off-by: Zhao, Forrest <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>

commit 9f5920567bfabbd1be26112a31c44652b6587394
Author: Tejun Heo <htejun@xxxxxxxxx>
Date:   Wed Jul 26 15:59:26 2006 +0900

    [PATCH] ahci: simplify ahci_start_engine()

    Simplify ahci_start_engine() by killing prerequisite condition checks.
    Rationales are..

    * No user checks error return from ahci_start_engine()

    * Code flow guarantees the prerequisite conditions unless the
      controller is malfunctioning.  In such cases, the driver had chances
      to learn about the problem _before_ calling this function.

    * Closely related to the above two, driver calls into this function
      even when prerequisites fail hoping for the best.

    Basically, ahci_start_engine() should only do the operation itself.
    It isn't the right place to check for prerequisites.

    Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
    Signed-off-by: Zhao, Forrest <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>

commit d8fcd116d203dfe2f6c272d0cd67724b172f1bc2
Author: Tejun Heo <htejun@xxxxxxxxx>
Date:   Wed Jul 26 15:59:25 2006 +0900

    [PATCH] ahci: cosmetic changes to ahci_start/stop_engine()

    * fascist-format comments according to comment style used in libata
      core layer.

    * if() -> if ()

    Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
    Signed-off-by: Zhao, Forrest <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>

commit 254950cd56fee220c9d548f3e57211b95976ba64
Author: Tejun Heo <htejun@xxxxxxxxx>
Date:   Wed Jul 26 15:59:25 2006 +0900

    [PATCH] ahci: relocate several internal functions

    * move ahci_port_start/stop() below EH functions.  This makes ahci
      more consistent with other drivers and makes prototypes for
      ahci_start/stop_engine() unnecessary.

    * swap positions between ahci_start_engine() and ahci_stop_engine()
      for readability.

    Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
    Signed-off-by: Zhao, Forrest <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>

commit 5457f2194ad198a0aba4190ec99a6a81846fdca5
Author: zhao, forrest <forrest.zhao@xxxxxxxxx>
Date:   Thu Jul 13 13:38:32 2006 +0800

    [PATCH] The redefinition of ahci_start_engine() and ahci_stop_engine()

    - Make ahci_start_engine() and ahci_stop_engine() more consistent with
      AHCI spec 1.1
    - Change their input parameter from ap to port_mmio
    - Update the existing users of ahci_start_engine() and ahci_stop_engine()

    Signed-off-by: Forrest Zhao <forrest.zhao@xxxxxxxxx>
    Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
    Signed-off-by: Jens Axboe <axboe@xxxxxxx>
    Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>
=============

Some of the commits above may not be directly related to the ahci pm problem,
but they lay the basic ground for the final commit.


Signed-off-by: Guanqun Lu <guanqun.lu@xxxxxxxxx>


--
Guanqun

Attachment: sata-pm.patch
Description: sata-pm.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>