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

Han Lu han.lu at linux.intel.com
Thu Apr 7 11:43:20 CEST 2016



On 04/06/2016 05:48 PM, Takashi Sakamoto wrote:
> 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'.

Thanks. Since we need to pass the string (firmware name) from machine
driver to core anyway, I guess one API is a must, but the cleanup API may
not necessary if there's no allocation. I'll rethink of it.

BR,
Han
>
>
> Regards
>
> Takashi Sakamoto
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>



More information about the Alsa-devel mailing list