All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] GPIO inclusion fixes to misc sound drivers
@ 2023-12-14 13:15 Linus Walleij
  2023-12-14 13:15 ` [PATCH 1/4] ASoC: hisilicon: Drop GPIO include Linus Walleij
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Linus Walleij @ 2023-12-14 13:15 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter
  Cc: linux-sound, alsa-devel, devicetree, linux-tegra, Linus Walleij

Mostly dropping unused headers, and a single driver rewrite.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Linus Walleij (4):
      ASoC: hisilicon: Drop GPIO include
      ASoC: qcom: sc7180: Drop GPIO include
      ASoC: simple-card-utils: Drop GPIO include
      ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors

 arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi |  2 +-
 sound/soc/generic/audio-graph-card.c          |  1 -
 sound/soc/generic/audio-graph-card2.c         |  1 -
 sound/soc/generic/simple-card-utils.c         |  1 -
 sound/soc/hisilicon/hi6210-i2s.c              |  1 -
 sound/soc/qcom/sc7180.c                       |  1 -
 sound/soc/tegra/tegra20_ac97.c                | 55 +++++++++++++--------------
 sound/soc/tegra/tegra20_ac97.h                |  4 +-
 8 files changed, 29 insertions(+), 37 deletions(-)
---
base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86
change-id: 20231212-gpio-descriptors-sound-misc-8bc161358ef1

Best regards,
-- 
Linus Walleij <linus.walleij@linaro.org>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4] ASoC: hisilicon: Drop GPIO include
  2023-12-14 13:15 [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Linus Walleij
@ 2023-12-14 13:15 ` Linus Walleij
  2023-12-14 13:15 ` [PATCH 2/4] ASoC: qcom: sc7180: " Linus Walleij
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2023-12-14 13:15 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter
  Cc: linux-sound, alsa-devel, devicetree, linux-tegra, Linus Walleij

This driver is including the legacy GPIO header <linux/gpio.h>
but not using any symbols from it. Drop the include.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 sound/soc/hisilicon/hi6210-i2s.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/hisilicon/hi6210-i2s.c b/sound/soc/hisilicon/hi6210-i2s.c
index dd7d2a077248..250ae3781d14 100644
--- a/sound/soc/hisilicon/hi6210-i2s.c
+++ b/sound/soc/hisilicon/hi6210-i2s.c
@@ -15,7 +15,6 @@
 #include <linux/clk.h>
 #include <linux/jiffies.h>
 #include <linux/io.h>
-#include <linux/gpio.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4] ASoC: qcom: sc7180: Drop GPIO include
  2023-12-14 13:15 [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Linus Walleij
  2023-12-14 13:15 ` [PATCH 1/4] ASoC: hisilicon: Drop GPIO include Linus Walleij
@ 2023-12-14 13:15 ` Linus Walleij
  2023-12-14 13:15 ` [PATCH 3/4] ASoC: simple-card-utils: " Linus Walleij
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2023-12-14 13:15 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter
  Cc: linux-sound, alsa-devel, devicetree, linux-tegra, Linus Walleij

This driver is including the legacy GPIO header <linux/gpio.h>
but not using any symbols from it. Drop the include.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 sound/soc/qcom/sc7180.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/qcom/sc7180.c b/sound/soc/qcom/sc7180.c
index b0320a74d508..4ab34a8842ce 100644
--- a/sound/soc/qcom/sc7180.c
+++ b/sound/soc/qcom/sc7180.c
@@ -6,7 +6,6 @@
 
 #include <dt-bindings/sound/sc7180-lpass.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
-#include <linux/gpio.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
 #include <linux/of.h>

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] ASoC: simple-card-utils: Drop GPIO include
  2023-12-14 13:15 [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Linus Walleij
  2023-12-14 13:15 ` [PATCH 1/4] ASoC: hisilicon: Drop GPIO include Linus Walleij
  2023-12-14 13:15 ` [PATCH 2/4] ASoC: qcom: sc7180: " Linus Walleij
@ 2023-12-14 13:15 ` Linus Walleij
  2023-12-15  4:59   ` Kuninori Morimoto
  2023-12-14 13:15 ` [PATCH 4/4] ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors Linus Walleij
  2023-12-19 18:06 ` [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Mark Brown
  4 siblings, 1 reply; 7+ messages in thread
From: Linus Walleij @ 2023-12-14 13:15 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter
  Cc: linux-sound, alsa-devel, devicetree, linux-tegra, Linus Walleij

The generic card utilities are including the legacy GPIO header
<linux/gpio.h> but not using any symbols from it. Drop the
include from all files.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 sound/soc/generic/audio-graph-card.c  | 1 -
 sound/soc/generic/audio-graph-card2.c | 1 -
 sound/soc/generic/simple-card-utils.c | 1 -
 3 files changed, 3 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 76a9f1e8cdd5..83e3ba773fbd 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -9,7 +9,6 @@
 
 #include <linux/clk.h>
 #include <linux/device.h>
-#include <linux/gpio.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
 #include <linux/of.h>
diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c
index 7146611df730..b0a5a9357c76 100644
--- a/sound/soc/generic/audio-graph-card2.c
+++ b/sound/soc/generic/audio-graph-card2.c
@@ -8,7 +8,6 @@
 // based on ${LINUX}/sound/soc/generic/audio-graph-card.c
 #include <linux/clk.h>
 #include <linux/device.h>
-#include <linux/gpio.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
 #include <linux/of.h>
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index cfa70a56ff0f..2f2280342e2a 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -5,7 +5,6 @@
 // Copyright (c) 2016 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
 
 #include <linux/clk.h>
-#include <linux/gpio.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
 #include <linux/of.h>

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4] ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors
  2023-12-14 13:15 [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Linus Walleij
                   ` (2 preceding siblings ...)
  2023-12-14 13:15 ` [PATCH 3/4] ASoC: simple-card-utils: " Linus Walleij
@ 2023-12-14 13:15 ` Linus Walleij
  2023-12-19 18:06 ` [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Mark Brown
  4 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2023-12-14 13:15 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter
  Cc: linux-sound, alsa-devel, devicetree, linux-tegra, Linus Walleij

The Tegra20 AC97 driver is using the legacy GPIO APIs in
<linux/of_gpio.h> and <linux/gpio.h> to obtain GPIOs for reset
and sync.

Convert it over and fix the polarity error on the RESET line
in the process: this reset line is clearly active low. Just
fix the one in-tree device tree site using it at the same
time.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
If people demand that the DTS oneliner be submitted and merged
separately then I can do so. (I personally think that is too
much focus on process over content.)
---
 arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi |  2 +-
 sound/soc/tegra/tegra20_ac97.c                | 55 +++++++++++++--------------
 sound/soc/tegra/tegra20_ac97.h                |  4 +-
 3 files changed, 29 insertions(+), 32 deletions(-)

diff --git a/arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi b/arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi
index 16b374e6482f..8c1d5c9fa483 100644
--- a/arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi
+++ b/arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi
@@ -446,7 +446,7 @@ lvp0 {
 	tegra_ac97: ac97@70002000 {
 		status = "okay";
 		nvidia,codec-reset-gpio =
-			<&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
+			<&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
 		nvidia,codec-sync-gpio =
 			<&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
 	};
diff --git a/sound/soc/tegra/tegra20_ac97.c b/sound/soc/tegra/tegra20_ac97.c
index e713feca25fa..8011afe93c96 100644
--- a/sound/soc/tegra/tegra20_ac97.c
+++ b/sound/soc/tegra/tegra20_ac97.c
@@ -12,12 +12,11 @@
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/device.h>
-#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/io.h>
 #include <linux/jiffies.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/of_gpio.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/reset.h>
@@ -39,11 +38,15 @@ static void tegra20_ac97_codec_reset(struct snd_ac97 *ac97)
 	u32 readback;
 	unsigned long timeout;
 
-	/* reset line is not driven by DAC pad group, have to toggle GPIO */
-	gpio_set_value(workdata->reset_gpio, 0);
+	/*
+	 * The reset line is not driven by DAC pad group, have to toggle GPIO.
+	 * The RESET line is active low but this is abstracted by the GPIO
+	 * library.
+	 */
+	gpiod_set_value(workdata->reset_gpio, 1);
 	udelay(2);
 
-	gpio_set_value(workdata->reset_gpio, 1);
+	gpiod_set_value(workdata->reset_gpio, 0);
 	udelay(2);
 
 	timeout = jiffies + msecs_to_jiffies(100);
@@ -66,14 +69,10 @@ static void tegra20_ac97_codec_warm_reset(struct snd_ac97 *ac97)
 	 * the controller cmd is not working, have to toggle sync line
 	 * manually.
 	 */
-	gpio_request(workdata->sync_gpio, "codec-sync");
-
-	gpio_direction_output(workdata->sync_gpio, 1);
-
+	gpiod_direction_output(workdata->sync_gpio, 1);
 	udelay(2);
-	gpio_set_value(workdata->sync_gpio, 0);
+	gpiod_set_value(workdata->sync_gpio, 0);
 	udelay(2);
-	gpio_free(workdata->sync_gpio);
 
 	timeout = jiffies + msecs_to_jiffies(100);
 
@@ -342,28 +341,26 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
 		goto err_clk_put;
 	}
 
-	ac97->reset_gpio = of_get_named_gpio(pdev->dev.of_node,
-					     "nvidia,codec-reset-gpio", 0);
-	if (gpio_is_valid(ac97->reset_gpio)) {
-		ret = devm_gpio_request_one(&pdev->dev, ac97->reset_gpio,
-					    GPIOF_OUT_INIT_HIGH, "codec-reset");
-		if (ret) {
-			dev_err(&pdev->dev, "could not get codec-reset GPIO\n");
-			goto err_clk_put;
-		}
-	} else {
-		dev_err(&pdev->dev, "no codec-reset GPIO supplied\n");
-		ret = -EINVAL;
+	/* Obtain RESET de-asserted */
+	ac97->reset_gpio = devm_gpiod_get(&pdev->dev,
+					  "nvidia,codec-reset",
+					  GPIOD_OUT_LOW);
+	if (IS_ERR(ac97->reset_gpio)) {
+		ret = PTR_ERR(ac97->reset_gpio);
+		dev_err(&pdev->dev, "no RESET GPIO supplied: %d\n", ret);
 		goto err_clk_put;
 	}
-
-	ac97->sync_gpio = of_get_named_gpio(pdev->dev.of_node,
-					    "nvidia,codec-sync-gpio", 0);
-	if (!gpio_is_valid(ac97->sync_gpio)) {
-		dev_err(&pdev->dev, "no codec-sync GPIO supplied\n");
-		ret = -EINVAL;
+	gpiod_set_consumer_name(ac97->reset_gpio, "codec-reset");
+
+	ac97->sync_gpio = devm_gpiod_get(&pdev->dev,
+					 "nvidia,codec-sync",
+					 GPIOD_OUT_LOW);
+	if (IS_ERR(ac97->sync_gpio)) {
+		ret = PTR_ERR(ac97->sync_gpio);
+		dev_err(&pdev->dev, "no codec-sync GPIO supplied: %d\n", ret);
 		goto err_clk_put;
 	}
+	gpiod_set_consumer_name(ac97->sync_gpio, "codec-sync");
 
 	ac97->capture_dma_data.addr = mem->start + TEGRA20_AC97_FIFO_RX1;
 	ac97->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
diff --git a/sound/soc/tegra/tegra20_ac97.h b/sound/soc/tegra/tegra20_ac97.h
index 870ea09ff301..116d7b2db27e 100644
--- a/sound/soc/tegra/tegra20_ac97.h
+++ b/sound/soc/tegra/tegra20_ac97.h
@@ -80,7 +80,7 @@ struct tegra20_ac97 {
 	struct snd_dmaengine_dai_dma_data playback_dma_data;
 	struct reset_control *reset;
 	struct regmap *regmap;
-	int reset_gpio;
-	int sync_gpio;
+	struct gpio_desc *reset_gpio;
+	struct gpio_desc *sync_gpio;
 };
 #endif /* __TEGRA20_AC97_H__ */

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] ASoC: simple-card-utils: Drop GPIO include
  2023-12-14 13:15 ` [PATCH 3/4] ASoC: simple-card-utils: " Linus Walleij
@ 2023-12-15  4:59   ` Kuninori Morimoto
  0 siblings, 0 replies; 7+ messages in thread
From: Kuninori Morimoto @ 2023-12-15  4:59 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter, linux-sound, alsa-devel, devicetree,
	linux-tegra


Hi

> The generic card utilities are including the legacy GPIO header
> <linux/gpio.h> but not using any symbols from it. Drop the
> include from all files.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---

Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

Thank you for your help !!

Best regards
---
Renesas Electronics
Ph.D. Kuninori Morimoto

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/4] GPIO inclusion fixes to misc sound drivers
  2023-12-14 13:15 [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Linus Walleij
                   ` (3 preceding siblings ...)
  2023-12-14 13:15 ` [PATCH 4/4] ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors Linus Walleij
@ 2023-12-19 18:06 ` Mark Brown
  4 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2023-12-19 18:06 UTC (permalink / raw)
  To: Liam Girdwood, Jaroslav Kysela, Takashi Iwai,
	Srinivas Kandagatla, Banajit Goswami, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
	Jonathan Hunter, Linus Walleij
  Cc: linux-sound, alsa-devel, devicetree, linux-tegra

On Thu, 14 Dec 2023 14:15:41 +0100, Linus Walleij wrote:
> Mostly dropping unused headers, and a single driver rewrite.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/4] ASoC: hisilicon: Drop GPIO include
      commit: 487b467206fb2f3a21c93759d3b0ffe7044ed197
[2/4] ASoC: qcom: sc7180: Drop GPIO include
      commit: 809fc84b371a0364160254037d2bc34a8f5ce372
[3/4] ASoC: simple-card-utils: Drop GPIO include
      commit: 4504f63321e1a581a3c0cbc8de91bd0175d94783
[4/4] ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors
      commit: 26e91f61d6b91ccfb0bbb15cbc81845dd1d223af

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-12-19 18:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-14 13:15 [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Linus Walleij
2023-12-14 13:15 ` [PATCH 1/4] ASoC: hisilicon: Drop GPIO include Linus Walleij
2023-12-14 13:15 ` [PATCH 2/4] ASoC: qcom: sc7180: " Linus Walleij
2023-12-14 13:15 ` [PATCH 3/4] ASoC: simple-card-utils: " Linus Walleij
2023-12-15  4:59   ` Kuninori Morimoto
2023-12-14 13:15 ` [PATCH 4/4] ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors Linus Walleij
2023-12-19 18:06 ` [PATCH 0/4] GPIO inclusion fixes to misc sound drivers Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.