*参照元 [#w7a4c3cf]
#backlinks

*説明 [#ide6c469]
-パス: [[linux-4.4.1/sound/soc/soc-io.c]]

-FIXME: これは何?
--説明
-レジスタに write アクセスする必要があるかどうか判定する。
--現在のレジスタの値 old と、書き込む値 val で更新した後の値 new が異なっていれば、write アクセスする必要がある。
--old と new が一致していたら、write アクセスする必要はない。


**引数 [#uc3badf2]
-struct snd_soc_component *component
--
--コンポーネント。何らかのレジスタ領域を持っている。
--[[linux-4.4.1/snd_soc_component]]
-unsigned int reg
--
--レジスタアドレス
-unsigned int mask
--
--マスク
-unsigned int value
--
--書き込む値


**返り値 [#nac26bc1]
-int
--
--write する必要があれば 1、必要がなければ 0


**参考 [#w197d5ff]


*実装 [#d3dd8380]
 /**
  * snd_soc_component_test_bits - Test register for change
  * @component: component
  * @reg: Register to test
  * @mask: Mask that specifies which bits to test
  * @value: Value to test against
  *
  * Tests a register with a new value and checks if the new value is
  * different from the old value.
  *
  * Return: 1 for change, otherwise 0.
  */
 int snd_soc_component_test_bits(struct snd_soc_component *component,
 	unsigned int reg, unsigned int mask, unsigned int value)
 {
 	unsigned int old, new;
 	int ret;
 
 	ret = snd_soc_component_read(component, reg, &old);
 	if (ret < 0)
 		return ret;
-
-レジスタの値を読み出す。
--[[linux-4.4.1/snd_soc_component_read()]]

 	new = (old & ~mask) | value;
-value を書き込んだ後の値を求める。

 	return old != new;
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_test_bits);
-GPL ライセンスのモジュールにのみシンボルを公開する。
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]


*コメント [#wa6a948a]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS