From abda111fd6e8f9ed5d425a93f88cab36e6c1a21d Mon Sep 17 00:00:00 2001 From: Lin Ming Date: Thu, 22 Dec 2011 14:50:48 +0800 Subject: [PATCH] --- yaml --- r: 282121 b: refs/heads/master c: e90b1e5a6e04c8892007ff8db20ef6d4fbdb5402 h: refs/heads/master i: 282119: 23514fbd58da4829a33c5b905b4e96a49d374acb v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-core.c | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 9a495ab9a081..4add9b43b976 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 28fd00d42cca178638f51c08efa986a777c24a4b +refs/heads/master: e90b1e5a6e04c8892007ff8db20ef6d4fbdb5402 diff --git a/trunk/drivers/ata/libata-core.c b/trunk/drivers/ata/libata-core.c index d5935e4f3529..ba1ed9b3acc3 100644 --- a/trunk/drivers/ata/libata-core.c +++ b/trunk/drivers/ata/libata-core.c @@ -5298,7 +5298,7 @@ static int ata_port_suspend(struct device *dev) return ata_port_suspend_common(dev); } -static int ata_port_resume(struct device *dev) +static int ata_port_resume_common(struct device *dev) { struct ata_port *ap = to_ata_port(dev); int rc; @@ -5308,6 +5308,20 @@ static int ata_port_resume(struct device *dev) return rc; } +static int ata_port_resume(struct device *dev) +{ + int rc; + + rc = ata_port_resume_common(dev); + if (!rc) { + pm_runtime_disable(dev); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); + } + + return rc; +} + static int ata_port_runtime_idle(struct device *dev) { return pm_runtime_suspend(dev); @@ -5318,7 +5332,7 @@ static const struct dev_pm_ops ata_port_pm_ops = { .resume = ata_port_resume, .runtime_suspend = ata_port_suspend_common, - .runtime_resume = ata_port_resume, + .runtime_resume = ata_port_resume_common, .runtime_idle = ata_port_runtime_idle, };