commit:     844998387fd9d7d10658d0eaaaaa4fb2d4afb787
Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 29 11:30:41 2024 +0000
Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
CommitDate: Mon Apr 29 11:30:41 2024 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=84499838

Linux patch 6.1.89, this time for real

Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>

 1088_linux-6.1.89.patch | 168 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 168 insertions(+)

diff --git a/1088_linux-6.1.89.patch b/1088_linux-6.1.89.patch
new file mode 100644
index 00000000..4b4067bb
--- /dev/null
+++ b/1088_linux-6.1.89.patch
@@ -0,0 +1,168 @@
+diff --git a/Makefile b/Makefile
+index c73cb678fb9ac..a0472e1cf7156 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ VERSION = 6
+ PATCHLEVEL = 1
+-SUBLEVEL = 88
++SUBLEVEL = 89
+ EXTRAVERSION =
+ NAME = Curry Ramen
+ 
+diff --git a/arch/arm/mach-omap2/pdata-quirks.c 
b/arch/arm/mach-omap2/pdata-quirks.c
+index 44da1e14a3740..9deba798cc919 100644
+--- 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_backlight = {
+       .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 */
+ 
+diff --git a/sound/soc/ti/omap3pandora.c b/sound/soc/ti/omap3pandora.c
+index fa92ed97dfe3b..a287e9747c2a1 100644
+--- 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 snd_soc_dapm_widget 
*w,
+                       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 snd_soc_dapm_widget 
*w,
+       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(void)
+ 
+       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(void)
+               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 @@ static int __init omap3pandora_soc_init(void)
+       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(void)
+ {
+       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);
+ 

Reply via email to