ASoC: wm8994: Slightly optimize configure_clock
Subsystems (3)
PATCH 1/2 ASoC: wm8994: Slightly optimize configure_clock
snd_soc_update_bits() will only write new register value
if the old value is different from the new value.
In additional, snd_soc_update_bits() returns 0 for no change.
No need to read WM8994_CLOCKING_1 register before calling snd_soc_update_bits().
--- sound/soc/codecs/wm8994.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)
sound/soc/codecs/wm8994.c +4 -7
@@ -208,7 +208,7 @@ static int configure_aif_clock(struct snd_soc_codec *codec, int aif)static int configure_clock (struct snd_soc_codec *codec) {struct wm8994_priv *wm8994 =snd_soc_codec_get_drvdata (codec); -int old, new; +int change, new;/* Bring up the AIF clocks first */ configure_aif_clock (codec,0 );
@@ -229,14 +229,11 @@ static int configure_clock(struct snd_soc_codec *codec)else new =0 ; - old =snd_soc_read (codec,WM8994_CLOCKING_1 ) &WM8994_SYSCLK_SRC ; - -/* If there's no change then we're done. */ -if (old == new) + change =snd_soc_update_bits (codec,WM8994_CLOCKING_1 , +WM8994_SYSCLK_SRC , new); +if (!change)return 0 ; -snd_soc_update_bits (codec,WM8994_CLOCKING_1 ,WM8994_SYSCLK_SRC , new); -snd_soc_dapm_sync (&codec->dapm);return 0 ;
Signature · 1 line
1.7.4.1
PATCH 2/2 ASoC: wm8995: Slightly optimize configure_clock
snd_soc_update_bits() will only write new register value
if the old value is different from the new value.
In additional, snd_soc_update_bits() returns 0 for no change.
No need to read WM8995_CLOCKING_1 register before calling snd_soc_update_bits().
--- sound/soc/codecs/wm8995.c | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-)
sound/soc/codecs/wm8995.c +4 -8
@@ -485,7 +485,7 @@ static int configure_aif_clock(struct snd_soc_codec *codec, int aif)static int configure_clock (struct snd_soc_codec *codec) {struct wm8995_priv *wm8995; -int old, new; +int change, new; wm8995 =snd_soc_codec_get_drvdata (codec);
@@ -509,15 +509,11 @@ static int configure_clock(struct snd_soc_codec *codec)else new =0 ; - old =snd_soc_read (codec,WM8995_CLOCKING_1 ) &WM8995_SYSCLK_SRC ; - -/* If there's no change then we're done. */ -if (old == new) + change =snd_soc_update_bits (codec,WM8995_CLOCKING_1 , +WM8995_SYSCLK_SRC_MASK , new); +if (!change)return 0 ; -snd_soc_update_bits (codec,WM8995_CLOCKING_1 , -WM8995_SYSCLK_SRC_MASK , new); -snd_soc_dapm_sync (&codec->dapm);return 0 ;
Signature · 1 line
1.7.4.1
Mark Brown
AppliedQuoted 4 lines · Axel Lin
snd_soc_update_bits()will only write new register value
if the old value is different from the new value.
In additional,snd_soc_update_bits()returns 0 for no change.
No need to readWM8994_CLOCKING_1register before callingsnd_soc_update_bits().
Applied, thanks.