linux-4.4.1/snd_soc_dapm_put_enum_double()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#b5083498]
#backlinks
*説明 [#l3b4017c]
-パス: [[linux-4.4.1/sound/soc/soc-dapm.c]]
-FIXME: これは何?
--説明
**引数 [#a07e1d7c]
-struct snd_kcontrol *kcontrol
--
--[[linux-4.4.1/snd_kcontrol]]
-struct snd_ctl_elem_value *ucontrol
--
--[[linux-4.4.1/snd_ctl_elem_value]]
**返り値 [#r8e9aaed]
-int
--
**参考 [#t40d7111]
*実装 [#ve92755d]
/**
* snd_soc_dapm_put_enum_double - dapm enumerated double...
* @kcontrol: mixer control
* @ucontrol: control element information
*
* Callback to set the value of a dapm enumerated double...
*
* Returns 0 for success.
*/
int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kc...
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontr...
struct snd_soc_card *card = dapm->card;
struct soc_enum *e = (struct soc_enum *)kcontrol->priva...
unsigned int *item = ucontrol->value.enumerated.item;
unsigned int val, change, reg_change = 0;
unsigned int mask;
struct snd_soc_dapm_update update;
int ret = 0;
-
--[[linux-4.4.1/snd_soc_dapm_context]]
--[[linux-4.4.1/snd_soc_dapm_kcontrol_dapm()]]
--[[linux-4.4.1/snd_soc_card]]
--[[linux-4.4.1/soc_enum]]
--[[linux-4.4.1/snd_soc_dapm_update]]
if (item[0] >= e->items)
return -EINVAL;
val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l;
mask = e->mask << e->shift_l;
if (e->shift_l != e->shift_r) {
if (item[1] > e->items)
return -EINVAL;
val |= snd_soc_enum_item_to_val(e, item[1]) << e->shif...
mask |= e->mask << e->shift_r;
}
-
--[[linux-4.4.1/snd_soc_enum_item_to_val()]]
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS...
-
--[[linux-4.4.1/mutex_lock_nexted()]]
change = dapm_kcontrol_set_value(kcontrol, val);
-コントローラに値を設定する。以前と違う値が設定されたなら...
--[[linux-4.4.1/dapm_kcontrol_set_value()]]
if (e->reg != SND_SOC_NOPM)
reg_change = soc_dapm_test_bits(dapm, e->reg, mask, va...
-有効なレジスタアドレスが指定されていて、
-レジスタに write アクセスする必要があれば reg_change が ...
--[[linux-4.4.1/soc_dapm_test_bits()]]
if (change || reg_change) {
if (reg_change) {
update.kcontrol = kcontrol;
update.reg = e->reg;
update.mask = mask;
update.val = val;
card->update = &update;
}
change |= reg_change;
ret = soc_dapm_mux_update_power(card, kcontrol, item[0...
-
--[[linux-4.4.1/soc_dapm_mux_update_power()]]
card->update = NULL;
}
mutex_unlock(&card->dapm_mutex);
-
--[[linux-4.4.1/mutex_unlock()]]
if (ret > 0)
soc_dpcm_runtime_update(card);
-
--[[linux-4.4.1/soc_dpcm_runtime_update()]]
return change;
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_put_enum_double);
-GPL ライセンスのモジュールにのみシンボルを公開する。
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#vdd41c63]
終了行:
*参照元 [#b5083498]
#backlinks
*説明 [#l3b4017c]
-パス: [[linux-4.4.1/sound/soc/soc-dapm.c]]
-FIXME: これは何?
--説明
**引数 [#a07e1d7c]
-struct snd_kcontrol *kcontrol
--
--[[linux-4.4.1/snd_kcontrol]]
-struct snd_ctl_elem_value *ucontrol
--
--[[linux-4.4.1/snd_ctl_elem_value]]
**返り値 [#r8e9aaed]
-int
--
**参考 [#t40d7111]
*実装 [#ve92755d]
/**
* snd_soc_dapm_put_enum_double - dapm enumerated double...
* @kcontrol: mixer control
* @ucontrol: control element information
*
* Callback to set the value of a dapm enumerated double...
*
* Returns 0 for success.
*/
int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kc...
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontr...
struct snd_soc_card *card = dapm->card;
struct soc_enum *e = (struct soc_enum *)kcontrol->priva...
unsigned int *item = ucontrol->value.enumerated.item;
unsigned int val, change, reg_change = 0;
unsigned int mask;
struct snd_soc_dapm_update update;
int ret = 0;
-
--[[linux-4.4.1/snd_soc_dapm_context]]
--[[linux-4.4.1/snd_soc_dapm_kcontrol_dapm()]]
--[[linux-4.4.1/snd_soc_card]]
--[[linux-4.4.1/soc_enum]]
--[[linux-4.4.1/snd_soc_dapm_update]]
if (item[0] >= e->items)
return -EINVAL;
val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l;
mask = e->mask << e->shift_l;
if (e->shift_l != e->shift_r) {
if (item[1] > e->items)
return -EINVAL;
val |= snd_soc_enum_item_to_val(e, item[1]) << e->shif...
mask |= e->mask << e->shift_r;
}
-
--[[linux-4.4.1/snd_soc_enum_item_to_val()]]
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS...
-
--[[linux-4.4.1/mutex_lock_nexted()]]
change = dapm_kcontrol_set_value(kcontrol, val);
-コントローラに値を設定する。以前と違う値が設定されたなら...
--[[linux-4.4.1/dapm_kcontrol_set_value()]]
if (e->reg != SND_SOC_NOPM)
reg_change = soc_dapm_test_bits(dapm, e->reg, mask, va...
-有効なレジスタアドレスが指定されていて、
-レジスタに write アクセスする必要があれば reg_change が ...
--[[linux-4.4.1/soc_dapm_test_bits()]]
if (change || reg_change) {
if (reg_change) {
update.kcontrol = kcontrol;
update.reg = e->reg;
update.mask = mask;
update.val = val;
card->update = &update;
}
change |= reg_change;
ret = soc_dapm_mux_update_power(card, kcontrol, item[0...
-
--[[linux-4.4.1/soc_dapm_mux_update_power()]]
card->update = NULL;
}
mutex_unlock(&card->dapm_mutex);
-
--[[linux-4.4.1/mutex_unlock()]]
if (ret > 0)
soc_dpcm_runtime_update(card);
-
--[[linux-4.4.1/soc_dpcm_runtime_update()]]
return change;
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_put_enum_double);
-GPL ライセンスのモジュールにのみシンボルを公開する。
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#vdd41c63]
ページ名: