[alsa-devel] [PATCH] ALSA: hda - Enable runtime pm for Haswell
Takashi Iwai
tiwai at suse.de
Wed May 22 07:51:03 CEST 2013
At Wed, 22 May 2013 03:56:00 +0000,
Wang, Xingchao wrote:
>
> Hi,
>
> Add Rafael in loop.
>
> > -----Original Message-----
> > From: Takashi Iwai [mailto:tiwai at suse.de]
> > Sent: Thursday, May 16, 2013 4:49 PM
> > To: Wang Xingchao
> > Cc: Girdwood, Liam R; Lin, Mengdong; Li, Jocelyn; alsa-devel at alsa-project.org;
> > Wang, Xingchao
> > Subject: Re: [PATCH] ALSA: hda - Enable runtime pm for Haswell
> >
> > At Thu, 16 May 2013 16:29:05 +0800,
> > Wang Xingchao wrote:
> > >
> > > Haswell doesnot support runtime pm by default.
> > > This patch let haswell Display HD-A controller enter runtime suspend,
> > > and bring more power saving whith power-well.
> > >
> > > Signed-off-by: Wang Xingchao <xingchao.wang at linux.intel.com>
> >
> > I don't think it's good to fiddle such a thing in the driver side.
> > If Haswell can support runtime PM really, it should be set commonly.
>
> I wonder whether it's HD-A driver's policy to only support runtime PM if the device can support signal wakup?
> According to Rafael, the device can support runtime PM regardless, no matter it supports PME or not.
> If so, we should remove the "if" condition check here.
Well, if the decision is purely a driver issue, then we can get rid of
PME check. But in that case, it should be simply like:
azx_probe() {
...
if (chip->driver_caps & AZX_DCAPS_PM_RUNTIME)
pm_runtime_put_noidle(&pci->dev);
...
}
azx_remove() {
...
if (chip->driver_caps & AZX_DCAPS_PM_RUNTIME)
pm_runtime_get_noresume(&pci->dev);
...
}
AFAIU, calling pm_runtime_allow() enables the runtime PM *forcibly*.
Usually this isn't a good thing.
thanks,
Takashi
>
> Thanks
> --xingchao
>
> >
> >
> > Takashi
> >
> > > ---
> > > sound/pci/hda/hda_intel.c | 6 ++++++
> > > 1 file changed, 6 insertions(+)
> > >
> > > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> > > index bf27693..eb25888 100644
> > > --- a/sound/pci/hda/hda_intel.c
> > > +++ b/sound/pci/hda/hda_intel.c
> > > @@ -3755,6 +3755,12 @@ static int azx_probe(struct pci_dev *pci,
> > >
> > > if (pci_dev_run_wake(pci))
> > > pm_runtime_put_noidle(&pci->dev);
> > > + else if (chip->driver_caps
> > > + & AZX_DCAPS_I915_POWERWELL) {
> > > + /* Haswell doesnot support runtime pm by default */
> > > + pm_runtime_put_noidle(&pci->dev);
> > > + pm_runtime_allow(&pci->dev);
> > > + }
> > >
> > > dev++;
> > > complete_all(&chip->probe_wait);
> > > --
> > > 1.7.9.5
> > >
>
More information about the Alsa-devel
mailing list