From: Greg Kroah-Hartman Date: Fri, 3 Apr 2015 18:16:47 +0000 (+0200) Subject: 3.19-stable patches X-Git-Tag: v3.10.74~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0a212480aeb41fef4d43ff62a71926e2368325dd;p=thirdparty%2Fkernel%2Fstable-queue.git 3.19-stable patches added patches: asoc-ak4671-fix-control-less-dapm-routes.patch asoc-cs4271-fix-wrong-value-references-for-boolean-kctl.patch asoc-da732x-fix-control-less-dapm-routes.patch asoc-es8238-fix-wrong-value-references-for-boolean-kctl.patch asoc-pcm1681-fix-wrong-value-references-for-boolean-kctl.patch asoc-sgtl5000-remove-useless-register-write-clearing-chrgpump_powerup.patch asoc-sn95031-fix-control-less-dapm-routes.patch --- diff --git a/queue-3.19/asoc-ak4671-fix-control-less-dapm-routes.patch b/queue-3.19/asoc-ak4671-fix-control-less-dapm-routes.patch new file mode 100644 index 00000000000..095689e95bb --- /dev/null +++ b/queue-3.19/asoc-ak4671-fix-control-less-dapm-routes.patch @@ -0,0 +1,97 @@ +From ce9594c6b332fd6fe464e22a83b0e6e0a287aac6 Mon Sep 17 00:00:00 2001 +From: Lars-Peter Clausen +Date: Fri, 27 Feb 2015 14:13:02 +0100 +Subject: ASoC: ak4671: Fix control-less DAPM routes + +From: Lars-Peter Clausen + +commit ce9594c6b332fd6fe464e22a83b0e6e0a287aac6 upstream. + +Routes without a control must use NULL for the control name. The ak4671 +driver uses "NULL" instead in a few places. Previous to commit 5fe5b767dc6f +("ASoC: dapm: Do not pretend to support controls for non mixer/mux widgets") +the DAPM core silently ignored non-NULL controls on non-mixer and non-mux +routes. But starting with that commit it will complain and not add the +route breaking the ak4671 driver in the process. + +This patch replaces the incorrect "NULL" control name with NULL to fix the +issue. + +Fixes: 5fe5b767dc6f ("ASoC: dapm: Do not pretend to support controls for non mixer/mux widgets") +Signed-off-by: Lars-Peter Clausen +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/ak4671.c | 44 ++++++++++++++++++++++---------------------- + 1 file changed, 22 insertions(+), 22 deletions(-) + +--- a/sound/soc/codecs/ak4671.c ++++ b/sound/soc/codecs/ak4671.c +@@ -343,25 +343,25 @@ static const struct snd_soc_dapm_widget + }; + + static const struct snd_soc_dapm_route ak4671_intercon[] = { +- {"DAC Left", "NULL", "PMPLL"}, +- {"DAC Right", "NULL", "PMPLL"}, +- {"ADC Left", "NULL", "PMPLL"}, +- {"ADC Right", "NULL", "PMPLL"}, ++ {"DAC Left", NULL, "PMPLL"}, ++ {"DAC Right", NULL, "PMPLL"}, ++ {"ADC Left", NULL, "PMPLL"}, ++ {"ADC Right", NULL, "PMPLL"}, + + /* Outputs */ +- {"LOUT1", "NULL", "LOUT1 Mixer"}, +- {"ROUT1", "NULL", "ROUT1 Mixer"}, +- {"LOUT2", "NULL", "LOUT2 Mix Amp"}, +- {"ROUT2", "NULL", "ROUT2 Mix Amp"}, +- {"LOUT3", "NULL", "LOUT3 Mixer"}, +- {"ROUT3", "NULL", "ROUT3 Mixer"}, ++ {"LOUT1", NULL, "LOUT1 Mixer"}, ++ {"ROUT1", NULL, "ROUT1 Mixer"}, ++ {"LOUT2", NULL, "LOUT2 Mix Amp"}, ++ {"ROUT2", NULL, "ROUT2 Mix Amp"}, ++ {"LOUT3", NULL, "LOUT3 Mixer"}, ++ {"ROUT3", NULL, "ROUT3 Mixer"}, + + {"LOUT1 Mixer", "DACL", "DAC Left"}, + {"ROUT1 Mixer", "DACR", "DAC Right"}, + {"LOUT2 Mixer", "DACHL", "DAC Left"}, + {"ROUT2 Mixer", "DACHR", "DAC Right"}, +- {"LOUT2 Mix Amp", "NULL", "LOUT2 Mixer"}, +- {"ROUT2 Mix Amp", "NULL", "ROUT2 Mixer"}, ++ {"LOUT2 Mix Amp", NULL, "LOUT2 Mixer"}, ++ {"ROUT2 Mix Amp", NULL, "ROUT2 Mixer"}, + {"LOUT3 Mixer", "DACSL", "DAC Left"}, + {"ROUT3 Mixer", "DACSR", "DAC Right"}, + +@@ -381,18 +381,18 @@ static const struct snd_soc_dapm_route a + {"LIN2", NULL, "Mic Bias"}, + {"RIN2", NULL, "Mic Bias"}, + +- {"ADC Left", "NULL", "LIN MUX"}, +- {"ADC Right", "NULL", "RIN MUX"}, ++ {"ADC Left", NULL, "LIN MUX"}, ++ {"ADC Right", NULL, "RIN MUX"}, + + /* Analog Loops */ +- {"LIN1 Mixing Circuit", "NULL", "LIN1"}, +- {"RIN1 Mixing Circuit", "NULL", "RIN1"}, +- {"LIN2 Mixing Circuit", "NULL", "LIN2"}, +- {"RIN2 Mixing Circuit", "NULL", "RIN2"}, +- {"LIN3 Mixing Circuit", "NULL", "LIN3"}, +- {"RIN3 Mixing Circuit", "NULL", "RIN3"}, +- {"LIN4 Mixing Circuit", "NULL", "LIN4"}, +- {"RIN4 Mixing Circuit", "NULL", "RIN4"}, ++ {"LIN1 Mixing Circuit", NULL, "LIN1"}, ++ {"RIN1 Mixing Circuit", NULL, "RIN1"}, ++ {"LIN2 Mixing Circuit", NULL, "LIN2"}, ++ {"RIN2 Mixing Circuit", NULL, "RIN2"}, ++ {"LIN3 Mixing Circuit", NULL, "LIN3"}, ++ {"RIN3 Mixing Circuit", NULL, "RIN3"}, ++ {"LIN4 Mixing Circuit", NULL, "LIN4"}, ++ {"RIN4 Mixing Circuit", NULL, "RIN4"}, + + {"LOUT1 Mixer", "LINL1", "LIN1 Mixing Circuit"}, + {"ROUT1 Mixer", "RINR1", "RIN1 Mixing Circuit"}, diff --git a/queue-3.19/asoc-cs4271-fix-wrong-value-references-for-boolean-kctl.patch b/queue-3.19/asoc-cs4271-fix-wrong-value-references-for-boolean-kctl.patch new file mode 100644 index 00000000000..8ea9e9666b6 --- /dev/null +++ b/queue-3.19/asoc-cs4271-fix-wrong-value-references-for-boolean-kctl.patch @@ -0,0 +1,43 @@ +From e8371aa0fecb73fb8a4b2e0296b025b11e7d6229 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 10 Mar 2015 12:39:05 +0100 +Subject: ASoC: cs4271: Fix wrong value references for boolean kctl + +From: Takashi Iwai + +commit e8371aa0fecb73fb8a4b2e0296b025b11e7d6229 upstream. + +The correct values referred by a boolean control are +value.integer.value[], not value.enumerated.item[]. +The former is long while the latter is int, so it's even incompatible +on 64bit architectures. + +Signed-off-by: Takashi Iwai +Acked-by: Paul Handrigan +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/cs4271.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/soc/codecs/cs4271.c ++++ b/sound/soc/codecs/cs4271.c +@@ -286,7 +286,7 @@ static int cs4271_get_deemph(struct snd_ + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); + struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec); + +- ucontrol->value.enumerated.item[0] = cs4271->deemph; ++ ucontrol->value.integer.value[0] = cs4271->deemph; + return 0; + } + +@@ -296,7 +296,7 @@ static int cs4271_put_deemph(struct snd_ + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); + struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec); + +- cs4271->deemph = ucontrol->value.enumerated.item[0]; ++ cs4271->deemph = ucontrol->value.integer.value[0]; + return cs4271_set_deemph(codec); + } + diff --git a/queue-3.19/asoc-da732x-fix-control-less-dapm-routes.patch b/queue-3.19/asoc-da732x-fix-control-less-dapm-routes.patch new file mode 100644 index 00000000000..3a633de43fb --- /dev/null +++ b/queue-3.19/asoc-da732x-fix-control-less-dapm-routes.patch @@ -0,0 +1,47 @@ +From 8e6a75c102f8e232b599a06e06731d8c5d5f2c5d Mon Sep 17 00:00:00 2001 +From: Lars-Peter Clausen +Date: Fri, 27 Feb 2015 14:13:03 +0100 +Subject: ASoC: da732x: Fix control-less DAPM routes + +From: Lars-Peter Clausen + +commit 8e6a75c102f8e232b599a06e06731d8c5d5f2c5d upstream. + +Routes without a control must use NULL for the control name. The da732x +driver uses "NULL" instead in a few places. Previous to commit 5fe5b767dc6f +("ASoC: dapm: Do not pretend to support controls for non mixer/mux widgets") +the DAPM core silently ignored non-NULL controls on non-mixer and non-mux +routes. But starting with that commit it will complain and not add the +route breaking the da732x driver in the process. + +This patch replaces the incorrect "NULL" control name with NULL to fix the +issue. + +Fixes: 5fe5b767dc6f ("ASoC: dapm: Do not pretend to support controls for non mixer/mux widgets") +Signed-off-by: Lars-Peter Clausen +Acked-by: Adam Thomson +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/da732x.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/sound/soc/codecs/da732x.c ++++ b/sound/soc/codecs/da732x.c +@@ -876,11 +876,11 @@ static const struct snd_soc_dapm_widget + + static const struct snd_soc_dapm_route da732x_dapm_routes[] = { + /* Inputs */ +- {"AUX1L PGA", "NULL", "AUX1L"}, +- {"AUX1R PGA", "NULL", "AUX1R"}, ++ {"AUX1L PGA", NULL, "AUX1L"}, ++ {"AUX1R PGA", NULL, "AUX1R"}, + {"MIC1 PGA", NULL, "MIC1"}, +- {"MIC2 PGA", "NULL", "MIC2"}, +- {"MIC3 PGA", "NULL", "MIC3"}, ++ {"MIC2 PGA", NULL, "MIC2"}, ++ {"MIC3 PGA", NULL, "MIC3"}, + + /* Capture Path */ + {"ADC1 Left MUX", "MIC1", "MIC1 PGA"}, diff --git a/queue-3.19/asoc-es8238-fix-wrong-value-references-for-boolean-kctl.patch b/queue-3.19/asoc-es8238-fix-wrong-value-references-for-boolean-kctl.patch new file mode 100644 index 00000000000..78993a3a579 --- /dev/null +++ b/queue-3.19/asoc-es8238-fix-wrong-value-references-for-boolean-kctl.patch @@ -0,0 +1,42 @@ +From d223b0e7fcfecc23380e7de45eb6a0e7b328c17c Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 10 Mar 2015 12:39:06 +0100 +Subject: ASoC: es8238: Fix wrong value references for boolean kctl + +From: Takashi Iwai + +commit d223b0e7fcfecc23380e7de45eb6a0e7b328c17c upstream. + +The correct values referred by a boolean control are +value.integer.value[], not value.enumerated.item[]. +The former is long while the latter is int, so it's even incompatible +on 64bit architectures. + +Signed-off-by: Takashi Iwai +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/es8328.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/soc/codecs/es8328.c ++++ b/sound/soc/codecs/es8328.c +@@ -120,7 +120,7 @@ static int es8328_get_deemph(struct snd_ + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); + struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec); + +- ucontrol->value.enumerated.item[0] = es8328->deemph; ++ ucontrol->value.integer.value[0] = es8328->deemph; + return 0; + } + +@@ -129,7 +129,7 @@ static int es8328_put_deemph(struct snd_ + { + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); + struct es8328_priv *es8328 = snd_soc_codec_get_drvdata(codec); +- int deemph = ucontrol->value.enumerated.item[0]; ++ int deemph = ucontrol->value.integer.value[0]; + int ret; + + if (deemph > 1) diff --git a/queue-3.19/asoc-pcm1681-fix-wrong-value-references-for-boolean-kctl.patch b/queue-3.19/asoc-pcm1681-fix-wrong-value-references-for-boolean-kctl.patch new file mode 100644 index 00000000000..3c5139cc849 --- /dev/null +++ b/queue-3.19/asoc-pcm1681-fix-wrong-value-references-for-boolean-kctl.patch @@ -0,0 +1,42 @@ +From d7f58db49d9ad92bdb12d21fdc2308b76bc2ed38 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 10 Mar 2015 12:39:07 +0100 +Subject: ASoC: pcm1681: Fix wrong value references for boolean kctl + +From: Takashi Iwai + +commit d7f58db49d9ad92bdb12d21fdc2308b76bc2ed38 upstream. + +The correct values referred by a boolean control are +value.integer.value[], not value.enumerated.item[]. +The former is long while the latter is int, so it's even incompatible +on 64bit architectures. + +Signed-off-by: Takashi Iwai +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/pcm1681.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/soc/codecs/pcm1681.c ++++ b/sound/soc/codecs/pcm1681.c +@@ -118,7 +118,7 @@ static int pcm1681_get_deemph(struct snd + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); + struct pcm1681_private *priv = snd_soc_codec_get_drvdata(codec); + +- ucontrol->value.enumerated.item[0] = priv->deemph; ++ ucontrol->value.integer.value[0] = priv->deemph; + + return 0; + } +@@ -129,7 +129,7 @@ static int pcm1681_put_deemph(struct snd + struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); + struct pcm1681_private *priv = snd_soc_codec_get_drvdata(codec); + +- priv->deemph = ucontrol->value.enumerated.item[0]; ++ priv->deemph = ucontrol->value.integer.value[0]; + + return pcm1681_set_deemph(codec); + } diff --git a/queue-3.19/asoc-sgtl5000-remove-useless-register-write-clearing-chrgpump_powerup.patch b/queue-3.19/asoc-sgtl5000-remove-useless-register-write-clearing-chrgpump_powerup.patch new file mode 100644 index 00000000000..46faa5d98c4 --- /dev/null +++ b/queue-3.19/asoc-sgtl5000-remove-useless-register-write-clearing-chrgpump_powerup.patch @@ -0,0 +1,41 @@ +From c7d910b87d3c8e9fcf4077089ca4327c12eee099 Mon Sep 17 00:00:00 2001 +From: Eric Nelson +Date: Fri, 27 Feb 2015 08:06:45 -0700 +Subject: ASoC: sgtl5000: remove useless register write clearing CHRGPUMP_POWERUP + +From: Eric Nelson + +commit c7d910b87d3c8e9fcf4077089ca4327c12eee099 upstream. + +The SGTL5000_CHIP_ANA_POWER register is cached. Update the cached +value instead of writing it directly. + +Patch inspired by Russell King's more colorful remarks in this +patch: + https://github.com/SolidRun/linux-imx6-3.14/commit/dd4bf6a + +Signed-off-by: Eric Nelson +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/sgtl5000.c | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +--- a/sound/soc/codecs/sgtl5000.c ++++ b/sound/soc/codecs/sgtl5000.c +@@ -1149,13 +1149,7 @@ static int sgtl5000_set_power_regs(struc + /* Enable VDDC charge pump */ + ana_pwr |= SGTL5000_VDDC_CHRGPMP_POWERUP; + } else if (vddio >= 3100 && vdda >= 3100) { +- /* +- * if vddio and vddd > 3.1v, +- * charge pump should be clean before set ana_pwr +- */ +- snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, +- SGTL5000_VDDC_CHRGPMP_POWERUP, 0); +- ++ ana_pwr &= ~SGTL5000_VDDC_CHRGPMP_POWERUP; + /* VDDC use VDDIO rail */ + lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD; + lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO << diff --git a/queue-3.19/asoc-sn95031-fix-control-less-dapm-routes.patch b/queue-3.19/asoc-sn95031-fix-control-less-dapm-routes.patch new file mode 100644 index 00000000000..499701c1cfa --- /dev/null +++ b/queue-3.19/asoc-sn95031-fix-control-less-dapm-routes.patch @@ -0,0 +1,42 @@ +From cdd3d2a93f08823a0b9802147dc28c99029dfdfd Mon Sep 17 00:00:00 2001 +From: Lars-Peter Clausen +Date: Fri, 27 Feb 2015 14:13:04 +0100 +Subject: ASoC: sn95031: Fix control-less DAPM routes + +From: Lars-Peter Clausen + +commit cdd3d2a93f08823a0b9802147dc28c99029dfdfd upstream. + +Routes without a control must use NULL for the control name. The sn95031 +driver uses "NULL" instead in a few places. Previous to commit 5fe5b767dc6f +("ASoC: dapm: Do not pretend to support controls for non mixer/mux widgets") +the DAPM core silently ignored non-NULL controls on non-mixer and non-mux +routes. But starting with that commit it will complain and not add the +route breaking the sn95031 driver in the process. + +This patch replaces the incorrect "NULL" control name with NULL to fix the +issue. + +Fixes: 5fe5b767dc6f ("ASoC: dapm: Do not pretend to support controls for non mixer/mux widgets") +Signed-off-by: Lars-Peter Clausen +Acked-by: Vinod Koul +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/sn95031.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/soc/codecs/sn95031.c ++++ b/sound/soc/codecs/sn95031.c +@@ -531,8 +531,8 @@ static const struct snd_soc_dapm_route s + /* speaker map */ + { "IHFOUTL", NULL, "Speaker Rail"}, + { "IHFOUTR", NULL, "Speaker Rail"}, +- { "IHFOUTL", "NULL", "Speaker Left Playback"}, +- { "IHFOUTR", "NULL", "Speaker Right Playback"}, ++ { "IHFOUTL", NULL, "Speaker Left Playback"}, ++ { "IHFOUTR", NULL, "Speaker Right Playback"}, + { "Speaker Left Playback", NULL, "Speaker Left Filter"}, + { "Speaker Right Playback", NULL, "Speaker Right Filter"}, + { "Speaker Left Filter", NULL, "IHFDAC Left"},