[alsa-devel] [PATCH 15/15] ASoC: hdac_hdmi: Keep display active while enumerating codec

Subhransu S. Prusty subhransu.s.prusty at intel.com
Wed Dec 2 17:23:18 CET 2015


On Wed, Dec 02, 2015 at 11:24:53AM +0100, Takashi Iwai wrote:
> On Wed, 02 Dec 2015 16:37:36 +0100,
> Subhransu S. Prusty wrote:
> > 
> > On Tue, Dec 01, 2015 at 06:08:28PM +0100, Takashi Iwai wrote:
> > > On Tue, 01 Dec 2015 17:48:43 +0100,
> > > Babu, Ramesh wrote:
> > > > 
> > > > > On Tue, 01 Dec 2015 22:48:41 +0100,
> > > > > Subhransu S. Prusty wrote:
> > > > > >
> > > > > > On Tue, Dec 01, 2015 at 01:57:01PM +0100, Takashi Iwai wrote:
> > > > > > > On Tue, 01 Dec 2015 18:47:11 +0100,
> > > > > > > Subhransu S. Prusty wrote:
> > > > > > > >
> > > > > > > > From: Ramesh Babu <ramesh.babu at intel.com>
> > > > > > > >
> > > > > > > > Signed-off-by: Ramesh Babu <ramesh.babu at intel.com>
> > > > > > > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty at intel.com>
> > > > > > > > Signed-off-by: Vinod Koul <vinod.koul at intel.com>
> > > > > > > > ---
> > > > > > > >  sound/soc/codecs/hdac_hdmi.c | 8 ++++++++
> > > > > > > >  1 file changed, 8 insertions(+)
> > > > > > > >
> > > > > > > > diff --git a/sound/soc/codecs/hdac_hdmi.c
> > > > > b/sound/soc/codecs/hdac_hdmi.c
> > > > > > > > index 46aa5cc..fa3cfa5 100644
> > > > > > > > --- a/sound/soc/codecs/hdac_hdmi.c
> > > > > > > > +++ b/sound/soc/codecs/hdac_hdmi.c
> > > > > > > > @@ -1136,6 +1136,14 @@ static int hdac_hdmi_dev_probe(struct
> > > > > hdac_ext_device *edev)
> > > > > > > >  	INIT_LIST_HEAD(&hdmi_priv->pin_list);
> > > > > > > >  	INIT_LIST_HEAD(&hdmi_priv->cvt_list);
> > > > > > > >
> > > > > > > > +	ret = snd_hdac_display_power(edev->hdac.bus, true);
> > > > > > > > +	if (ret < 0) {
> > > > > > > > +		dev_err(&edev->hdac.dev,
> > > > > > > > +			"Cannot turn on display power on i915 err: %d\n",
> > > > > > > > +			ret);
> > > > > > > > +		return ret;
> > > > > > > > +	}
> > > > > > > > +
> > > > > > > >  	ret = hdac_hdmi_parse_and_map_nid(edev, &hdmi_dais, &num_dais);
> > > > > > > >  	if (ret < 0) {
> > > > > > > >  		dev_err(&codec->dev, "Failed in parse and map nid with err:
> > > > > %d\n", ret);
> > > > > > > > --
> > > > > > > > 1.9.1
> > > > > > >
> > > > > > > No counterpart to turn off?
> > > > > > turned off in runtime suspend during first explicit suspend call.
> > > > > 
> > > > > It's a refcount, hence it does matter how many times it's called.
> > > > > Does it really balance well?  It smells suspicious if you add only a
> > > > > call to turn on without turning off...
> > > > 
> > > > Display power is turned ON during device probe. When soc codec probe
> > > > completes, runtime suspend call is invoked and display power is turned OFF.
> > > > So refcount is balanced. 
> > > 
> > > The runtime suspend of the codec, or of the controller?  I haven't
> > > seen the codec suspend/resume doing it in this patchset, so I wonder.
> > 
> > It is turned off in the runtime suspend of the codec. It was added in the
> > basic driver patch series as part of PM enabling where it enables the
> > display during runtime resume and disable during runtime suspend. But
> > when the device runtime PM is first enabled and the device is put to
> > suspend, only runtime suspend gets called which doesn't actually decrement
> > the display reference count but throws a warning. With this patch that
> > gets fixed as well.
> 
> So, the patch is about fixing the unbalance.  It clarifies my
> suspect.  The problem is that $SUBJECT doesn't mention it at all, and 
> even the patch had zero changelog text.  Please document more!

Sorry about that. Will add more in the changelog and add comments in the
code as well.

> 
> Also, if this is a fix, you should put Fixes tag.
Sure will do that.
> 
> BTW, who will turn off the display power at codec removal?

The driver keeps the display off. The display power is on in the RTPM resume
when a playbck starts and off in the RTPM suspend callback once the playback
is stopped except for the above scenario where it is turned on during
dev_probe call and put to off during the first explicit call to runtime
suspend.

Regards,
Subhransu

> 
> 
> thanks,
> 
> Takashi
> 
> > > if it's really well balanced, you should add the proper comment in the
> > > code who turns off at when and where.  Otherwise reader will be lost.
> > 
> > Sure. Will udpate the changelog and add some comments in the code as well.
> > 
> > > 
> > > 
> > > Takashi
> > > _______________________________________________
> > > Alsa-devel mailing list
> > > Alsa-devel at alsa-project.org
> > > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > 
> > -- 
> > 

-- 


More information about the Alsa-devel mailing list