[alsa-devel] [RFC 05/10] ALSA: hda - make some of the functions externally visible

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Dec 1 20:26:48 CET 2017


On 12/1/17 3:14 AM, Rakesh Ughreja wrote:
> Mark some functions with EXPORT_SYMBOL_GPL so that it can be called by
> other kernel modules. These APIs would be called by ASoC based HDA codec
> driver which will be added in the later patches.

Looks ok. Just wondering from a code maintenance perspective if those 
functions would need to be part of a library, and if this means that to 
compile the ASoC based HDAudio codec support you still need to enable 
the legacy support - and if this leads to potential conflicts on which 
driver gets probed?

> 
> Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja at intel.com>
> ---
>   sound/pci/hda/hda_codec.c | 9 +++++++--
>   sound/pci/hda/hda_codec.h | 4 +++-
>   2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index e018ecb..085fd9e 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -2903,7 +2903,7 @@ static void hda_call_codec_resume(struct hda_codec *codec)
>   	atomic_dec(&codec->core.in_pm);
>   }
>   
> -static int hda_codec_runtime_suspend(struct device *dev)
> +int hda_codec_runtime_suspend(struct device *dev)
>   {
>   	struct hda_codec *codec = dev_to_hda_codec(dev);
>   	struct hda_pcm *pcm;
> @@ -2919,8 +2919,9 @@ static int hda_codec_runtime_suspend(struct device *dev)
>   	snd_hdac_link_power(&codec->core, false);
>   	return 0;
>   }
> +EXPORT_SYMBOL_GPL(hda_codec_runtime_suspend);
>   
> -static int hda_codec_runtime_resume(struct device *dev)
> +int hda_codec_runtime_resume(struct device *dev)
>   {
>   	struct hda_codec *codec = dev_to_hda_codec(dev);
>   
> @@ -2930,6 +2931,7 @@ static int hda_codec_runtime_resume(struct device *dev)
>   	pm_runtime_mark_last_busy(dev);
>   	return 0;
>   }
> +EXPORT_SYMBOL_GPL(hda_codec_runtime_resume);
>   #endif /* CONFIG_PM */
>   
>   /* referred in hda_bind.c */
> @@ -3005,6 +3007,7 @@ int snd_hda_codec_build_controls(struct hda_codec *codec)
>   	sync_power_up_states(codec);
>   	return 0;
>   }
> +EXPORT_SYMBOL_GPL(snd_hda_codec_build_controls);
>   
>   /*
>    * PCM stuff
> @@ -3210,6 +3213,7 @@ int snd_hda_codec_parse_pcms(struct hda_codec *codec)
>   
>   	return 0;
>   }
> +EXPORT_SYMBOL_GPL(snd_hda_codec_parse_pcms);
>   
>   /* assign all PCMs of the given codec */
>   int snd_hda_codec_build_pcms(struct hda_codec *codec)
> @@ -3246,6 +3250,7 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec)
>   
>   	return 0;
>   }
> +EXPORT_SYMBOL_GPL(snd_hda_codec_build_pcms);
>   
>   /**
>    * snd_hda_add_new_ctls - create controls from the array
> diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
> index 681c360..2d02d02 100644
> --- a/sound/pci/hda/hda_codec.h
> +++ b/sound/pci/hda/hda_codec.h
> @@ -83,7 +83,7 @@ struct hda_bus {
>    * better than the generic parser.
>    */
>   typedef int (*hda_codec_patch_t)(struct hda_codec *);
> -	
> +
>   #define HDA_CODEC_ID_GENERIC_HDMI	0x00000101
>   #define HDA_CODEC_ID_GENERIC		0x00000201
>   
> @@ -497,6 +497,8 @@ int hda_call_check_power_status(struct hda_codec *codec, hda_nid_t nid)
>   #ifdef CONFIG_PM
>   void snd_hda_set_power_save(struct hda_bus *bus, int delay);
>   void snd_hda_update_power_acct(struct hda_codec *codec);
> +int hda_codec_runtime_suspend(struct device *dev);
> +int hda_codec_runtime_resume(struct device *dev);
>   #else
>   static inline void snd_hda_set_power_save(struct hda_bus *bus, int delay) {}
>   #endif
> 



More information about the Alsa-devel mailing list