diff mbox

[002/102] ASoC: twl4030: Clean up duplicated code

Message ID 1392722967-12472-3-git-send-email-tiwai@suse.de (mailing list archive)
State Accepted
Commit 6b207c0f166e7f19c9d9dc48feb25e276e36c43f
Delegated to: Mark Brown
Headers show

Commit Message

Takashi Iwai Feb. 18, 2014, 11:29 a.m. UTC
Remove the open code in snd_soc_put_twl4030_opmode_enum_double() but
just call snd_soc_put_enum_double() instead, which does the very same
thing (even correctly with a lock).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/soc/codecs/twl4030.c | 17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

Comments

Mark Brown Feb. 20, 2014, 1:45 a.m. UTC | #1
On Tue, Feb 18, 2014 at 12:29:26PM +0100, Takashi Iwai wrote:
> Remove the open code in snd_soc_put_twl4030_opmode_enum_double() but
> just call snd_soc_put_enum_double() instead, which does the very same
> thing (even correctly with a lock).

Applied, thanks.
diff mbox

Patch

diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index 1eb13d586309..682e4ac88939 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -965,9 +965,6 @@  static int snd_soc_put_twl4030_opmode_enum_double(struct snd_kcontrol *kcontrol,
 {
 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
 	struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec);
-	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
-	unsigned short val;
-	unsigned short mask;
 
 	if (twl4030->configured) {
 		dev_err(codec->dev,
@@ -975,19 +972,7 @@  static int snd_soc_put_twl4030_opmode_enum_double(struct snd_kcontrol *kcontrol,
 		return -EBUSY;
 	}
 
-	if (ucontrol->value.enumerated.item[0] >= e->items)
-		return -EINVAL;
-
-	val = ucontrol->value.enumerated.item[0] << e->shift_l;
-	mask = e->mask << e->shift_l;
-	if (e->shift_l != e->shift_r) {
-		if (ucontrol->value.enumerated.item[1] >= e->items)
-			return -EINVAL;
-		val |= ucontrol->value.enumerated.item[1] << e->shift_r;
-		mask |= e->mask << e->shift_r;
-	}
-
-	return snd_soc_update_bits(codec, e->reg, mask, val);
+	return snd_soc_put_enum_double(kcontrol, ucontrol);
 }
 
 /*