*参照元 [#y10c5da4] #backlinks *説明 [#k824c0fe] -パス: [[linux-4.4.1/sound/soc/soc-core.c]] -FIXME: これは何? --説明 **引数 [#g550a8fd] -struct snd_soc_component *component -- --[[linux-4.4.1/snd_soc_component]] -const struct snd_soc_component_driver *driver -- --[[linux-4.4.1/snd_soc_component_driver]] -struct device *dev -- --[[linux-4.4.1/device]] **返り値 [#saf87d64] -int -- **参考 [#sb728cba] *実装 [#z181c067] static int snd_soc_component_initialize(struct snd_soc_component *component, const struct snd_soc_component_driver *driver, struct device *dev) { struct snd_soc_dapm_context *dapm; - --[[linux-4.4.1/snd_soc_dapm_context]] component->name = fmt_single_name(dev, &component->id); if (!component->name) { dev_err(dev, "ASoC: Failed to allocate name\n"); return -ENOMEM; } - --[[linux-4.4.1/fmt_single_name()]] --[[linux-4.4.1/dev_err()]] component->dev = dev; component->driver = driver; component->probe = component->driver->probe; component->remove = component->driver->remove; dapm = &component->dapm; dapm->dev = dev; dapm->component = component; dapm->bias_level = SND_SOC_BIAS_OFF; dapm->idle_bias_off = true; if (driver->seq_notifier) dapm->seq_notifier = snd_soc_component_seq_notifier; if (driver->stream_event) dapm->stream_event = snd_soc_component_stream_event; - --[[linux-4.4.1/snd_soc_component_seq_notifier()]] --[[linux-4.4.1/snd_soc_component_stream_event()]] component->controls = driver->controls; component->num_controls = driver->num_controls; component->dapm_widgets = driver->dapm_widgets; component->num_dapm_widgets = driver->num_dapm_widgets; component->dapm_routes = driver->dapm_routes; component->num_dapm_routes = driver->num_dapm_routes; INIT_LIST_HEAD(&component->dai_list); mutex_init(&component->io_mutex); - --[[linux-4.4.1/INIT_LIST_HEAD()]] --[[linux-4.4.1/mutex_init()]] return 0; } *コメント [#l7040c41]