From: Tejun Heo <htejun@gmail.com>
To: jgarzik@pobox.com, alan@lxorguk.ukuu.org.uk, lkml@rtr.ca,
forrest.zhao@intel.com, linux-ide@vger.kernel.org
Cc: Tejun Heo <htejun@gmail.com>
Subject: [PATCH 17/17] libata-link: update Power Management to handle PMP links
Date: Sat, 8 Jul 2006 14:45:38 +0900 [thread overview]
Message-ID: <1152337538606-git-send-email-htejun@gmail.com> (raw)
In-Reply-To: <11523375353473-git-send-email-htejun@gmail.com>
Update Power Management to consider PMP links.
Signed-off-by: Tejun Heo <htejun@gmail.com>
---
drivers/scsi/libata-core.c | 20 +++++++++++++-------
drivers/scsi/libata-eh.c | 16 ++++++++++------
2 files changed, 23 insertions(+), 13 deletions(-)
e65868d12527ea6e764aed3b996d103df352dac1
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 4088498..a887522 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -5106,6 +5106,7 @@ static int ata_host_set_request_pm(struc
for (i = 0; i < host_set->n_ports; i++) {
struct ata_port *ap = host_set->ports[i];
+ struct ata_link *link;
/* Previous resume operation might still be in
* progress. Wait for PM_PENDING to clear.
@@ -5125,8 +5126,10 @@ static int ata_host_set_request_pm(struc
}
ap->pflags |= ATA_PFLAG_PM_PENDING;
- ap->link.eh_info.action |= action;
- ap->link.eh_info.flags |= ehi_flags;
+ __ata_port_for_each_link(link, ap) {
+ link->eh_info.action |= action;
+ link->eh_info.flags |= ehi_flags;
+ }
ata_port_schedule_eh(ap);
@@ -5173,15 +5176,18 @@ int ata_host_set_suspend(struct ata_host
*/
for (i = 0; i < host_set->n_ports; i++) {
struct ata_port *ap = host_set->ports[i];
+ struct ata_link *link;
struct ata_device *dev;
- ata_link_for_each_dev(dev, &ap->link) {
- if (ata_dev_ready(dev)) {
- ata_port_printk(ap, KERN_WARNING,
+ ata_port_for_each_link(link, ap) {
+ ata_link_for_each_dev(dev, link) {
+ if (ata_dev_ready(dev)) {
+ ata_port_printk(ap, KERN_WARNING,
"suspend failed, device %d "
"still active\n", dev->devno);
- rc = -EBUSY;
- goto fail;
+ rc = -EBUSY;
+ goto fail;
+ }
}
}
}
diff --git a/drivers/scsi/libata-eh.c b/drivers/scsi/libata-eh.c
index 1805769..076badd 100644
--- a/drivers/scsi/libata-eh.c
+++ b/drivers/scsi/libata-eh.c
@@ -2356,17 +2356,21 @@ static void ata_eh_handle_port_resume(st
/* give devices time to request EH */
timeout = jiffies + HZ; /* 1s max */
while (1) {
+ struct ata_link *link;
struct ata_device *dev;
- ata_link_for_each_dev(dev, &ap->link) {
- unsigned int action = ata_eh_dev_action(dev);
+ ata_port_for_each_link(link, ap) {
+ ata_link_for_each_dev(dev, link) {
+ unsigned int action = ata_eh_dev_action(dev);
- if ((dev->flags & ATA_DFLAG_SUSPENDED) &&
- !(action & ATA_EH_RESUME))
- break;
+ if ((dev->flags & ATA_DFLAG_SUSPENDED) &&
+ !(action & ATA_EH_RESUME))
+ goto out_of_loop;
+ }
}
+ out_of_loop:
- if (dev == NULL || time_after(jiffies, timeout))
+ if (link == NULL || time_after(jiffies, timeout))
break;
msleep(10);
}
--
1.3.2
next prev parent reply other threads:[~2006-07-08 5:44 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-08 5:45 [PATCHSET 1/3] implement ata_link, take 2 Tejun Heo
2006-07-08 5:45 ` [PATCH 03/17] libata-link: introduce ata_link Tejun Heo
2006-07-19 20:26 ` Jeff Garzik
2006-07-24 6:19 ` Tejun Heo
2006-07-08 5:45 ` [PATCH 02/17] libata-link: add PMP related ATA constants Tejun Heo
2006-07-19 20:24 ` Jeff Garzik
2006-07-08 5:45 ` [PATCH 01/17] libata-link: separate out ata_eh_handle_dev_fail() Tejun Heo
2006-07-08 5:45 ` [PATCH 08/17] libata-link: linkify config/EH related functions Tejun Heo
2006-07-08 5:45 ` [PATCH 06/17] libata-link: linkify EH action helpers Tejun Heo
2006-07-08 5:45 ` [PATCH 05/17] libata-link: linkify PHY-related functions Tejun Heo
2006-07-08 5:45 ` [PATCH 07/17] libata-link: linkify reset Tejun Heo
2006-07-08 5:45 ` [PATCH 04/17] libata-link: implement and use link/device iterators Tejun Heo
2006-07-08 5:45 ` [PATCH 12/17] libata-link: add PMP links Tejun Heo
2006-07-08 5:45 ` [PATCH 11/17] libata-link: implement ata_link_abort() Tejun Heo
2006-07-08 5:45 ` [PATCH 09/17] libata-link: separate out link initialization functions Tejun Heo
2006-07-08 5:45 ` [PATCH 13/17] libata-link: update ata_scsi_error() to handle PMP links Tejun Heo
2006-07-08 5:45 ` [PATCH 10/17] libata-link: implement link->reset_tries Tejun Heo
2006-07-08 5:45 ` [PATCH 14/17] libata-link: update ata_dev_configure() to deal with PMP links Tejun Heo
2006-07-08 5:45 ` Tejun Heo [this message]
2006-07-19 20:29 ` [PATCH 17/17] libata-link: update Power Management to handle " Jeff Garzik
2006-07-08 5:45 ` [PATCH 15/17] libata-link: update EH to deal with " Tejun Heo
2006-07-08 5:45 ` [PATCH 16/17] libata-link: update hotplug to handle " Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1152337538606-git-send-email-htejun@gmail.com \
--to=htejun@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=forrest.zhao@intel.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=lkml@rtr.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.