Commit a6093a24 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'topic/asoc' into for-linus

* topic/asoc:
  ASoC: Fix lm4857 control
parents 85e013a1 236e6723
...@@ -345,9 +345,11 @@ static void lm4857_write_regs(void) ...@@ -345,9 +345,11 @@ static void lm4857_write_regs(void)
static int lm4857_get_reg(struct snd_kcontrol *kcontrol, static int lm4857_get_reg(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int reg = kcontrol->private_value & 0xFF; struct soc_mixer_control *mc =
int shift = (kcontrol->private_value >> 8) & 0x0F; (struct soc_mixer_control *)kcontrol->private_value;
int mask = (kcontrol->private_value >> 16) & 0xFF; int reg = mc->reg;
int shift = mc->shift;
int mask = mc->max;
pr_debug("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
...@@ -358,9 +360,11 @@ static int lm4857_get_reg(struct snd_kcontrol *kcontrol, ...@@ -358,9 +360,11 @@ static int lm4857_get_reg(struct snd_kcontrol *kcontrol,
static int lm4857_set_reg(struct snd_kcontrol *kcontrol, static int lm4857_set_reg(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int reg = kcontrol->private_value & 0xFF; struct soc_mixer_control *mc =
int shift = (kcontrol->private_value >> 8) & 0x0F; (struct soc_mixer_control *)kcontrol->private_value;
int mask = (kcontrol->private_value >> 16) & 0xFF; int reg = mc->reg;
int shift = mc->shift;
int mask = mc->max;
if (((lm4857_regs[reg] >> shift) & mask) == if (((lm4857_regs[reg] >> shift) & mask) ==
ucontrol->value.integer.value[0]) ucontrol->value.integer.value[0])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment