All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging
@ 2022-07-11  9:52 ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Richard Fitzgerald, James Schulman, David Rhodes, Takashi Iwai

Drop duplicate print of returned value in the messages and use pattern
return dev_err_probe(...) where it's possible.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/cs35l41_hda.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index cce27a86267f..23a97ada7272 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -460,10 +460,8 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
 	dev_set_drvdata(dev, cs35l41);
 
 	ret = cs35l41_hda_read_acpi(cs35l41, device_name, id);
-	if (ret) {
-		dev_err_probe(cs35l41->dev, ret, "Platform not supported %d\n", ret);
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(cs35l41->dev, ret, "Platform not supported\n");
 
 	if (IS_ERR(cs35l41->reset_gpio)) {
 		ret = PTR_ERR(cs35l41->reset_gpio);
@@ -471,7 +469,7 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
 		if (ret == -EBUSY) {
 			dev_info(cs35l41->dev, "Reset line busy, assuming shared reset\n");
 		} else {
-			dev_err_probe(cs35l41->dev, ret, "Failed to get reset GPIO: %d\n", ret);
+			dev_err_probe(cs35l41->dev, ret, "Failed to get reset GPIO\n");
 			goto err;
 		}
 	}
-- 
2.35.1


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

* [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging
@ 2022-07-11  9:52 ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Jaroslav Kysela, Takashi Iwai, James Schulman, David Rhodes,
	Richard Fitzgerald

Drop duplicate print of returned value in the messages and use pattern
return dev_err_probe(...) where it's possible.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/cs35l41_hda.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index cce27a86267f..23a97ada7272 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -460,10 +460,8 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
 	dev_set_drvdata(dev, cs35l41);
 
 	ret = cs35l41_hda_read_acpi(cs35l41, device_name, id);
-	if (ret) {
-		dev_err_probe(cs35l41->dev, ret, "Platform not supported %d\n", ret);
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(cs35l41->dev, ret, "Platform not supported\n");
 
 	if (IS_ERR(cs35l41->reset_gpio)) {
 		ret = PTR_ERR(cs35l41->reset_gpio);
@@ -471,7 +469,7 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
 		if (ret == -EBUSY) {
 			dev_info(cs35l41->dev, "Reset line busy, assuming shared reset\n");
 		} else {
-			dev_err_probe(cs35l41->dev, ret, "Failed to get reset GPIO: %d\n", ret);
+			dev_err_probe(cs35l41->dev, ret, "Failed to get reset GPIO\n");
 			goto err;
 		}
 	}
-- 
2.35.1


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

* [PATCH v1 2/4] ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations
  2022-07-11  9:52 ` Andy Shevchenko
@ 2022-07-11  9:52   ` Andy Shevchenko
  -1 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Richard Fitzgerald, James Schulman, David Rhodes, Takashi Iwai

ACPI is needed only for functioning of this codec on some platforms,
there is no compilation dependency, so make it optional

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
index 79ade4787d95..e86cf80bdf96 100644
--- a/sound/pci/hda/Kconfig
+++ b/sound/pci/hda/Kconfig
@@ -97,7 +97,7 @@ config SND_HDA_SCODEC_CS35L41
 config SND_HDA_SCODEC_CS35L41_I2C
 	tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
 	depends on I2C
-	depends on ACPI
+	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
 	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
@@ -113,7 +113,7 @@ comment "Set to Y if you want auto-loading the side codec driver"
 config SND_HDA_SCODEC_CS35L41_SPI
 	tristate "Build CS35L41 HD-audio codec support for SPI Bus"
 	depends on SPI_MASTER
-	depends on ACPI
+	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
 	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
-- 
2.35.1


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

* [PATCH v1 2/4] ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations
@ 2022-07-11  9:52   ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Jaroslav Kysela, Takashi Iwai, James Schulman, David Rhodes,
	Richard Fitzgerald

ACPI is needed only for functioning of this codec on some platforms,
there is no compilation dependency, so make it optional

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
index 79ade4787d95..e86cf80bdf96 100644
--- a/sound/pci/hda/Kconfig
+++ b/sound/pci/hda/Kconfig
@@ -97,7 +97,7 @@ config SND_HDA_SCODEC_CS35L41
 config SND_HDA_SCODEC_CS35L41_I2C
 	tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
 	depends on I2C
-	depends on ACPI
+	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
 	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
@@ -113,7 +113,7 @@ comment "Set to Y if you want auto-loading the side codec driver"
 config SND_HDA_SCODEC_CS35L41_SPI
 	tristate "Build CS35L41 HD-audio codec support for SPI Bus"
 	depends on SPI_MASTER
-	depends on ACPI
+	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
 	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
-- 
2.35.1


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

* [PATCH v1 3/4] ALSA: hda: cs35l41: Drop wrong use of ACPI_PTR()
  2022-07-11  9:52 ` Andy Shevchenko
@ 2022-07-11  9:52   ` Andy Shevchenko
  -1 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Richard Fitzgerald, James Schulman, David Rhodes, Takashi Iwai

ACPI_PTR() is more harmful than helpful. For example, in this case
if CONFIG_ACPI=n, the ID table left unused which is not what we want.

Instead of adding ifdeffery or attribute here and there, drop ACPI_PTR().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/cs35l41_hda_i2c.c | 8 +++-----
 sound/pci/hda/cs35l41_hda_spi.c | 8 +++-----
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/sound/pci/hda/cs35l41_hda_i2c.c b/sound/pci/hda/cs35l41_hda_i2c.c
index e810b278fb91..5cfb5aac37ac 100644
--- a/sound/pci/hda/cs35l41_hda_i2c.c
+++ b/sound/pci/hda/cs35l41_hda_i2c.c
@@ -6,9 +6,9 @@
 //
 // Author: Lucas Tanure <tanureal@opensource.cirrus.com>
 
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/i2c.h>
-#include <linux/acpi.h>
 
 #include "cs35l41_hda.h"
 
@@ -42,19 +42,17 @@ static const struct i2c_device_id cs35l41_hda_i2c_id[] = {
 	{}
 };
 
-#ifdef CONFIG_ACPI
 static const struct acpi_device_id cs35l41_acpi_hda_match[] = {
 	{"CLSA0100", 0 },
 	{"CSC3551", 0 },
-	{ },
+	{}
 };
 MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match);
-#endif
 
 static struct i2c_driver cs35l41_i2c_driver = {
 	.driver = {
 		.name		= "cs35l41-hda",
-		.acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match),
+		.acpi_match_table = cs35l41_acpi_hda_match,
 	},
 	.id_table	= cs35l41_hda_i2c_id,
 	.probe		= cs35l41_hda_i2c_probe,
diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
index 22e088f28438..c9a61675c4fd 100644
--- a/sound/pci/hda/cs35l41_hda_spi.c
+++ b/sound/pci/hda/cs35l41_hda_spi.c
@@ -6,7 +6,7 @@
 //
 // Author: Lucas Tanure <tanureal@opensource.cirrus.com>
 
-#include <linux/acpi.h>
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/spi/spi.h>
 
@@ -38,18 +38,16 @@ static const struct spi_device_id cs35l41_hda_spi_id[] = {
 	{}
 };
 
-#ifdef CONFIG_ACPI
 static const struct acpi_device_id cs35l41_acpi_hda_match[] = {
 	{ "CSC3551", 0 },
-	{},
+	{}
 };
 MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match);
-#endif
 
 static struct spi_driver cs35l41_spi_driver = {
 	.driver = {
 		.name		= "cs35l41-hda",
-		.acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match),
+		.acpi_match_table = cs35l41_acpi_hda_match,
 	},
 	.id_table	= cs35l41_hda_spi_id,
 	.probe		= cs35l41_hda_spi_probe,
-- 
2.35.1


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

* [PATCH v1 3/4] ALSA: hda: cs35l41: Drop wrong use of ACPI_PTR()
@ 2022-07-11  9:52   ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Jaroslav Kysela, Takashi Iwai, James Schulman, David Rhodes,
	Richard Fitzgerald

ACPI_PTR() is more harmful than helpful. For example, in this case
if CONFIG_ACPI=n, the ID table left unused which is not what we want.

Instead of adding ifdeffery or attribute here and there, drop ACPI_PTR().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/cs35l41_hda_i2c.c | 8 +++-----
 sound/pci/hda/cs35l41_hda_spi.c | 8 +++-----
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/sound/pci/hda/cs35l41_hda_i2c.c b/sound/pci/hda/cs35l41_hda_i2c.c
index e810b278fb91..5cfb5aac37ac 100644
--- a/sound/pci/hda/cs35l41_hda_i2c.c
+++ b/sound/pci/hda/cs35l41_hda_i2c.c
@@ -6,9 +6,9 @@
 //
 // Author: Lucas Tanure <tanureal@opensource.cirrus.com>
 
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/i2c.h>
-#include <linux/acpi.h>
 
 #include "cs35l41_hda.h"
 
@@ -42,19 +42,17 @@ static const struct i2c_device_id cs35l41_hda_i2c_id[] = {
 	{}
 };
 
-#ifdef CONFIG_ACPI
 static const struct acpi_device_id cs35l41_acpi_hda_match[] = {
 	{"CLSA0100", 0 },
 	{"CSC3551", 0 },
-	{ },
+	{}
 };
 MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match);
-#endif
 
 static struct i2c_driver cs35l41_i2c_driver = {
 	.driver = {
 		.name		= "cs35l41-hda",
-		.acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match),
+		.acpi_match_table = cs35l41_acpi_hda_match,
 	},
 	.id_table	= cs35l41_hda_i2c_id,
 	.probe		= cs35l41_hda_i2c_probe,
diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
index 22e088f28438..c9a61675c4fd 100644
--- a/sound/pci/hda/cs35l41_hda_spi.c
+++ b/sound/pci/hda/cs35l41_hda_spi.c
@@ -6,7 +6,7 @@
 //
 // Author: Lucas Tanure <tanureal@opensource.cirrus.com>
 
-#include <linux/acpi.h>
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/spi/spi.h>
 
@@ -38,18 +38,16 @@ static const struct spi_device_id cs35l41_hda_spi_id[] = {
 	{}
 };
 
-#ifdef CONFIG_ACPI
 static const struct acpi_device_id cs35l41_acpi_hda_match[] = {
 	{ "CSC3551", 0 },
-	{},
+	{}
 };
 MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match);
-#endif
 
 static struct spi_driver cs35l41_spi_driver = {
 	.driver = {
 		.name		= "cs35l41-hda",
-		.acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match),
+		.acpi_match_table = cs35l41_acpi_hda_match,
 	},
 	.id_table	= cs35l41_hda_spi_id,
 	.probe		= cs35l41_hda_spi_probe,
-- 
2.35.1


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

* [PATCH v1 4/4] ALSA: hda: cs35l41: Consolidate selections under SND_HDA_SCODEC_CS35L41
  2022-07-11  9:52 ` Andy Shevchenko
@ 2022-07-11  9:52   ` Andy Shevchenko
  -1 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Richard Fitzgerald, James Schulman, David Rhodes, Takashi Iwai

Selections can be propagated via selections, while dependencies are not.
Hence, consolidate selections under the SND_HDA_SCODEC_CS35L41 option.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/Kconfig | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
index e86cf80bdf96..8b73a12d356f 100644
--- a/sound/pci/hda/Kconfig
+++ b/sound/pci/hda/Kconfig
@@ -93,16 +93,16 @@ config SND_HDA_PATCH_LOADER
 
 config SND_HDA_SCODEC_CS35L41
 	tristate
+	select SND_HDA_GENERIC
+	select REGMAP_IRQ
 
 config SND_HDA_SCODEC_CS35L41_I2C
 	tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
 	depends on I2C
 	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
-	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
 	select SND_HDA_SCODEC_CS35L41
-	select REGMAP_IRQ
 	help
 	  Say Y or M here to include CS35L41 I2C HD-audio side codec support
 	  in snd-hda-intel driver, such as ALC287.
@@ -115,10 +115,8 @@ config SND_HDA_SCODEC_CS35L41_SPI
 	depends on SPI_MASTER
 	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
-	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
 	select SND_HDA_SCODEC_CS35L41
-	select REGMAP_IRQ
 	help
 	  Say Y or M here to include CS35L41 SPI HD-audio side codec support
 	  in snd-hda-intel driver, such as ALC287.
-- 
2.35.1


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

* [PATCH v1 4/4] ALSA: hda: cs35l41: Consolidate selections under SND_HDA_SCODEC_CS35L41
@ 2022-07-11  9:52   ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-11  9:52 UTC (permalink / raw)
  To: Takashi Iwai, Lucas Tanure, Andy Shevchenko, alsa-devel,
	linux-kernel, patches
  Cc: Jaroslav Kysela, Takashi Iwai, James Schulman, David Rhodes,
	Richard Fitzgerald

Selections can be propagated via selections, while dependencies are not.
Hence, consolidate selections under the SND_HDA_SCODEC_CS35L41 option.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 sound/pci/hda/Kconfig | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
index e86cf80bdf96..8b73a12d356f 100644
--- a/sound/pci/hda/Kconfig
+++ b/sound/pci/hda/Kconfig
@@ -93,16 +93,16 @@ config SND_HDA_PATCH_LOADER
 
 config SND_HDA_SCODEC_CS35L41
 	tristate
+	select SND_HDA_GENERIC
+	select REGMAP_IRQ
 
 config SND_HDA_SCODEC_CS35L41_I2C
 	tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
 	depends on I2C
 	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
-	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
 	select SND_HDA_SCODEC_CS35L41
-	select REGMAP_IRQ
 	help
 	  Say Y or M here to include CS35L41 I2C HD-audio side codec support
 	  in snd-hda-intel driver, such as ALC287.
@@ -115,10 +115,8 @@ config SND_HDA_SCODEC_CS35L41_SPI
 	depends on SPI_MASTER
 	depends on ACPI || COMPILE_TEST
 	depends on SND_SOC
-	select SND_HDA_GENERIC
 	select SND_SOC_CS35L41_LIB
 	select SND_HDA_SCODEC_CS35L41
-	select REGMAP_IRQ
 	help
 	  Say Y or M here to include CS35L41 SPI HD-audio side codec support
 	  in snd-hda-intel driver, such as ALC287.
-- 
2.35.1


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

* Re: [PATCH v1 2/4] ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations
  2022-07-11  9:52   ` Andy Shevchenko
@ 2022-07-12  4:38     ` kernel test robot
  -1 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2022-07-12  4:38 UTC (permalink / raw)
  To: Andy Shevchenko, Takashi Iwai, Lucas Tanure, alsa-devel,
	linux-kernel, patches
  Cc: kbuild-all, Richard Fitzgerald, James Schulman, David Rhodes

Hi Andy,

I love your patch! Yet something to improve:

[auto build test ERROR on tiwai-sound/for-next]
[also build test ERROR on linus/master v5.19-rc6 next-20220711]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/ALSA-hda-cs35l41-Improve-dev_err_probe-messaging/20220711-175606
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220712/202207121250.pG2NiH2y-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/1822f133c760384365a12621de82e3a96e061ecf
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/ALSA-hda-cs35l41-Improve-dev_err_probe-messaging/20220711-175606
        git checkout 1822f133c760384365a12621de82e3a96e061ecf
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   sound/pci/hda/cs35l41_hda.c: In function 'cs35l41_hda_read_acpi':
>> sound/pci/hda/cs35l41_hda.c:350:59: error: invalid use of undefined type 'struct acpi_device'
     350 |         cs35l41->reset_gpio = fwnode_gpiod_get_index(&adev->fwnode, "reset", cs35l41->index,
         |                                                           ^~


vim +350 sound/pci/hda/cs35l41_hda.c

7b2f3eb492dac76 Lucas Tanure   2021-12-17  299  
f7f207375d4e6eb Lucas Tanure   2022-04-13  300  static int cs35l41_hda_read_acpi(struct cs35l41_hda *cs35l41, const char *hid, int id)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  301  {
f7f207375d4e6eb Lucas Tanure   2022-04-13  302  	struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  303  	u32 values[HDA_MAX_COMPONENTS];
7b2f3eb492dac76 Lucas Tanure   2021-12-17  304  	struct acpi_device *adev;
8c286a0f973a812 Lucas Tanure   2022-01-17  305  	struct device *physdev;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  306  	char *property;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  307  	size_t nval;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  308  	int i, ret;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  309  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  310  	adev = acpi_dev_get_first_match_dev(hid, NULL, -1);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  311  	if (!adev) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  312  		dev_err(cs35l41->dev, "Failed to find an ACPI device for %s\n", hid);
f7f207375d4e6eb Lucas Tanure   2022-04-13  313  		return -ENODEV;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  314  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  315  
8c286a0f973a812 Lucas Tanure   2022-01-17  316  	physdev = get_device(acpi_get_first_physical_node(adev));
7b2f3eb492dac76 Lucas Tanure   2021-12-17  317  	acpi_dev_put(adev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  318  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  319  	property = "cirrus,dev-index";
8c286a0f973a812 Lucas Tanure   2022-01-17  320  	ret = device_property_count_u32(physdev, property);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  321  	if (ret <= 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  322  		goto no_acpi_dsd;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  323  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  324  	if (ret > ARRAY_SIZE(values)) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  325  		ret = -EINVAL;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  326  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  327  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  328  	nval = ret;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  329  
8c286a0f973a812 Lucas Tanure   2022-01-17  330  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  331  	if (ret)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  332  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  333  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  334  	cs35l41->index = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  335  	for (i = 0; i < nval; i++) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  336  		if (values[i] == id) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  337  			cs35l41->index = i;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  338  			break;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  339  		}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  340  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  341  	if (cs35l41->index == -1) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  342  		dev_err(cs35l41->dev, "No index found in %s\n", property);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  343  		ret = -ENODEV;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  344  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  345  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  346  
8c286a0f973a812 Lucas Tanure   2022-01-17  347  	/* To use the same release code for all laptop variants we can't use devm_ version of
8c286a0f973a812 Lucas Tanure   2022-01-17  348  	 * gpiod_get here, as CLSA010* don't have a fully functional bios with an _DSD node
8c286a0f973a812 Lucas Tanure   2022-01-17  349  	 */
7b2f3eb492dac76 Lucas Tanure   2021-12-17 @350  	cs35l41->reset_gpio = fwnode_gpiod_get_index(&adev->fwnode, "reset", cs35l41->index,
7b2f3eb492dac76 Lucas Tanure   2021-12-17  351  						     GPIOD_OUT_LOW, "cs35l41-reset");
7b2f3eb492dac76 Lucas Tanure   2021-12-17  352  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  353  	property = "cirrus,speaker-position";
8c286a0f973a812 Lucas Tanure   2022-01-17  354  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  355  	if (ret)
f7f207375d4e6eb Lucas Tanure   2022-04-13  356  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  357  	hw_cfg->spk_pos = values[cs35l41->index];
7b2f3eb492dac76 Lucas Tanure   2021-12-17  358  
00f87ec74c3c096 Stefan Binding 2022-05-09  359  	cs35l41->channel_index = 0;
00f87ec74c3c096 Stefan Binding 2022-05-09  360  	for (i = 0; i < cs35l41->index; i++)
00f87ec74c3c096 Stefan Binding 2022-05-09  361  		if (values[i] == hw_cfg->spk_pos)
00f87ec74c3c096 Stefan Binding 2022-05-09  362  			cs35l41->channel_index++;
00f87ec74c3c096 Stefan Binding 2022-05-09  363  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  364  	property = "cirrus,gpio1-func";
8c286a0f973a812 Lucas Tanure   2022-01-17  365  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  366  	if (ret)
f7f207375d4e6eb Lucas Tanure   2022-04-13  367  		goto err;
f7f207375d4e6eb Lucas Tanure   2022-04-13  368  	hw_cfg->gpio1.func = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  369  	hw_cfg->gpio1.valid = true;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  370  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  371  	property = "cirrus,gpio2-func";
8c286a0f973a812 Lucas Tanure   2022-01-17  372  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  373  	if (ret)
f7f207375d4e6eb Lucas Tanure   2022-04-13  374  		goto err;
f7f207375d4e6eb Lucas Tanure   2022-04-13  375  	hw_cfg->gpio2.func = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  376  	hw_cfg->gpio2.valid = true;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  377  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  378  	property = "cirrus,boost-peak-milliamp";
8c286a0f973a812 Lucas Tanure   2022-01-17  379  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  380  	if (ret == 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  381  		hw_cfg->bst_ipk = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  382  	else
2603c974b45dbfe Lucas Tanure   2022-04-13  383  		hw_cfg->bst_ipk = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  384  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  385  	property = "cirrus,boost-ind-nanohenry";
8c286a0f973a812 Lucas Tanure   2022-01-17  386  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  387  	if (ret == 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  388  		hw_cfg->bst_ind = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  389  	else
2603c974b45dbfe Lucas Tanure   2022-04-13  390  		hw_cfg->bst_ind = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  391  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  392  	property = "cirrus,boost-cap-microfarad";
8c286a0f973a812 Lucas Tanure   2022-01-17  393  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  394  	if (ret == 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  395  		hw_cfg->bst_cap = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  396  	else
2603c974b45dbfe Lucas Tanure   2022-04-13  397  		hw_cfg->bst_cap = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  398  
b8388a1aba32bef Lucas Tanure   2022-04-13  399  	if (hw_cfg->bst_ind > 0 || hw_cfg->bst_cap > 0 || hw_cfg->bst_ipk > 0)
b8388a1aba32bef Lucas Tanure   2022-04-13  400  		hw_cfg->bst_type = CS35L41_INT_BOOST;
b8388a1aba32bef Lucas Tanure   2022-04-13  401  	else
b8388a1aba32bef Lucas Tanure   2022-04-13  402  		hw_cfg->bst_type = CS35L41_EXT_BOOST;
b8388a1aba32bef Lucas Tanure   2022-04-13  403  
2603c974b45dbfe Lucas Tanure   2022-04-13  404  	hw_cfg->valid = true;
8c286a0f973a812 Lucas Tanure   2022-01-17  405  	put_device(physdev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  406  
f7f207375d4e6eb Lucas Tanure   2022-04-13  407  	return 0;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  408  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  409  err:
8c286a0f973a812 Lucas Tanure   2022-01-17  410  	put_device(physdev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  411  	dev_err(cs35l41->dev, "Failed property %s: %d\n", property, ret);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  412  
f7f207375d4e6eb Lucas Tanure   2022-04-13  413  	return ret;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  414  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  415  no_acpi_dsd:
7b2f3eb492dac76 Lucas Tanure   2021-12-17  416  	/*
7b2f3eb492dac76 Lucas Tanure   2021-12-17  417  	 * Device CLSA0100 doesn't have _DSD so a gpiod_get by the label reset won't work.
7b2f3eb492dac76 Lucas Tanure   2021-12-17  418  	 * And devices created by i2c-multi-instantiate don't have their device struct pointing to
8c286a0f973a812 Lucas Tanure   2022-01-17  419  	 * the correct fwnode, so acpi_dev must be used here.
7b2f3eb492dac76 Lucas Tanure   2021-12-17  420  	 * And devm functions expect that the device requesting the resource has the correct
8c286a0f973a812 Lucas Tanure   2022-01-17  421  	 * fwnode.
7b2f3eb492dac76 Lucas Tanure   2021-12-17  422  	 */
7b2f3eb492dac76 Lucas Tanure   2021-12-17  423  	if (strncmp(hid, "CLSA0100", 8) != 0)
f7f207375d4e6eb Lucas Tanure   2022-04-13  424  		return -EINVAL;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  425  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  426  	/* check I2C address to assign the index */
7b2f3eb492dac76 Lucas Tanure   2021-12-17  427  	cs35l41->index = id == 0x40 ? 0 : 1;
775d667539a4dd8 Stefan Binding 2022-05-09  428  	cs35l41->hw_cfg.spk_pos = cs35l41->index;
00f87ec74c3c096 Stefan Binding 2022-05-09  429  	cs35l41->channel_index = 0;
8c286a0f973a812 Lucas Tanure   2022-01-17  430  	cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 0, GPIOD_OUT_HIGH);
b8388a1aba32bef Lucas Tanure   2022-04-13  431  	cs35l41->hw_cfg.bst_type = CS35L41_EXT_BOOST_NO_VSPK_SWITCH;
de8cab7b38d74e7 Stefan Binding 2022-05-09  432  	hw_cfg->gpio2.func = CS35L41_GPIO2_INT_OPEN_DRAIN;
de8cab7b38d74e7 Stefan Binding 2022-05-09  433  	hw_cfg->gpio2.valid = true;
2603c974b45dbfe Lucas Tanure   2022-04-13  434  	cs35l41->hw_cfg.valid = true;
8c286a0f973a812 Lucas Tanure   2022-01-17  435  	put_device(physdev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  436  
f7f207375d4e6eb Lucas Tanure   2022-04-13  437  	return 0;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  438  }
7b2f3eb492dac76 Lucas Tanure   2021-12-17  439  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

* Re: [PATCH v1 2/4] ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations
@ 2022-07-12  4:38     ` kernel test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2022-07-12  4:38 UTC (permalink / raw)
  To: Andy Shevchenko, Takashi Iwai, Lucas Tanure, alsa-devel,
	linux-kernel, patches
  Cc: Richard Fitzgerald, David Rhodes, kbuild-all, James Schulman

Hi Andy,

I love your patch! Yet something to improve:

[auto build test ERROR on tiwai-sound/for-next]
[also build test ERROR on linus/master v5.19-rc6 next-20220711]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/ALSA-hda-cs35l41-Improve-dev_err_probe-messaging/20220711-175606
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220712/202207121250.pG2NiH2y-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/1822f133c760384365a12621de82e3a96e061ecf
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/ALSA-hda-cs35l41-Improve-dev_err_probe-messaging/20220711-175606
        git checkout 1822f133c760384365a12621de82e3a96e061ecf
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   sound/pci/hda/cs35l41_hda.c: In function 'cs35l41_hda_read_acpi':
>> sound/pci/hda/cs35l41_hda.c:350:59: error: invalid use of undefined type 'struct acpi_device'
     350 |         cs35l41->reset_gpio = fwnode_gpiod_get_index(&adev->fwnode, "reset", cs35l41->index,
         |                                                           ^~


vim +350 sound/pci/hda/cs35l41_hda.c

7b2f3eb492dac76 Lucas Tanure   2021-12-17  299  
f7f207375d4e6eb Lucas Tanure   2022-04-13  300  static int cs35l41_hda_read_acpi(struct cs35l41_hda *cs35l41, const char *hid, int id)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  301  {
f7f207375d4e6eb Lucas Tanure   2022-04-13  302  	struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  303  	u32 values[HDA_MAX_COMPONENTS];
7b2f3eb492dac76 Lucas Tanure   2021-12-17  304  	struct acpi_device *adev;
8c286a0f973a812 Lucas Tanure   2022-01-17  305  	struct device *physdev;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  306  	char *property;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  307  	size_t nval;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  308  	int i, ret;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  309  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  310  	adev = acpi_dev_get_first_match_dev(hid, NULL, -1);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  311  	if (!adev) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  312  		dev_err(cs35l41->dev, "Failed to find an ACPI device for %s\n", hid);
f7f207375d4e6eb Lucas Tanure   2022-04-13  313  		return -ENODEV;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  314  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  315  
8c286a0f973a812 Lucas Tanure   2022-01-17  316  	physdev = get_device(acpi_get_first_physical_node(adev));
7b2f3eb492dac76 Lucas Tanure   2021-12-17  317  	acpi_dev_put(adev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  318  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  319  	property = "cirrus,dev-index";
8c286a0f973a812 Lucas Tanure   2022-01-17  320  	ret = device_property_count_u32(physdev, property);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  321  	if (ret <= 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  322  		goto no_acpi_dsd;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  323  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  324  	if (ret > ARRAY_SIZE(values)) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  325  		ret = -EINVAL;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  326  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  327  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  328  	nval = ret;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  329  
8c286a0f973a812 Lucas Tanure   2022-01-17  330  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  331  	if (ret)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  332  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  333  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  334  	cs35l41->index = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  335  	for (i = 0; i < nval; i++) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  336  		if (values[i] == id) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  337  			cs35l41->index = i;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  338  			break;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  339  		}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  340  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  341  	if (cs35l41->index == -1) {
7b2f3eb492dac76 Lucas Tanure   2021-12-17  342  		dev_err(cs35l41->dev, "No index found in %s\n", property);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  343  		ret = -ENODEV;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  344  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  345  	}
7b2f3eb492dac76 Lucas Tanure   2021-12-17  346  
8c286a0f973a812 Lucas Tanure   2022-01-17  347  	/* To use the same release code for all laptop variants we can't use devm_ version of
8c286a0f973a812 Lucas Tanure   2022-01-17  348  	 * gpiod_get here, as CLSA010* don't have a fully functional bios with an _DSD node
8c286a0f973a812 Lucas Tanure   2022-01-17  349  	 */
7b2f3eb492dac76 Lucas Tanure   2021-12-17 @350  	cs35l41->reset_gpio = fwnode_gpiod_get_index(&adev->fwnode, "reset", cs35l41->index,
7b2f3eb492dac76 Lucas Tanure   2021-12-17  351  						     GPIOD_OUT_LOW, "cs35l41-reset");
7b2f3eb492dac76 Lucas Tanure   2021-12-17  352  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  353  	property = "cirrus,speaker-position";
8c286a0f973a812 Lucas Tanure   2022-01-17  354  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  355  	if (ret)
f7f207375d4e6eb Lucas Tanure   2022-04-13  356  		goto err;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  357  	hw_cfg->spk_pos = values[cs35l41->index];
7b2f3eb492dac76 Lucas Tanure   2021-12-17  358  
00f87ec74c3c096 Stefan Binding 2022-05-09  359  	cs35l41->channel_index = 0;
00f87ec74c3c096 Stefan Binding 2022-05-09  360  	for (i = 0; i < cs35l41->index; i++)
00f87ec74c3c096 Stefan Binding 2022-05-09  361  		if (values[i] == hw_cfg->spk_pos)
00f87ec74c3c096 Stefan Binding 2022-05-09  362  			cs35l41->channel_index++;
00f87ec74c3c096 Stefan Binding 2022-05-09  363  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  364  	property = "cirrus,gpio1-func";
8c286a0f973a812 Lucas Tanure   2022-01-17  365  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  366  	if (ret)
f7f207375d4e6eb Lucas Tanure   2022-04-13  367  		goto err;
f7f207375d4e6eb Lucas Tanure   2022-04-13  368  	hw_cfg->gpio1.func = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  369  	hw_cfg->gpio1.valid = true;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  370  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  371  	property = "cirrus,gpio2-func";
8c286a0f973a812 Lucas Tanure   2022-01-17  372  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  373  	if (ret)
f7f207375d4e6eb Lucas Tanure   2022-04-13  374  		goto err;
f7f207375d4e6eb Lucas Tanure   2022-04-13  375  	hw_cfg->gpio2.func = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  376  	hw_cfg->gpio2.valid = true;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  377  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  378  	property = "cirrus,boost-peak-milliamp";
8c286a0f973a812 Lucas Tanure   2022-01-17  379  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  380  	if (ret == 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  381  		hw_cfg->bst_ipk = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  382  	else
2603c974b45dbfe Lucas Tanure   2022-04-13  383  		hw_cfg->bst_ipk = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  384  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  385  	property = "cirrus,boost-ind-nanohenry";
8c286a0f973a812 Lucas Tanure   2022-01-17  386  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  387  	if (ret == 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  388  		hw_cfg->bst_ind = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  389  	else
2603c974b45dbfe Lucas Tanure   2022-04-13  390  		hw_cfg->bst_ind = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  391  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  392  	property = "cirrus,boost-cap-microfarad";
8c286a0f973a812 Lucas Tanure   2022-01-17  393  	ret = device_property_read_u32_array(physdev, property, values, nval);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  394  	if (ret == 0)
7b2f3eb492dac76 Lucas Tanure   2021-12-17  395  		hw_cfg->bst_cap = values[cs35l41->index];
2603c974b45dbfe Lucas Tanure   2022-04-13  396  	else
2603c974b45dbfe Lucas Tanure   2022-04-13  397  		hw_cfg->bst_cap = -1;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  398  
b8388a1aba32bef Lucas Tanure   2022-04-13  399  	if (hw_cfg->bst_ind > 0 || hw_cfg->bst_cap > 0 || hw_cfg->bst_ipk > 0)
b8388a1aba32bef Lucas Tanure   2022-04-13  400  		hw_cfg->bst_type = CS35L41_INT_BOOST;
b8388a1aba32bef Lucas Tanure   2022-04-13  401  	else
b8388a1aba32bef Lucas Tanure   2022-04-13  402  		hw_cfg->bst_type = CS35L41_EXT_BOOST;
b8388a1aba32bef Lucas Tanure   2022-04-13  403  
2603c974b45dbfe Lucas Tanure   2022-04-13  404  	hw_cfg->valid = true;
8c286a0f973a812 Lucas Tanure   2022-01-17  405  	put_device(physdev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  406  
f7f207375d4e6eb Lucas Tanure   2022-04-13  407  	return 0;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  408  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  409  err:
8c286a0f973a812 Lucas Tanure   2022-01-17  410  	put_device(physdev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  411  	dev_err(cs35l41->dev, "Failed property %s: %d\n", property, ret);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  412  
f7f207375d4e6eb Lucas Tanure   2022-04-13  413  	return ret;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  414  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  415  no_acpi_dsd:
7b2f3eb492dac76 Lucas Tanure   2021-12-17  416  	/*
7b2f3eb492dac76 Lucas Tanure   2021-12-17  417  	 * Device CLSA0100 doesn't have _DSD so a gpiod_get by the label reset won't work.
7b2f3eb492dac76 Lucas Tanure   2021-12-17  418  	 * And devices created by i2c-multi-instantiate don't have their device struct pointing to
8c286a0f973a812 Lucas Tanure   2022-01-17  419  	 * the correct fwnode, so acpi_dev must be used here.
7b2f3eb492dac76 Lucas Tanure   2021-12-17  420  	 * And devm functions expect that the device requesting the resource has the correct
8c286a0f973a812 Lucas Tanure   2022-01-17  421  	 * fwnode.
7b2f3eb492dac76 Lucas Tanure   2021-12-17  422  	 */
7b2f3eb492dac76 Lucas Tanure   2021-12-17  423  	if (strncmp(hid, "CLSA0100", 8) != 0)
f7f207375d4e6eb Lucas Tanure   2022-04-13  424  		return -EINVAL;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  425  
7b2f3eb492dac76 Lucas Tanure   2021-12-17  426  	/* check I2C address to assign the index */
7b2f3eb492dac76 Lucas Tanure   2021-12-17  427  	cs35l41->index = id == 0x40 ? 0 : 1;
775d667539a4dd8 Stefan Binding 2022-05-09  428  	cs35l41->hw_cfg.spk_pos = cs35l41->index;
00f87ec74c3c096 Stefan Binding 2022-05-09  429  	cs35l41->channel_index = 0;
8c286a0f973a812 Lucas Tanure   2022-01-17  430  	cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 0, GPIOD_OUT_HIGH);
b8388a1aba32bef Lucas Tanure   2022-04-13  431  	cs35l41->hw_cfg.bst_type = CS35L41_EXT_BOOST_NO_VSPK_SWITCH;
de8cab7b38d74e7 Stefan Binding 2022-05-09  432  	hw_cfg->gpio2.func = CS35L41_GPIO2_INT_OPEN_DRAIN;
de8cab7b38d74e7 Stefan Binding 2022-05-09  433  	hw_cfg->gpio2.valid = true;
2603c974b45dbfe Lucas Tanure   2022-04-13  434  	cs35l41->hw_cfg.valid = true;
8c286a0f973a812 Lucas Tanure   2022-01-17  435  	put_device(physdev);
7b2f3eb492dac76 Lucas Tanure   2021-12-17  436  
f7f207375d4e6eb Lucas Tanure   2022-04-13  437  	return 0;
7b2f3eb492dac76 Lucas Tanure   2021-12-17  438  }
7b2f3eb492dac76 Lucas Tanure   2021-12-17  439  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

* Re: [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging
  2022-07-11  9:52 ` Andy Shevchenko
@ 2022-07-12  9:18   ` Takashi Iwai
  -1 siblings, 0 replies; 14+ messages in thread
From: Takashi Iwai @ 2022-07-12  9:18 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Lucas Tanure, alsa-devel, linux-kernel, patches, Jaroslav Kysela,
	Takashi Iwai, James Schulman, David Rhodes, Richard Fitzgerald

On Mon, 11 Jul 2022 11:52:16 +0200,
Andy Shevchenko wrote:
> 
> Drop duplicate print of returned value in the messages and use pattern
> return dev_err_probe(...) where it's possible.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Applied this one, but postpone the rest three patches, as there seems
a build regression according 0day bot.


thanks,

Takashi

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

* Re: [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging
@ 2022-07-12  9:18   ` Takashi Iwai
  0 siblings, 0 replies; 14+ messages in thread
From: Takashi Iwai @ 2022-07-12  9:18 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: alsa-devel, Lucas Tanure, patches, Takashi Iwai, linux-kernel,
	Richard Fitzgerald, James Schulman, David Rhodes

On Mon, 11 Jul 2022 11:52:16 +0200,
Andy Shevchenko wrote:
> 
> Drop duplicate print of returned value in the messages and use pattern
> return dev_err_probe(...) where it's possible.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Applied this one, but postpone the rest three patches, as there seems
a build regression according 0day bot.


thanks,

Takashi

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

* Re: [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging
  2022-07-12  9:18   ` Takashi Iwai
@ 2022-07-12 10:01     ` Andy Shevchenko
  -1 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-12 10:01 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Andy Shevchenko, Lucas Tanure, ALSA Development Mailing List,
	Linux Kernel Mailing List, patches, Jaroslav Kysela,
	Takashi Iwai, James Schulman, David Rhodes, Richard Fitzgerald

On Tue, Jul 12, 2022 at 11:35 AM Takashi Iwai <tiwai@suse.de> wrote:
>
> On Mon, 11 Jul 2022 11:52:16 +0200,
> Andy Shevchenko wrote:
> >
> > Drop duplicate print of returned value in the messages and use pattern
> > return dev_err_probe(...) where it's possible.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> Applied this one, but postpone the rest three patches, as there seems
> a build regression according 0day bot.

Thanks and sorry for that, something (mis)happens, I'll test it
carefully for v2.

-- 
With Best Regards,
Andy Shevchenko

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

* Re: [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging
@ 2022-07-12 10:01     ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2022-07-12 10:01 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: ALSA Development Mailing List, Lucas Tanure, patches,
	Takashi Iwai, Linux Kernel Mailing List, Richard Fitzgerald,
	James Schulman, Andy Shevchenko, David Rhodes

On Tue, Jul 12, 2022 at 11:35 AM Takashi Iwai <tiwai@suse.de> wrote:
>
> On Mon, 11 Jul 2022 11:52:16 +0200,
> Andy Shevchenko wrote:
> >
> > Drop duplicate print of returned value in the messages and use pattern
> > return dev_err_probe(...) where it's possible.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> Applied this one, but postpone the rest three patches, as there seems
> a build regression according 0day bot.

Thanks and sorry for that, something (mis)happens, I'll test it
carefully for v2.

-- 
With Best Regards,
Andy Shevchenko

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

end of thread, other threads:[~2022-07-12 10:03 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-11  9:52 [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging Andy Shevchenko
2022-07-11  9:52 ` Andy Shevchenko
2022-07-11  9:52 ` [PATCH v1 2/4] ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations Andy Shevchenko
2022-07-11  9:52   ` Andy Shevchenko
2022-07-12  4:38   ` kernel test robot
2022-07-12  4:38     ` kernel test robot
2022-07-11  9:52 ` [PATCH v1 3/4] ALSA: hda: cs35l41: Drop wrong use of ACPI_PTR() Andy Shevchenko
2022-07-11  9:52   ` Andy Shevchenko
2022-07-11  9:52 ` [PATCH v1 4/4] ALSA: hda: cs35l41: Consolidate selections under SND_HDA_SCODEC_CS35L41 Andy Shevchenko
2022-07-11  9:52   ` Andy Shevchenko
2022-07-12  9:18 ` [PATCH v1 1/4] ALSA: hda: cs35l41: Improve dev_err_probe() messaging Takashi Iwai
2022-07-12  9:18   ` Takashi Iwai
2022-07-12 10:01   ` Andy Shevchenko
2022-07-12 10:01     ` Andy Shevchenko

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.