Hi Takashi, >-----Original Message----- >From: Takashi Iwai [mailto:tiwai@xxxxxxx] >Sent: Tuesday, April 16, 2019 6:24 PM >To: Yang, Libin <libin.yang@xxxxxxxxx> >Cc: alsa-devel@xxxxxxxxxxxxxxxx; broonie@xxxxxxxxxx; pierre- >louis.bossart@xxxxxxxxxxxxxxx >Subject: Re: [PATCH v2] ASoC: codec: hdac_hdmi add device_link >to card device > >On Sat, 13 Apr 2019 15:18:12 +0200, >libin.yang@xxxxxxxxx wrote: >> >> From: Libin Yang <libin.yang@xxxxxxxxx> >> >> In resume from S3, HDAC HDMI codec driver dapm event callback may be >> operated before HDMI codec driver turns on the display audio power >> domain because of the contest between display driver and hdmi codec >driver. >> >> This patch adds the device_link between soc card device (consumer) and >> hdmi codec device (supplier) to make sure the sequence is always correct. >> >> Signed-off-by: Libin Yang <libin.yang@xxxxxxxxx> > >Reviewed-by: Takashi Iwai <tiwai@xxxxxxx> Thanks for the review. > >Is it an issue that has been present for older released kernels? >If so, it deserves for Cc-to-stable. It is for all released kernels, and the rates of reproduce are different. It's graphics driver related. Regards, Libin > > >thanks, > >Takashi > >> --- >> sound/soc/codecs/hdac_hdmi.c | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/sound/soc/codecs/hdac_hdmi.c >> b/sound/soc/codecs/hdac_hdmi.c index 5eeb0fe..4de1fbf 100644 >> --- a/sound/soc/codecs/hdac_hdmi.c >> +++ b/sound/soc/codecs/hdac_hdmi.c >> @@ -1855,6 +1855,17 @@ static int hdmi_codec_probe(struct >snd_soc_component *component) >> hdmi->card = dapm->card->snd_card; >> >> /* >> + * Setup a device_link between card device and HDMI codec device. >> + * The card device is the consumer and the HDMI codec device is >> + * the supplier. With this setting, we can make sure that the audio >> + * domain in display power will be always turned on before operating >> + * on the HDMI audio codec registers. >> + * Let's use the flag DL_FLAG_AUTOREMOVE_CONSUMER. This can >make >> + * sure the device link is freed when the machine driver is removed. >> + */ >> + device_link_add(component->card->dev, &hdev->dev, >DL_FLAG_RPM_ACTIVE | >> + DL_FLAG_AUTOREMOVE_CONSUMER); >> + /* >> * hdac_device core already sets the state to active and calls >> * get_noresume. So enable runtime and set the device to suspend. >> */ >> -- >> 2.7.4 >> _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel