Message ID | 20191006104631.60608-1-yuehaibing@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 03fe492e8346d3da59b6eb7ea306d46ebf22e9d5 |
Headers | show |
Series | [v2,-next] ASoc: tas2770: Fix build error without GPIOLIB | expand |
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
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.
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>
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(+)