]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 29 Apr 2024 10:25:15 +0000 (12:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 29 Apr 2024 10:25:34 +0000 (12:25 +0200)
added patches:
revert-asoc-ti-convert-pandora-asoc-to-gpio-descriptors.patch

queue-6.1/revert-asoc-ti-convert-pandora-asoc-to-gpio-descriptors.patch [new file with mode: 0644]
queue-6.1/series [new file with mode: 0644]

diff --git a/queue-6.1/revert-asoc-ti-convert-pandora-asoc-to-gpio-descriptors.patch b/queue-6.1/revert-asoc-ti-convert-pandora-asoc-to-gpio-descriptors.patch
new file mode 100644 (file)
index 0000000..c10599b
--- /dev/null
@@ -0,0 +1,173 @@
+From 8e977ba87ff38f177906272496e6d10dbc9cc0c5 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Mon, 29 Apr 2024 12:21:58 +0200
+Subject: Revert "ASoC: ti: Convert Pandora ASoC to GPIO descriptors"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 0f4048e1a0c6e9d3d31ce5b684600fd137cebfca which is
+commit 319e6ac143b9e9048e527ab9dd2aabb8fdf3d60f upstream.
+
+It breaks the 6.1.y build, so needs to be reverted.
+
+Cc: Linus Walleij <linus.walleij@linaro.org>
+Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
+Cc: Mark Brown <broonie@kernel.org>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/mach-omap2/pdata-quirks.c |   10 -----
+ sound/soc/ti/omap3pandora.c        |   63 +++++++++++++++++++++++--------------
+ 2 files changed, 40 insertions(+), 33 deletions(-)
+
+--- a/arch/arm/mach-omap2/pdata-quirks.c
++++ b/arch/arm/mach-omap2/pdata-quirks.c
+@@ -257,19 +257,9 @@ static struct platform_device pandora_ba
+       .id     = -1,
+ };
+-static struct gpiod_lookup_table pandora_soc_audio_gpios = {
+-      .dev_id = "soc-audio",
+-      .table = {
+-              GPIO_LOOKUP("gpio-112-127", 6, "dac", GPIO_ACTIVE_HIGH),
+-              GPIO_LOOKUP("gpio-0-15", 14, "amp", GPIO_ACTIVE_HIGH),
+-              { }
+-      },
+-};
+-
+ static void __init omap3_pandora_legacy_init(void)
+ {
+       platform_device_register(&pandora_backlight);
+-      gpiod_add_lookup_table(&pandora_soc_audio_gpios);
+ }
+ #endif /* CONFIG_ARCH_OMAP3 */
+--- a/sound/soc/ti/omap3pandora.c
++++ b/sound/soc/ti/omap3pandora.c
+@@ -7,7 +7,7 @@
+ #include <linux/clk.h>
+ #include <linux/platform_device.h>
+-#include <linux/gpio/consumer.h>
++#include <linux/gpio.h>
+ #include <linux/delay.h>
+ #include <linux/regulator/consumer.h>
+ #include <linux/module.h>
+@@ -21,11 +21,12 @@
+ #include "omap-mcbsp.h"
++#define OMAP3_PANDORA_DAC_POWER_GPIO  118
++#define OMAP3_PANDORA_AMP_POWER_GPIO  14
++
+ #define PREFIX "ASoC omap3pandora: "
+ static struct regulator *omap3pandora_dac_reg;
+-static struct gpio_desc *dac_power_gpio;
+-static struct gpio_desc *amp_power_gpio;
+ static int omap3pandora_hw_params(struct snd_pcm_substream *substream,
+       struct snd_pcm_hw_params *params)
+@@ -77,9 +78,9 @@ static int omap3pandora_dac_event(struct
+                       return ret;
+               }
+               mdelay(1);
+-              gpiod_set_value(dac_power_gpio, 1);
++              gpio_set_value(OMAP3_PANDORA_DAC_POWER_GPIO, 1);
+       } else {
+-              gpiod_set_value(dac_power_gpio, 0);
++              gpio_set_value(OMAP3_PANDORA_DAC_POWER_GPIO, 0);
+               mdelay(1);
+               regulator_disable(omap3pandora_dac_reg);
+       }
+@@ -91,9 +92,9 @@ static int omap3pandora_hp_event(struct
+       struct snd_kcontrol *k, int event)
+ {
+       if (SND_SOC_DAPM_EVENT_ON(event))
+-              gpiod_set_value(amp_power_gpio, 1);
++              gpio_set_value(OMAP3_PANDORA_AMP_POWER_GPIO, 1);
+       else
+-              gpiod_set_value(amp_power_gpio, 0);
++              gpio_set_value(OMAP3_PANDORA_AMP_POWER_GPIO, 0);
+       return 0;
+ }
+@@ -228,10 +229,35 @@ static int __init omap3pandora_soc_init(
+       pr_info("OMAP3 Pandora SoC init\n");
++      ret = gpio_request(OMAP3_PANDORA_DAC_POWER_GPIO, "dac_power");
++      if (ret) {
++              pr_err(PREFIX "Failed to get DAC power GPIO\n");
++              return ret;
++      }
++
++      ret = gpio_direction_output(OMAP3_PANDORA_DAC_POWER_GPIO, 0);
++      if (ret) {
++              pr_err(PREFIX "Failed to set DAC power GPIO direction\n");
++              goto fail0;
++      }
++
++      ret = gpio_request(OMAP3_PANDORA_AMP_POWER_GPIO, "amp_power");
++      if (ret) {
++              pr_err(PREFIX "Failed to get amp power GPIO\n");
++              goto fail0;
++      }
++
++      ret = gpio_direction_output(OMAP3_PANDORA_AMP_POWER_GPIO, 0);
++      if (ret) {
++              pr_err(PREFIX "Failed to set amp power GPIO direction\n");
++              goto fail1;
++      }
++
+       omap3pandora_snd_device = platform_device_alloc("soc-audio", -1);
+       if (omap3pandora_snd_device == NULL) {
+               pr_err(PREFIX "Platform device allocation failed\n");
+-              return -ENOMEM;
++              ret = -ENOMEM;
++              goto fail1;
+       }
+       platform_set_drvdata(omap3pandora_snd_device, &snd_soc_card_omap3pandora);
+@@ -242,20 +268,6 @@ static int __init omap3pandora_soc_init(
+               goto fail2;
+       }
+-      dac_power_gpio = devm_gpiod_get(&omap3pandora_snd_device->dev,
+-                                      "dac", GPIOD_OUT_LOW);
+-      if (IS_ERR(dac_power_gpio)) {
+-              ret = PTR_ERR(dac_power_gpio);
+-              goto fail3;
+-      }
+-
+-      amp_power_gpio = devm_gpiod_get(&omap3pandora_snd_device->dev,
+-                                      "amp", GPIOD_OUT_LOW);
+-      if (IS_ERR(amp_power_gpio)) {
+-              ret = PTR_ERR(amp_power_gpio);
+-              goto fail3;
+-      }
+-
+       omap3pandora_dac_reg = regulator_get(&omap3pandora_snd_device->dev, "vcc");
+       if (IS_ERR(omap3pandora_dac_reg)) {
+               pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n",
+@@ -271,7 +283,10 @@ fail3:
+       platform_device_del(omap3pandora_snd_device);
+ fail2:
+       platform_device_put(omap3pandora_snd_device);
+-
++fail1:
++      gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
++fail0:
++      gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
+       return ret;
+ }
+ module_init(omap3pandora_soc_init);
+@@ -280,6 +295,8 @@ static void __exit omap3pandora_soc_exit
+ {
+       regulator_put(omap3pandora_dac_reg);
+       platform_device_unregister(omap3pandora_snd_device);
++      gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
++      gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
+ }
+ module_exit(omap3pandora_soc_exit);
diff --git a/queue-6.1/series b/queue-6.1/series
new file mode 100644 (file)
index 0000000..ecdcbd5
--- /dev/null
@@ -0,0 +1 @@
+revert-asoc-ti-convert-pandora-asoc-to-gpio-descriptors.patch