[alsa-devel] [PATCH 2/3] ALSA: hda - WAKEEN feature enabling for runtime pm
Wang, Xingchao
xingchao.wang at intel.com
Tue Jul 23 10:09:02 CEST 2013
> >
> > Signed-off-by: Wang Xingchao <xingchao.wang at linux.intel.com>
> > ---
> > sound/pci/hda/hda_intel.c | 25 +++++++++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> >
> > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> > index 8860dd5..a7ac7fd 100644
> > --- a/sound/pci/hda/hda_intel.c
> > +++ b/sound/pci/hda/hda_intel.c
> > @@ -2970,6 +2970,11 @@ static int azx_runtime_suspend(struct device
> *dev)
> > {
> > struct snd_card *card = dev_get_drvdata(dev);
> > struct azx *chip = card->private_data;
> > + int status;
> > +
> > + /* enable controller wake up event */
> > + azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) |
> > + STATESTS_INT_MASK);
> >
> > azx_stop_chip(chip);
> > azx_enter_link_reset(chip);
> > @@ -2983,11 +2988,31 @@ static int azx_runtime_resume(struct device
> *dev)
> > {
> > struct snd_card *card = dev_get_drvdata(dev);
> > struct azx *chip = card->private_data;
> > + struct hda_bus *bus;
> > + struct hda_codec *codec;
> > + int status;
> >
> > if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL)
> > hda_display_power(true);
> > +
> > + /* Read STATESTS before controller reset */
> > + status = azx_readw(chip, STATESTS);
> > +
> > azx_init_pci(chip);
> > azx_init_chip(chip, 1);
> > +
> > + bus = chip->bus;
> > + if (status && bus) {
> > + list_for_each_entry(codec, &bus->codec_list, list)
> > + if (status & (1 << codec->addr))
> > + queue_delayed_work(codec->bus->workq,
> > + &codec->jackpoll_work,
> codec->jackpoll_interval);
>
> Is there a reason you want to move the jack detection to a delayed work, i e,
> why can't we just call:
>
> snd_hda_jack_set_dirty_all(codec);
> snd_hda_jack_poll_all(codec);
>
> ...from here?
In fact it doesnot work for me, It will again call runtime_resume() and caused dead loop.
--xingchao
>
> > + }
> > +
> > + /* disable controller Wake Up event*/
> > + azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) &
> > + ~STATESTS_INT_MASK);
> > +
> > return 0;
> > }
> >
> >
>
>
>
> --
> David Henningsson, Canonical Ltd.
> https://launchpad.net/~diwic
More information about the Alsa-devel
mailing list