[alsa-devel] [PATCH -next] ASoc: tas2770: Fix build error without GPIOLIB
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Signed-off-by: YueHaibing yuehaibing@huawei.com --- sound/soc/codecs/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index bcac957..d639f17 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -1108,6 +1108,7 @@ config SND_SOC_TAS2552 config SND_SOC_TAS2770 tristate "Texas Instruments TAS2770 speaker amplifier" depends on I2C + select GPIOLIB
config SND_SOC_TAS5086 tristate "Texas Instruments TAS5086 speaker amplifier"
Dear YueHaibing,
On Sun, Oct 06, 2019 at 03:22:41PM +0800, YueHaibing wrote:
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Signed-off-by: YueHaibing yuehaibing@huawei.com
sound/soc/codecs/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index bcac957..d639f17 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -1108,6 +1108,7 @@ config SND_SOC_TAS2552 config SND_SOC_TAS2770 tristate "Texas Instruments TAS2770 speaker amplifier" depends on I2C
- select GPIOLIB
GPIOLIB API is working perfectly fine even if GPIOLIB is not selected and gpiod_* functions will merely return -ENOSYS in this case. Please see <linux/gpio/consumer.h> and fix your patch accordingly.
config SND_SOC_TAS5086 tristate "Texas Instruments TAS5086 speaker amplifier" -- 2.7.4
Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On 2019/10/6 17:57, Ladislav Michl wrote:
Dear YueHaibing,
On Sun, Oct 06, 2019 at 03:22:41PM +0800, YueHaibing wrote:
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Signed-off-by: YueHaibing yuehaibing@huawei.com
sound/soc/codecs/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index bcac957..d639f17 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -1108,6 +1108,7 @@ config SND_SOC_TAS2552 config SND_SOC_TAS2770 tristate "Texas Instruments TAS2770 speaker amplifier" depends on I2C
- select GPIOLIB
GPIOLIB API is working perfectly fine even if GPIOLIB is not selected and gpiod_* functions will merely return -ENOSYS in this case. Please see <linux/gpio/consumer.h> and fix your patch accordingly.
Thanks, will send v2 as your suggestion.
config SND_SOC_TAS5086 tristate "Texas Instruments TAS5086 speaker amplifier" -- 2.7.4
Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
.
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Suggested-by: Ladislav Michl ladis@linux-mips.org Signed-off-by: YueHaibing yuehaibing@huawei.com --- v2: Add missing include file --- sound/soc/codecs/tas2770.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index 9da88cc..a36d0d7 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -15,6 +15,7 @@ #include <linux/pm.h> #include <linux/i2c.h> #include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/pm_runtime.h> #include <linux/regulator/consumer.h> #include <linux/firmware.h>
On Sun, Oct 06, 2019 at 06:46:31PM +0800, YueHaibing wrote:
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Suggested-by: Ladislav Michl ladis@linux-mips.org Signed-off-by: YueHaibing yuehaibing@huawei.com
v2: Add missing include file
sound/soc/codecs/tas2770.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index 9da88cc..a36d0d7 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -15,6 +15,7 @@ #include <linux/pm.h> #include <linux/i2c.h> #include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/pm_runtime.h> #include <linux/regulator/consumer.h> #include <linux/firmware.h>
The Kconfig part is missing - is this intended? If I guess correctly, the driver won't work without GPIOLIB, so it should either 'select GPIOLIB' or 'depends on GPIOLIB || COMPILE_TEST' or even 'select GPIOLIB if !COMPILE_TEST'.
Best Regards, Michał Mirosław
Hi Michał,
On Sun, Oct 06, 2019 at 05:31:58PM +0200, mirq-linux@rere.qmqm.pl wrote:
On Sun, Oct 06, 2019 at 06:46:31PM +0800, YueHaibing wrote:
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Suggested-by: Ladislav Michl ladis@linux-mips.org Signed-off-by: YueHaibing yuehaibing@huawei.com
v2: Add missing include file
sound/soc/codecs/tas2770.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index 9da88cc..a36d0d7 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -15,6 +15,7 @@ #include <linux/pm.h> #include <linux/i2c.h> #include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/pm_runtime.h> #include <linux/regulator/consumer.h> #include <linux/firmware.h>
The Kconfig part is missing - is this intended? If I guess correctly, the driver won't work without GPIOLIB, so it should either 'select GPIOLIB' or 'depends on GPIOLIB || COMPILE_TEST' or even 'select GPIOLIB if !COMPILE_TEST'.
while the first one is actually preferable I won't do this in this patch, but rather generally. The same you can say about regulator, regmap and other interfaces, so perhaps leaving that to patchset focusing on this kind of problem seem to be better.
Btw, I guess linux/gpio/consumer.h is enough for this driver and including linux/gpio.h should be dropped.
ladis
The patch
ASoc: tas2770: Fix build error without GPIOLIB
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-5.5
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
From 03fe492e8346d3da59b6eb7ea306d46ebf22e9d5 Mon Sep 17 00:00:00 2001
From: YueHaibing yuehaibing@huawei.com Date: Sun, 6 Oct 2019 18:46:31 +0800 Subject: [PATCH] ASoc: tas2770: Fix build error without GPIOLIB
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Suggested-by: Ladislav Michl ladis@linux-mips.org Signed-off-by: YueHaibing yuehaibing@huawei.com Link: https://lore.kernel.org/r/20191006104631.60608-1-yuehaibing@huawei.com Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/tas2770.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index dbbb21fe0548..15f6fcc6d87e 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -15,6 +15,7 @@ #include <linux/pm.h> #include <linux/i2c.h> #include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/pm_runtime.h> #include <linux/regulator/consumer.h> #include <linux/firmware.h>
Hi YueHaibing & Mark,
On Mon, Oct 07, 2019 at 02:03:09PM +0100, Mark Brown wrote:
The patch
ASoc: tas2770: Fix build error without GPIOLIB
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-5.5
Hmm, too late it seems... Patch should actually remove <linux/gpio.h> as this is legacy one (see comment on the top and also Documentation/driver-api/gpio/consumer.rst)
And that brings a question. Given this is -next only is it actually possible to squash fixes into 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") just to make bisect a bit more happy?
l.
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
From 03fe492e8346d3da59b6eb7ea306d46ebf22e9d5 Mon Sep 17 00:00:00 2001
From: YueHaibing yuehaibing@huawei.com Date: Sun, 6 Oct 2019 18:46:31 +0800 Subject: [PATCH] ASoc: tas2770: Fix build error without GPIOLIB
If GPIOLIB is not set, building fails:
sound/soc/codecs/tas2770.c: In function tas2770_reset: sound/soc/codecs/tas2770.c:38:3: error: implicit declaration of function gpiod_set_value_cansleep; did you mean gpio_set_value_cansleep? [-Werror=implicit-function-declaration] gpiod_set_value_cansleep(tas2770->reset_gpio, 0); ^~~~~~~~~~~~~~~~~~~~~~~~ gpio_set_value_cansleep sound/soc/codecs/tas2770.c: In function tas2770_i2c_probe: sound/soc/codecs/tas2770.c:749:24: error: implicit declaration of function devm_gpiod_get_optional; did you mean devm_regulator_get_optional? [-Werror=implicit-function-declaration] tas2770->reset_gpio = devm_gpiod_get_optional(tas2770->dev, ^~~~~~~~~~~~~~~~~~~~~~~ devm_regulator_get_optional sound/soc/codecs/tas2770.c:751:13: error: GPIOD_OUT_HIGH undeclared (first use in this function); did you mean GPIOF_INIT_HIGH? GPIOD_OUT_HIGH); ^~~~~~~~~~~~~~ GPIOF_INIT_HIGH
Reported-by: Hulk Robot hulkci@huawei.com Fixes: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Suggested-by: Ladislav Michl ladis@linux-mips.org Signed-off-by: YueHaibing yuehaibing@huawei.com Link: https://lore.kernel.org/r/20191006104631.60608-1-yuehaibing@huawei.com Signed-off-by: Mark Brown broonie@kernel.org
sound/soc/codecs/tas2770.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index dbbb21fe0548..15f6fcc6d87e 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -15,6 +15,7 @@ #include <linux/pm.h> #include <linux/i2c.h> #include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/pm_runtime.h> #include <linux/regulator/consumer.h>
#include <linux/firmware.h>
2.20.1
Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Tue, Oct 08, 2019 at 06:35:08PM +0200, Ladislav Michl wrote:
Hmm, too late it seems... Patch should actually remove <linux/gpio.h> as this is legacy one (see comment on the top and also Documentation/driver-api/gpio/consumer.rst)
Yes, leaving that is an oversight.
And that brings a question. Given this is -next only is it actually possible to squash fixes into 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") just to make bisect a bit more happy?
No:
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.
Apart from anything else I've merged up the fixes branch IIRC which causes trouble.
participants (4)
-
Ladislav Michl
-
Mark Brown
-
mirq-linux@rere.qmqm.pl
-
YueHaibing