[ltp] 2.6.18-rc6, SATA, resume from RAM

Martin Lorenz linux-thinkpad@linux-thinkpad.org
Wed, 20 Sep 2006 09:16:29 +0200


On Wed, Sep 20, 2006 at 08:57:00AM +0200, Dipl.-Ing. Martin Lorenz wrote:
> On Thu, Sep 14, 2006 at 11:37:42PM +0900, Tejun Heo wrote:
> > Martin Lorenz wrote:
> > >On Tue, Sep 12, 2006 at 08:13:43AM -0400, David Abrahams wrote:
> > >>Since installing a 2.6.18-rc6 kernel, my Thinkpad T60P's SATA hard
> > >>drive doesn't seem to spin up when resuming from a suspend-to-RAM.  Am
> > >>I missing something obvious, is this a kernel bug, or am I missing
> > >>something less-obvious ;-)?
> > >
> > >I don't know if your T60 has the same issue like my X60s but I had to patch
> > >my kernel to get a proper resume
> > >
> > >I applied forrest zhauo's set of ahci patches to 2.6.18-rc5
> > >
> > >you find those patches here:
> > >http://marc.theaimsgroup.com/?l=linux-ide&m=115277002327654&w=2
> > >
> > >maybe they find there way into the kernel sometime :-)
> > 
> > Those patches are currently in -mm and will make into 2.6.19-rc1 when it 
> > opens.
> 
> could you please point us to the proper patch?
> I seem to be too dumb to find it.
> Forrest Zhaos's original patchset still applies to 2.6.18 but the discussion
> made me think it would be better to have the latest revised version :-)

ok, got it

sorry, should have thought a little further 

it's in git-libata-all.patch
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc7/2.6.18-rc7-mm1/broken-out/

those are the relevant commits, I guess:


commit c1332875cbe0c148c7f200d4f9b36b64e34d9872
Author: Tejun Heo <htejun@gmail.com>
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@intel.com>
    
    Signed-off-by: Tejun Heo <htejun@gmail.com>
    Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit d91542c11f3981768367815cf087ad36e792ea4a
Author: Tejun Heo <htejun@gmail.com>
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@gmail.com>
    Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 0be0aa98985dfec42502c0d0af2a1baff9bdb19f
Author: Tejun Heo <htejun@gmail.com>
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@intel.com>
    
    Signed-off-by: Tejun Heo <htejun@gmail.com>
    Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 9f5920567bfabbd1be26112a31c44652b6587394
Author: Tejun Heo <htejun@gmail.com>
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@gmail.com>
    Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit d8fcd116d203dfe2f6c272d0cd67724b172f1bc2
Author: Tejun Heo <htejun@gmail.com>
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@gmail.com>
    Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 254950cd56fee220c9d548f3e57211b95976ba64
Author: Tejun Heo <htejun@gmail.com>
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@gmail.com>
    Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 5457f2194ad198a0aba4190ec99a6a81846fdca5
Author: zhao, forrest <forrest.zhao@intel.com>
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@intel.com>
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Jens Axboe <axboe@suse.de>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

gruss
  mlo
--
Dipl.-Ing. Martin Lorenz

            They that can give up essential liberty 
	    to obtain a little temporary safety 
	    deserve neither liberty nor safety.
                                   Benjamin Franklin

please encrypt your mail to me
GnuPG key-ID: F1AAD37D
get it here:
http://blackhole.pca.dfn.de:11371/pks/lookup?op=get&search=0xF1AAD37D

ICQ UIN: 33588107