[alsa-devel] [PATCH V7 1/2] ASoC: core: add API for registering and cleaning up DMI card names

Takashi Sakamoto o-takashi at sakamocchi.jp
Wed Apr 6 11:48:01 CEST 2016


Hi,

On Apr 6 2016 16:29, han.lu at intel.com wrote:
> From: "Lu, Han" <han.lu at intel.com>
> 
> Add core API for registering and cleaning up DMI card names, so user
> space utils such as PA and UCM can distinguish various products.
> Previously on ASoC, the card short name, driver name and long name were
> all the same as the machine driver name.
> The patch adds more board information:
>   card driver name     --->  machine driver name
>   card short name      --->  DMI_BOARD_NAME or DMI_PRODUCT_NAME
>   card long name and
>   card component       --->  short name;driver name;(DMI_SYS_VENDOR,
>                              optional);(the firmware name, optional)
> 
> Signed-off-by: Lu, Han <han.lu at intel.com>
> 
> diff --git a/include/sound/soc.h b/include/sound/soc.h
> index 02b4a21..911d09e 100644
> --- a/include/sound/soc.h
> +++ b/include/sound/soc.h
> @@ -486,6 +486,9 @@ void snd_soc_runtime_deactivate(struct snd_soc_pcm_runtime *rtd, int stream);
>  int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd,
>  	unsigned int dai_fmt);
>  
> +int snd_soc_set_card_names(struct snd_soc_card *card, const char *firmware);
> +void snd_soc_cleanup_card_names(struct snd_soc_card *card);
> +
>  /* Utility functions to get clock rates from various things */
>  int snd_soc_calc_frame_size(int sample_size, int channels, int tdm_slots);
>  int snd_soc_params_to_frame_size(struct snd_pcm_hw_params *params);
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index d2e62b15..c1f3520 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> (omit)
> +/**
> + * snd_soc_cleanup_card_names() - cleanup registered DMI names
> + * @card: The card to cleanup
> + *
> + * This function cleanup the registered DMI names from card
> + */
> +void snd_soc_cleanup_card_names(struct snd_soc_card *card)
> +{
> +	kfree(card->long_name);
> +}
> +EXPORT_SYMBOL_GPL(snd_soc_cleanup_card_names);
> +

In linux kernel development, such a function with a little statements
tends to be 'static inline function' defined in a header, instead of
maintaining more symbols. I think some APIs of Linux workqueue are good
examples to you. See 'include/linux/workqueue.h'.


Regards

Takashi Sakamoto


More information about the Alsa-devel mailing list