lkml.org 
[lkml]   [2011]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 3/3] ata: update ata port's runtime status during system resume
    From
    On Wed, Dec 14, 2011 at 11:18 AM, Lin Ming <ming.m.lin@intel.com> wrote:
    > The ata port is brought back to full power state during system resume.
    > So its runtime PM status will have to be updated to reflect
    > the actual post-system sleep status.
    >
    > This also fixes below warning during system suspend/resume.
    >
    > WARNING: at /work/linux/drivers/ata/libata-eh.c:4034
    > ata_scsi_port_error_handler+0x89/0x557()
    >
    > 4034         WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED));
    >
    > Signed-off-by: Lin Ming <ming.m.lin@intel.com>

    Hi Alan,

    Would you like to Ack this one also?

    Thanks,
    Lin Ming

    > ---
    >  drivers/ata/libata-core.c |   18 ++++++++++++++++--
    >  1 files changed, 16 insertions(+), 2 deletions(-)
    >
    > diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
    > index 15a3d4d..8996758 100644
    > --- a/drivers/ata/libata-core.c
    > +++ b/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,
    >  };
    >
    > --
    > 1.7.2.5
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe linux-ide" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at  http://vger.kernel.org/majordomo-info.html
    --
    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: 2011-12-14 19:47    [W:0.028 / U:32.644 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site