[alsa-devel] [PATCH 1/2] ALSA: hdmi - poll eld at resume time

Takashi Iwai tiwai at suse.de
Tue Jun 25 09:06:32 CEST 2013


At Tue, 25 Jun 2013 06:34:49 +0000,
Wang, Xingchao wrote:
> 
> Hi Takashi,
> 
> > -----Original Message-----
> > From: Takashi Iwai [mailto:tiwai at suse.de]
> > Sent: Tuesday, June 25, 2013 2:07 PM
> > To: Wang, Xingchao
> > Cc: alsa-devel at alsa-project.org; Wang Xingchao
> > Subject: Re: [PATCH 1/2] ALSA: hdmi - poll eld at resume time
> > 
> > At Tue, 25 Jun 2013 04:54:05 +0000,
> > Wang, Xingchao wrote:
> > >
> > > Hi Takashi,
> > >
> > >
> > > > -----Original Message-----
> > > > From: Takashi Iwai [mailto:tiwai at suse.de]
> > > > Sent: Monday, June 24, 2013 8:50 PM
> > > > To: Wang, Xingchao
> > > > Cc: alsa-devel at alsa-project.org; Wang Xingchao
> > > > Subject: Re: [PATCH 1/2] ALSA: hdmi - poll eld at resume time
> > > >
> > > > At Mon, 24 Jun 2013 12:19:42 +0000,
> > > > Wang, Xingchao wrote:
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Takashi Iwai [mailto:tiwai at suse.de]
> > > > > > Sent: Monday, June 24, 2013 7:33 PM
> > > > > > To: Wang Xingchao
> > > > > > Cc: alsa-devel at alsa-project.org; Wang, Xingchao
> > > > > > Subject: Re: [PATCH 1/2] ALSA: hdmi - poll eld at resume time
> > > > > >
> > > > > > At Mon, 24 Jun 2013 07:45:23 -0400, Wang Xingchao wrote:
> > > > > > >
> > > > > > > Hdmi driver may not receive intrinsic event from gfx side when
> > > > > > > it's in runtime suspend mode. There's no ELD info when exit
> > > > > > > from runtime suspend. This patch avoid missing ELD info.
> > > > > >
> > > > > > hda_call_codec_resume() sets the jack detection all dirty, thus
> > > > > > each jack detection callback should be called at resume.  Didn't
> > > > > > it work as
> > > > expected?
> > > > >
> > > > > I would double check that. In my test, it doesnot work as expected.
> > > >
> > > > OK, I found the problem.  patch_hdmi.c enables the jack detection
> > > > stuff without the callback, so the resume code triggers the check of
> > > > jack detection but only updates the kcontrols.
> > >
> > > You patch did not resolve the issue.
> > > I added some debug log, the callback wasnot called at all.
> > 
> > Even if you unplugged while runtime suspend?
> 
> Yes, the controller/codec suspended in runtime already.
> 
> > 
> > The callback is called only when the plug status (i.e. the jack detection state)
> > change is detected at the resume time -- i.e. the state the driver holds differs
> > from the state at the resume.
> > 
> 
> Do you assume jackpoll_interval be non-zero? If so the hda_jackpoll_work will continue to run periodically.
> IMO the callback just need be called only once at resume time.

Hmm, the problem is that the callback updater isn't called in the
resume path as default.  The oneliner below will fix it.

But, looking through all changes, maybe your first patch is easier to
apply as is now.  I'll take it.

We need a bit more cleanups over init and resume codes after all.
The init callback is called before calling build_controls and
build_pcm, and the very same init callback is called also in the
resume path (if the resume callback is undefined).  This causes the
confusion, too.

In patch_hdmi.c, the init changes only the pin control and amp, and
can't touch anything else, because it cannot call any pin-related
events at that point since the necessary resources are added in the
later point, generic_hdmi_build_controls().


thanks,

Takashi



> 
> Thanks
> --xingchao
> 


More information about the Alsa-devel mailing list