linux-4.4.1/snd_soc_register_card()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#rd857104]
#backlinks
*説明 [#h4545bb2]
-パス: [[linux-4.4.1/sound/soc/soc-core.c]]
-FIXME: これは何?
--説明
**引数 [#md666b9c]
-struct snd_soc_card *card
--
--[[linux-4.4.1/snd_soc_card]]
**返り値 [#oaab868e]
-int
--
**参考 [#h84ac2a9]
*実装 [#xb1da611]
/**
* snd_soc_register_card - Register a card with the ASoC...
*
* @card: Card to register
*
*/
int snd_soc_register_card(struct snd_soc_card *card)
{
int i, j, ret;
if (!card->name || !card->dev)
return -EINVAL;
for (i = 0; i < card->num_links; i++) {
struct snd_soc_dai_link *link = &card->d...
-
--[[linux-4.4.1/snd_soc_dai_link]]
ret = snd_soc_init_multicodec(card, link);
if (ret) {
dev_err(card->dev, "ASoC: failed...
return ret;
}
-
--[[linux-4.4.1/snd_soc_init_multicodec()]]
--[[linux-4.4.1/dev_err()]]
for (j = 0; j < link->num_codecs; j++) {
/*
* Codec must be specified by 1 ...
* not both or neither.
*/
if (!!link->codecs[j].name ==
!!link->codecs[j].of_node) {
dev_err(card->dev, "ASoC...
link->name);
return -EINVAL;
}
/* Codec DAI name must be specif...
if (!link->codecs[j].dai_name) {
dev_err(card->dev, "ASoC...
link->name);
return -EINVAL;
}
}
/*
* Platform may be specified by either n...
* can be left unspecified, and a dummy ...
*/
if (link->platform_name && link->platfor...
dev_err(card->dev,
"ASoC: Both platform nam...
link->name);
return -EINVAL;
}
/*
* CPU device may be specified by either...
* can be left unspecified, and will be ...
* name alone..
*/
if (link->cpu_name && link->cpu_of_node) {
dev_err(card->dev,
"ASoC: Neither/both cpu ...
link->name);
return -EINVAL;
}
/*
* At least one of CPU DAI name or CPU d...
* specified
*/
if (!link->cpu_dai_name &&
!(link->cpu_name || link->cpu_of_nod...
dev_err(card->dev,
"ASoC: Neither cpu_dai_n...
link->name);
return -EINVAL;
}
}
dev_set_drvdata(card->dev, card);
-
--[[linux-4.4.1/dev_set_drvdata()]]
snd_soc_initialize_card_lists(card);
-
--[[linux-4.4.1/snd_soc_initialize_card_lists()]]
card->rtd = devm_kzalloc(card->dev,
sizeof(struct snd_soc_p...
(card->num_links + card...
GFP_KERNEL);
if (card->rtd == NULL)
return -ENOMEM;
card->num_rtd = 0;
card->rtd_aux = &card->rtd[card->num_links];
-
--[[linux-4.4.1/devm_kzalloc()]]
for (i = 0; i < card->num_links; i++) {
card->rtd[i].card = card;
card->rtd[i].dai_link = &card->dai_link[...
card->rtd[i].codec_dais = devm_kzalloc(c...
sizeof(struct sn...
(card->rtd[i].da...
GFP_KERNEL);
if (card->rtd[i].codec_dais == NULL)
return -ENOMEM;
}
for (i = 0; i < card->num_aux_devs; i++)
card->rtd_aux[i].card = card;
INIT_LIST_HEAD(&card->dapm_dirty);
INIT_LIST_HEAD(&card->dobj_list);
card->instantiated = 0;
mutex_init(&card->mutex);
mutex_init(&card->dapm_mutex);
-
--[[linux-4.4.1/INIT_LIST_HEAD()]]
--[[linux-4.4.1/mutex_init()]]
ret = snd_soc_instantiate_card(card);
if (ret != 0)
return ret;
-
--[[linux-4.4.1/snd_soc_instantiate_card()]]
/* deactivate pins to sleep state */
for (i = 0; i < card->num_rtd; i++) {
struct snd_soc_pcm_runtime *rtd = &card-...
struct snd_soc_dai *cpu_dai = rtd->cpu_d...
int j;
-
--[[linux-4.4.1/snd_soc_pcm_runtime]]
--[[linux-4.4.1/snd_soc_dai]]
for (j = 0; j < rtd->num_codecs; j++) {
struct snd_soc_dai *codec_dai = ...
if (!codec_dai->active)
pinctrl_pm_select_sleep_...
}
-
--[[linux-4.4.1/pinctrl_pm_select_sleep_state()]]
if (!cpu_dai->active)
pinctrl_pm_select_sleep_state(cp...
}
return ret;
}
*コメント [#bdbdd691]
終了行:
*参照元 [#rd857104]
#backlinks
*説明 [#h4545bb2]
-パス: [[linux-4.4.1/sound/soc/soc-core.c]]
-FIXME: これは何?
--説明
**引数 [#md666b9c]
-struct snd_soc_card *card
--
--[[linux-4.4.1/snd_soc_card]]
**返り値 [#oaab868e]
-int
--
**参考 [#h84ac2a9]
*実装 [#xb1da611]
/**
* snd_soc_register_card - Register a card with the ASoC...
*
* @card: Card to register
*
*/
int snd_soc_register_card(struct snd_soc_card *card)
{
int i, j, ret;
if (!card->name || !card->dev)
return -EINVAL;
for (i = 0; i < card->num_links; i++) {
struct snd_soc_dai_link *link = &card->d...
-
--[[linux-4.4.1/snd_soc_dai_link]]
ret = snd_soc_init_multicodec(card, link);
if (ret) {
dev_err(card->dev, "ASoC: failed...
return ret;
}
-
--[[linux-4.4.1/snd_soc_init_multicodec()]]
--[[linux-4.4.1/dev_err()]]
for (j = 0; j < link->num_codecs; j++) {
/*
* Codec must be specified by 1 ...
* not both or neither.
*/
if (!!link->codecs[j].name ==
!!link->codecs[j].of_node) {
dev_err(card->dev, "ASoC...
link->name);
return -EINVAL;
}
/* Codec DAI name must be specif...
if (!link->codecs[j].dai_name) {
dev_err(card->dev, "ASoC...
link->name);
return -EINVAL;
}
}
/*
* Platform may be specified by either n...
* can be left unspecified, and a dummy ...
*/
if (link->platform_name && link->platfor...
dev_err(card->dev,
"ASoC: Both platform nam...
link->name);
return -EINVAL;
}
/*
* CPU device may be specified by either...
* can be left unspecified, and will be ...
* name alone..
*/
if (link->cpu_name && link->cpu_of_node) {
dev_err(card->dev,
"ASoC: Neither/both cpu ...
link->name);
return -EINVAL;
}
/*
* At least one of CPU DAI name or CPU d...
* specified
*/
if (!link->cpu_dai_name &&
!(link->cpu_name || link->cpu_of_nod...
dev_err(card->dev,
"ASoC: Neither cpu_dai_n...
link->name);
return -EINVAL;
}
}
dev_set_drvdata(card->dev, card);
-
--[[linux-4.4.1/dev_set_drvdata()]]
snd_soc_initialize_card_lists(card);
-
--[[linux-4.4.1/snd_soc_initialize_card_lists()]]
card->rtd = devm_kzalloc(card->dev,
sizeof(struct snd_soc_p...
(card->num_links + card...
GFP_KERNEL);
if (card->rtd == NULL)
return -ENOMEM;
card->num_rtd = 0;
card->rtd_aux = &card->rtd[card->num_links];
-
--[[linux-4.4.1/devm_kzalloc()]]
for (i = 0; i < card->num_links; i++) {
card->rtd[i].card = card;
card->rtd[i].dai_link = &card->dai_link[...
card->rtd[i].codec_dais = devm_kzalloc(c...
sizeof(struct sn...
(card->rtd[i].da...
GFP_KERNEL);
if (card->rtd[i].codec_dais == NULL)
return -ENOMEM;
}
for (i = 0; i < card->num_aux_devs; i++)
card->rtd_aux[i].card = card;
INIT_LIST_HEAD(&card->dapm_dirty);
INIT_LIST_HEAD(&card->dobj_list);
card->instantiated = 0;
mutex_init(&card->mutex);
mutex_init(&card->dapm_mutex);
-
--[[linux-4.4.1/INIT_LIST_HEAD()]]
--[[linux-4.4.1/mutex_init()]]
ret = snd_soc_instantiate_card(card);
if (ret != 0)
return ret;
-
--[[linux-4.4.1/snd_soc_instantiate_card()]]
/* deactivate pins to sleep state */
for (i = 0; i < card->num_rtd; i++) {
struct snd_soc_pcm_runtime *rtd = &card-...
struct snd_soc_dai *cpu_dai = rtd->cpu_d...
int j;
-
--[[linux-4.4.1/snd_soc_pcm_runtime]]
--[[linux-4.4.1/snd_soc_dai]]
for (j = 0; j < rtd->num_codecs; j++) {
struct snd_soc_dai *codec_dai = ...
if (!codec_dai->active)
pinctrl_pm_select_sleep_...
}
-
--[[linux-4.4.1/pinctrl_pm_select_sleep_state()]]
if (!cpu_dai->active)
pinctrl_pm_select_sleep_state(cp...
}
return ret;
}
*コメント [#bdbdd691]
ページ名: