All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andrew F. Davis" <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, linux-pm@vger.kernel.org
Cc: Andreas Dannenberg <dannenberg@ti.com>,
	Pali Rohar <pali.rohar@gmail.com>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] power: bq27xxx_battery: avoid unused function warnings
Date: Mon, 23 Nov 2015 10:44:22 -0600	[thread overview]
Message-ID: <56534266.4060708@ti.com> (raw)
In-Reply-To: <4421924.EN5kWY38Jp@wuerfel>

On 11/23/2015 07:42 AM, Arnd Bergmann wrote:
> We can configure the bq27xxx_battery driver with neither the I2C
> nor the platform driver backends, which leaves out all references
> to some of the symbols, causing a couple of warnings in many
> randconfig builds:
>
> drivers/power/bq27xxx_battery.c:288:12: warning: 'bq27xxx_regs' defined but not used [-Wunused-variable]
> drivers/power/bq27xxx_battery.c:994:12: warning: 'bq27xxx_powersupply_init' defined but not used [-Wunused-function]
> drivers/power/bq27xxx_battery.c:1029:13: warning: 'bq27xxx_powersupply_unregister' defined but not used [-Wunused-function]
>
> I first tried replacing the existing #ifdefs with if(IS_ENABLED()
> statements, but that failed because the i2c framework does not
> declare functions when they are left out of the kernel.
>
> This just marks the unused functions as __maybe_unused, which is
> a correct description here. A better fix would be to restructure
> the driver into separate files and only build the common parts
> if at least one of the two bus specific drivers is enabled, but
> that requires much more work and testing on real hardware.
>
> For the time being, my simpler change at least avoids the warnings.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>
> diff --git a/drivers/power/bq27xxx_battery.c b/drivers/power/bq27xxx_battery.c
> index 880233ce9343..6c3a447f378b 100644
> --- a/drivers/power/bq27xxx_battery.c
> +++ b/drivers/power/bq27xxx_battery.c
> @@ -285,7 +285,7 @@ static u8 bq27421_regs[] = {
>   	0x18,	/* AP		*/
>   };
>
> -static u8 *bq27xxx_regs[] = {
> +static u8 *bq27xxx_regs[] __maybe_unused = {
>   	[BQ27000] = bq27000_regs,
>   	[BQ27010] = bq27010_regs,
>   	[BQ27500] = bq27500_regs,
> @@ -991,7 +991,7 @@ static void bq27xxx_external_power_changed(struct power_supply *psy)
>   	schedule_delayed_work(&di->work, 0);
>   }
>
> -static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
> +static int __maybe_unused bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
>   				    const char *name)
>   {
>   	int ret;
> @@ -1026,7 +1026,7 @@ static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
>   	return 0;
>   }
>
> -static void bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
> +static void __maybe_unused bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
>   {
>   	/*
>   	 * power_supply_unregister call bq27xxx_battery_get_property which
>

The current organization of this driver has caused a lot of problems like this,
it has been discussed that it should just be re-organized before. I went ahead
and finally did this, I'll push the patch here in a bit, should take care of this and
several other issues.

WARNING: multiple messages have this Message-ID (diff)
From: afd@ti.com (Andrew F. Davis)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] power: bq27xxx_battery: avoid unused function warnings
Date: Mon, 23 Nov 2015 10:44:22 -0600	[thread overview]
Message-ID: <56534266.4060708@ti.com> (raw)
In-Reply-To: <4421924.EN5kWY38Jp@wuerfel>

On 11/23/2015 07:42 AM, Arnd Bergmann wrote:
> We can configure the bq27xxx_battery driver with neither the I2C
> nor the platform driver backends, which leaves out all references
> to some of the symbols, causing a couple of warnings in many
> randconfig builds:
>
> drivers/power/bq27xxx_battery.c:288:12: warning: 'bq27xxx_regs' defined but not used [-Wunused-variable]
> drivers/power/bq27xxx_battery.c:994:12: warning: 'bq27xxx_powersupply_init' defined but not used [-Wunused-function]
> drivers/power/bq27xxx_battery.c:1029:13: warning: 'bq27xxx_powersupply_unregister' defined but not used [-Wunused-function]
>
> I first tried replacing the existing #ifdefs with if(IS_ENABLED()
> statements, but that failed because the i2c framework does not
> declare functions when they are left out of the kernel.
>
> This just marks the unused functions as __maybe_unused, which is
> a correct description here. A better fix would be to restructure
> the driver into separate files and only build the common parts
> if at least one of the two bus specific drivers is enabled, but
> that requires much more work and testing on real hardware.
>
> For the time being, my simpler change at least avoids the warnings.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>
> diff --git a/drivers/power/bq27xxx_battery.c b/drivers/power/bq27xxx_battery.c
> index 880233ce9343..6c3a447f378b 100644
> --- a/drivers/power/bq27xxx_battery.c
> +++ b/drivers/power/bq27xxx_battery.c
> @@ -285,7 +285,7 @@ static u8 bq27421_regs[] = {
>   	0x18,	/* AP		*/
>   };
>
> -static u8 *bq27xxx_regs[] = {
> +static u8 *bq27xxx_regs[] __maybe_unused = {
>   	[BQ27000] = bq27000_regs,
>   	[BQ27010] = bq27010_regs,
>   	[BQ27500] = bq27500_regs,
> @@ -991,7 +991,7 @@ static void bq27xxx_external_power_changed(struct power_supply *psy)
>   	schedule_delayed_work(&di->work, 0);
>   }
>
> -static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
> +static int __maybe_unused bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
>   				    const char *name)
>   {
>   	int ret;
> @@ -1026,7 +1026,7 @@ static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
>   	return 0;
>   }
>
> -static void bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
> +static void __maybe_unused bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
>   {
>   	/*
>   	 * power_supply_unregister call bq27xxx_battery_get_property which
>

The current organization of this driver has caused a lot of problems like this,
it has been discussed that it should just be re-organized before. I went ahead
and finally did this, I'll push the patch here in a bit, should take care of this and
several other issues.

WARNING: multiple messages have this Message-ID (diff)
From: "Andrew F. Davis" <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, <linux-pm@vger.kernel.org>
Cc: Andreas Dannenberg <dannenberg@ti.com>,
	Pali Rohar <pali.rohar@gmail.com>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] power: bq27xxx_battery: avoid unused function warnings
Date: Mon, 23 Nov 2015 10:44:22 -0600	[thread overview]
Message-ID: <56534266.4060708@ti.com> (raw)
In-Reply-To: <4421924.EN5kWY38Jp@wuerfel>

On 11/23/2015 07:42 AM, Arnd Bergmann wrote:
> We can configure the bq27xxx_battery driver with neither the I2C
> nor the platform driver backends, which leaves out all references
> to some of the symbols, causing a couple of warnings in many
> randconfig builds:
>
> drivers/power/bq27xxx_battery.c:288:12: warning: 'bq27xxx_regs' defined but not used [-Wunused-variable]
> drivers/power/bq27xxx_battery.c:994:12: warning: 'bq27xxx_powersupply_init' defined but not used [-Wunused-function]
> drivers/power/bq27xxx_battery.c:1029:13: warning: 'bq27xxx_powersupply_unregister' defined but not used [-Wunused-function]
>
> I first tried replacing the existing #ifdefs with if(IS_ENABLED()
> statements, but that failed because the i2c framework does not
> declare functions when they are left out of the kernel.
>
> This just marks the unused functions as __maybe_unused, which is
> a correct description here. A better fix would be to restructure
> the driver into separate files and only build the common parts
> if at least one of the two bus specific drivers is enabled, but
> that requires much more work and testing on real hardware.
>
> For the time being, my simpler change at least avoids the warnings.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>
> diff --git a/drivers/power/bq27xxx_battery.c b/drivers/power/bq27xxx_battery.c
> index 880233ce9343..6c3a447f378b 100644
> --- a/drivers/power/bq27xxx_battery.c
> +++ b/drivers/power/bq27xxx_battery.c
> @@ -285,7 +285,7 @@ static u8 bq27421_regs[] = {
>   	0x18,	/* AP		*/
>   };
>
> -static u8 *bq27xxx_regs[] = {
> +static u8 *bq27xxx_regs[] __maybe_unused = {
>   	[BQ27000] = bq27000_regs,
>   	[BQ27010] = bq27010_regs,
>   	[BQ27500] = bq27500_regs,
> @@ -991,7 +991,7 @@ static void bq27xxx_external_power_changed(struct power_supply *psy)
>   	schedule_delayed_work(&di->work, 0);
>   }
>
> -static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
> +static int __maybe_unused bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
>   				    const char *name)
>   {
>   	int ret;
> @@ -1026,7 +1026,7 @@ static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
>   	return 0;
>   }
>
> -static void bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
> +static void __maybe_unused bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
>   {
>   	/*
>   	 * power_supply_unregister call bq27xxx_battery_get_property which
>

The current organization of this driver has caused a lot of problems like this,
it has been discussed that it should just be re-organized before. I went ahead
and finally did this, I'll push the patch here in a bit, should take care of this and
several other issues.

  reply	other threads:[~2015-11-23 16:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-23 13:42 [PATCH] power: bq27xxx_battery: avoid unused function warnings Arnd Bergmann
2015-11-23 13:42 ` Arnd Bergmann
2015-11-23 16:44 ` Andrew F. Davis [this message]
2015-11-23 16:44   ` Andrew F. Davis
2015-11-23 16:44   ` Andrew F. Davis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56534266.4060708@ti.com \
    --to=afd@ti.com \
    --cc=arnd@arndb.de \
    --cc=dannenberg@ti.com \
    --cc=dbaryshkov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pali.rohar@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.