All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: hdmi: add device PM dependency
@ 2019-03-29  5:23 libin.yang
  2019-03-30  1:32 ` Pierre-Louis Bossart
  0 siblings, 1 reply; 3+ messages in thread
From: libin.yang @ 2019-03-29  5:23 UTC (permalink / raw)
  To: alsa-devel, tiwai, broonie; +Cc: libin.yang

From: Libin Yang <libin.yang@intel.com>

HDMI audio codec register operation depends on the display audio power
domain. The hdmi audio codec dapm event callback must be called after
display audio power is turned on.

Add hdac_hdmi_device_link_add() in HDMI audio codec driver. The customer
audio driver can call the function to set the audio power dependency.

Signed-off-by: Libin Yang <libin.yang@intel.com>
---
 sound/soc/codecs/hdac_hdmi.c | 12 ++++++++++++
 sound/soc/codecs/hdac_hdmi.h |  6 ++++++
 2 files changed, 18 insertions(+)

diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
index 5eeb0fe..c991407 100644
--- a/sound/soc/codecs/hdac_hdmi.c
+++ b/sound/soc/codecs/hdac_hdmi.c
@@ -1792,6 +1792,18 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device,
 }
 EXPORT_SYMBOL_GPL(hdac_hdmi_jack_init);
 
+struct device_link *
+hdac_hdmi_device_link_add(struct device *consumer,
+			  struct snd_soc_component *component,
+			  u32 flags)
+{
+	struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component);
+	struct hdac_device *hdev = hdmi->hdev;
+
+	return device_link_add(consumer, &hdev->dev, flags);
+}
+EXPORT_SYMBOL_GPL(hdac_hdmi_device_link_add);
+
 static void hdac_hdmi_present_sense_all_pins(struct hdac_device *hdev,
 			struct hdac_hdmi_priv *hdmi, bool detect_pin_caps)
 {
diff --git a/sound/soc/codecs/hdac_hdmi.h b/sound/soc/codecs/hdac_hdmi.h
index 4fa2fc9..9239c6b 100644
--- a/sound/soc/codecs/hdac_hdmi.h
+++ b/sound/soc/codecs/hdac_hdmi.h
@@ -7,4 +7,10 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int pcm,
 
 int hdac_hdmi_jack_port_init(struct snd_soc_component *component,
 			struct snd_soc_dapm_context *dapm);
+
+struct device_link *
+hdac_hdmi_device_link_add(struct device *consumer,
+			  struct snd_soc_component *component,
+			  u32 flags);
+
 #endif /* __HDAC_HDMI_H__ */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ASoC: hdmi: add device PM dependency
  2019-03-29  5:23 [PATCH] ASoC: hdmi: add device PM dependency libin.yang
@ 2019-03-30  1:32 ` Pierre-Louis Bossart
  2019-03-30 23:28   ` Yang, Libin
  0 siblings, 1 reply; 3+ messages in thread
From: Pierre-Louis Bossart @ 2019-03-30  1:32 UTC (permalink / raw)
  To: libin.yang, alsa-devel, tiwai, broonie

On 3/29/19 1:23 AM, libin.yang@intel.com wrote:
> From: Libin Yang <libin.yang@intel.com>
> 
> HDMI audio codec register operation depends on the display audio power
> domain. The hdmi audio codec dapm event callback must be called after
> display audio power is turned on.
> 
> Add hdac_hdmi_device_link_add() in HDMI audio codec driver. The customer
> audio driver can call the function to set the audio power dependency.

Can you clarify what the 'customer audio driver(s)' are, and in the case 
where you meant the cAVS/SST driver all a patch that makes use of this 
new routine?

Also the patch subject should be ASoC: hdac_hdmi: ...



> 
> Signed-off-by: Libin Yang <libin.yang@intel.com>
> ---
>   sound/soc/codecs/hdac_hdmi.c | 12 ++++++++++++
>   sound/soc/codecs/hdac_hdmi.h |  6 ++++++
>   2 files changed, 18 insertions(+)
> 
> diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
> index 5eeb0fe..c991407 100644
> --- a/sound/soc/codecs/hdac_hdmi.c
> +++ b/sound/soc/codecs/hdac_hdmi.c
> @@ -1792,6 +1792,18 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device,
>   }
>   EXPORT_SYMBOL_GPL(hdac_hdmi_jack_init);
>   
> +struct device_link *
> +hdac_hdmi_device_link_add(struct device *consumer,
> +			  struct snd_soc_component *component,
> +			  u32 flags)
> +{
> +	struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component);
> +	struct hdac_device *hdev = hdmi->hdev;
> +
> +	return device_link_add(consumer, &hdev->dev, flags);
> +}
> +EXPORT_SYMBOL_GPL(hdac_hdmi_device_link_add);
> +
>   static void hdac_hdmi_present_sense_all_pins(struct hdac_device *hdev,
>   			struct hdac_hdmi_priv *hdmi, bool detect_pin_caps)
>   {
> diff --git a/sound/soc/codecs/hdac_hdmi.h b/sound/soc/codecs/hdac_hdmi.h
> index 4fa2fc9..9239c6b 100644
> --- a/sound/soc/codecs/hdac_hdmi.h
> +++ b/sound/soc/codecs/hdac_hdmi.h
> @@ -7,4 +7,10 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int pcm,
>   
>   int hdac_hdmi_jack_port_init(struct snd_soc_component *component,
>   			struct snd_soc_dapm_context *dapm);
> +
> +struct device_link *
> +hdac_hdmi_device_link_add(struct device *consumer,
> +			  struct snd_soc_component *component,
> +			  u32 flags);
> +
>   #endif /* __HDAC_HDMI_H__ */
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ASoC: hdmi: add device PM dependency
  2019-03-30  1:32 ` Pierre-Louis Bossart
@ 2019-03-30 23:28   ` Yang, Libin
  0 siblings, 0 replies; 3+ messages in thread
From: Yang, Libin @ 2019-03-30 23:28 UTC (permalink / raw)
  To: Pierre-Louis Bossart, alsa-devel, tiwai, broonie

Hi Pierre,

>On 3/29/19 1:23 AM, libin.yang@intel.com wrote:
>> From: Libin Yang <libin.yang@intel.com>
>>
>> HDMI audio codec register operation depends on the display audio power
>> domain. The hdmi audio codec dapm event callback must be called after
>> display audio power is turned on.
>>
>> Add hdac_hdmi_device_link_add() in HDMI audio codec driver. The
>> customer audio driver can call the function to set the audio power
>dependency.
>
>Can you clarify what the 'customer audio driver(s)' are, and in the case where
>you meant the cAVS/SST driver all a patch that makes use of this new routine?

Sure, I will do it. I haven't made the patches for cAVS/SST driver. I tested it
on SOF driver. It works.

>
>Also the patch subject should be ASoC: hdac_hdmi: ...

Thanks for point it out. I will change the subject.

Regards,
Libin

>
>
>
>>
>> Signed-off-by: Libin Yang <libin.yang@intel.com>
>> ---
>>   sound/soc/codecs/hdac_hdmi.c | 12 ++++++++++++
>>   sound/soc/codecs/hdac_hdmi.h |  6 ++++++
>>   2 files changed, 18 insertions(+)
>>
>> diff --git a/sound/soc/codecs/hdac_hdmi.c
>> b/sound/soc/codecs/hdac_hdmi.c index 5eeb0fe..c991407 100644
>> --- a/sound/soc/codecs/hdac_hdmi.c
>> +++ b/sound/soc/codecs/hdac_hdmi.c
>> @@ -1792,6 +1792,18 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai,
>int device,
>>   }
>>   EXPORT_SYMBOL_GPL(hdac_hdmi_jack_init);
>>
>> +struct device_link *
>> +hdac_hdmi_device_link_add(struct device *consumer,
>> +			  struct snd_soc_component *component,
>> +			  u32 flags)
>> +{
>> +	struct hdac_hdmi_priv *hdmi =
>snd_soc_component_get_drvdata(component);
>> +	struct hdac_device *hdev = hdmi->hdev;
>> +
>> +	return device_link_add(consumer, &hdev->dev, flags); }
>> +EXPORT_SYMBOL_GPL(hdac_hdmi_device_link_add);
>> +
>>   static void hdac_hdmi_present_sense_all_pins(struct hdac_device *hdev,
>>   			struct hdac_hdmi_priv *hdmi, bool detect_pin_caps)
>>   {
>> diff --git a/sound/soc/codecs/hdac_hdmi.h
>> b/sound/soc/codecs/hdac_hdmi.h index 4fa2fc9..9239c6b 100644
>> --- a/sound/soc/codecs/hdac_hdmi.h
>> +++ b/sound/soc/codecs/hdac_hdmi.h
>> @@ -7,4 +7,10 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int
>> pcm,
>>
>>   int hdac_hdmi_jack_port_init(struct snd_soc_component *component,
>>   			struct snd_soc_dapm_context *dapm);
>> +
>> +struct device_link *
>> +hdac_hdmi_device_link_add(struct device *consumer,
>> +			  struct snd_soc_component *component,
>> +			  u32 flags);
>> +
>>   #endif /* __HDAC_HDMI_H__ */
>>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-03-30 23:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-29  5:23 [PATCH] ASoC: hdmi: add device PM dependency libin.yang
2019-03-30  1:32 ` Pierre-Louis Bossart
2019-03-30 23:28   ` Yang, Libin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.