lkml.org 
[lkml]   [2005]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] updated version of Jens' SATA suspend-to-ram patch
On Fri, Sep 23 2005, Joshua Kwan wrote:
> Hello,
>
> I had some time yesterday and decided to help Jens out by rediffing the
> now-infamous SATA suspend-to-ram patch [1] against current git and
> test-building it.
>
> For posterity,
>
> This patch adds the ata_scsi_device_resume and ata_scsi_device_suspend
> functions (along with helpers) to put to sleep and wake up Serial ATA
> controllers when entering sleep states, and hooks the functions into
> each SATA controller driver so that suspend-to-RAM is possible.
>
> Note that this patch is a holdover patch until it is possible to
> generalize this concept for all SCSI devices, which requires more data
> on which devices need to be put to sleep and which don't.

Port looks fine, thanks. The only problem I've seen with the base patch
is that sometimes ata_do_simple_cmd() seems to be invoked right before a
previous command has completed. So I needed this addon to work around
that issue.

From: Jens Axboe <axboe@suse.de>
Subject: Wait for current command to finish in ata_do_simple_cmd()
Patch-mainline:
References: 114648

A hack to wait a little while for the current command to complete, before
issuing a new one.

Acked-by:
Signed-off-by:

--- linux-2.6.13/drivers/scsi/libata-core.c~ 2005-09-01 12:22:19.000000000 +0200
+++ linux-2.6.13/drivers/scsi/libata-core.c 2005-09-01 12:24:38.000000000 +0200
@@ -3738,8 +3738,8 @@
unsigned long flags;
int rc;

- qc = ata_qc_new_init(ap, dev);
- BUG_ON(qc == NULL);
+ while ((qc = ata_qc_new_init(ap, dev)) == NULL)
+ msleep(10);

qc->tf.command = cmd;
qc->tf.flags |= ATA_TFLAG_DEVICE;

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-09-23 20:13    [W:0.149 / U:0.324 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site