]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
asoc: es755: fix deadlock in audience driver
authorSrinivas Anne <sanne@nvidia.com>
Wed, 24 Feb 2016 04:17:24 +0000 (20:17 -0800)
committermobile promotions <svcmobile_promotions@nvidia.com>
Thu, 3 Mar 2016 07:47:07 +0000 (23:47 -0800)
Change Summary:
removed codec->mutex lock in put_input_route_value() and
put_output_route_value() functions.

Bug 200173798

Change-Id: Id1520cd6b108f1e3126fdc77c475e0709bd300f6
Signed-off-by: Srinivas Anne <sanne@nvidia.com>
Reviewed-on: http://git-master/r/1017904
(cherry picked from commit f9d2223ae0985af127167d707075df5498d80031)
Reviewed-on: http://git-master/r/1022412
GVS: Gerrit_Virtual_Submit
Reviewed-by: Pierre Gervais <pgervais@nvidia.com>
sound/soc/codecs/audience/es-d300.c

index 6e955feb0bf5a49a7d5a1688638c2528490c5245..8a11a2764f3dd7fdac9afdb72172bf1acdac67fe 100644 (file)
@@ -1774,11 +1774,9 @@ static int put_input_route_value(struct snd_kcontrol *kcontrol,
        int rc = 0;
        u8 algo_type;
 
-       mutex_lock(&codec->mutex);
        if (mux >= ARRAY_SIZE(proc_block_input_texts) || mux < 0) {
                pr_err("%s(): Invalid input mux:%d Max valid value:%d\n",
                        __func__, mux, ARRAY_SIZE(proc_block_input_texts));
-               mutex_unlock(&codec->mutex);
                return -EINVAL;
        }
 
@@ -1802,7 +1800,6 @@ static int put_input_route_value(struct snd_kcontrol *kcontrol,
 exit:
        pr_debug("put input control %s (%d) val %s\n", kcontrol->id.name, reg,
                                proc_block_input_texts[mux]);
-       mutex_unlock(&codec->mutex);
 
        return rc;
 }
@@ -1843,11 +1840,9 @@ static int put_output_route_value(struct snd_kcontrol *kcontrol,
        int prev_mux;
        u8 algo_type;
 
-       mutex_lock(&codec->mutex);
        if (mux >= ARRAY_SIZE(proc_block_output_texts) || mux < 0) {
                pr_err("%s(): Invalid output mux:%d Max valid value:%d\n",
                        __func__, mux, ARRAY_SIZE(proc_block_output_texts));
-               mutex_unlock(&codec->mutex);
                return -EINVAL;
        }
        /* VP CSOUT signals Tx init and VP FEOUT signals Rx init */
@@ -1887,7 +1882,6 @@ static int put_output_route_value(struct snd_kcontrol *kcontrol,
 exit:
        pr_debug("put output control %s (%d) val %s\n", kcontrol->id.name, reg,
                                proc_block_output_texts[mux]);
-       mutex_unlock(&codec->mutex);
        return rc;
 }