[alsa-devel] [PATCH v2] ASoC: codec: hdac_hdmi add device_link to card device

Yang, Libin libin.yang at intel.com
Wed Apr 17 03:12:09 CEST 2019


Hi Takashi,

>-----Original Message-----
>From: Takashi Iwai [mailto:tiwai at suse.de]
>Sent: Tuesday, April 16, 2019 6:24 PM
>To: Yang, Libin <libin.yang at intel.com>
>Cc: alsa-devel at alsa-project.org; broonie at kernel.org; pierre-
>louis.bossart at linux.intel.com
>Subject: Re: [alsa-devel] [PATCH v2] ASoC: codec: hdac_hdmi add device_link
>to card device
>
>On Sat, 13 Apr 2019 15:18:12 +0200,
>libin.yang at intel.com wrote:
>>
>> From: Libin Yang <libin.yang at intel.com>
>>
>> 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 at intel.com>
>
>Reviewed-by: Takashi Iwai <tiwai at suse.de>

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
>>


More information about the Alsa-devel mailing list