[alsa-devel] [PATCH 1/2] ALSA: hdmi - poll eld at resume time
Takashi Iwai
tiwai at suse.de
Mon Jun 24 13:32:56 CEST 2013
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?
Takashi
>
> Signed-off-by: Wang Xingchao <xingchao.wang at linux.intel.com>
> ---
> sound/pci/hda/patch_hdmi.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> index 7803ddd..cb8ac66 100644
> --- a/sound/pci/hda/patch_hdmi.c
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -1868,12 +1868,33 @@ static void generic_hdmi_free(struct hda_codec *codec)
> kfree(spec);
> }
>
> +#ifdef CONFIG_PM
> +static int generic_hdmi_resume(struct hda_codec *codec)
> +{
> + struct hdmi_spec *spec = codec->spec;
> + int pin_idx;
> +
> + generic_hdmi_init(codec);
> + snd_hda_codec_resume_amp(codec);
> + snd_hda_codec_resume_cache(codec);
> +
> + for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
> + struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
> + hdmi_present_sense(per_pin, 1);
> + }
> + return 0;
> +}
> +#endif
> +
> static const struct hda_codec_ops generic_hdmi_patch_ops = {
> .init = generic_hdmi_init,
> .free = generic_hdmi_free,
> .build_pcms = generic_hdmi_build_pcms,
> .build_controls = generic_hdmi_build_controls,
> .unsol_event = hdmi_unsol_event,
> +#ifdef CONFIG_PM
> + .resume = generic_hdmi_resume,
> +#endif
> };
>
>
> --
> 1.8.1.2
>
More information about the Alsa-devel
mailing list