ASoC: soc-core: use device_register()
It is easy to read code if it is cleanly using paired function/naming, like start <-> stop, register <-> unregister, etc, etc. But, current ALSA SoC code is very random, unbalance, not paired, etc. soc-core.c is using device_unregiser(), but there is no its paired device_regiser(). We can find its code at soc_post_component_init() which is using device_initialize() and device_add(). Here, device_initialize() + device_add() = device_register(). -- linux/drivers/base/core.c -- int device_register(struct device *dev) { device_initialize(dev); return device_add(dev); } device_initialize() is doing each dev member's initialization only, not related to device parent/release/groups. Thus, we can postpone it. let's use device_register() instead of device_initialize()/device_add(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/878sro1ldw.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6191cbde5f
commit
4168ddabb4
@ -1347,7 +1347,6 @@ static int soc_post_component_init(struct snd_soc_pcm_runtime *rtd,
|
||||
rtd->dev = kzalloc(sizeof(struct device), GFP_KERNEL);
|
||||
if (!rtd->dev)
|
||||
return -ENOMEM;
|
||||
device_initialize(rtd->dev);
|
||||
rtd->dev->parent = rtd->card->dev;
|
||||
rtd->dev->release = rtd_release;
|
||||
rtd->dev->groups = soc_dev_attr_groups;
|
||||
@ -1357,7 +1356,7 @@ static int soc_post_component_init(struct snd_soc_pcm_runtime *rtd,
|
||||
INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].be_clients);
|
||||
INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].fe_clients);
|
||||
INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].fe_clients);
|
||||
ret = device_add(rtd->dev);
|
||||
ret = device_register(rtd->dev);
|
||||
if (ret < 0) {
|
||||
/* calling put_device() here to free the rtd->dev */
|
||||
put_device(rtd->dev);
|
||||
|
Loading…
Reference in New Issue
Block a user