firmware: tegra-bpmp: mark PM function as __maybe_unused

Message ID 20181002212208.2971433-1-arnd@arndb.de
State New
Headers show
Series
  • firmware: tegra-bpmp: mark PM function as __maybe_unused
Related show

Commit Message

Arnd Bergmann Oct. 2, 2018, 9:21 p.m.
The newly added tegra_bpmp_resume function is unused when CONFIG_PM
is disabled:

drivers/firmware/tegra/bpmp.c:847:12: error: 'tegra_bpmp_resume' defined but not used [-Werror=unused-function]
 static int tegra_bpmp_resume(struct device *dev)

Mark it as __maybe_unused to avoid the warning and let the compiler
drop it silently.

Fixes: cd40f6ff124c ("firmware: tegra: bpmp: Implement suspend/resume support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/firmware/tegra/bpmp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.18.0

Comments

Jon Hunter Oct. 3, 2018, 8:26 a.m. | #1
On 02/10/18 22:21, Arnd Bergmann wrote:
> The newly added tegra_bpmp_resume function is unused when CONFIG_PM

> is disabled:

> 

> drivers/firmware/tegra/bpmp.c:847:12: error: 'tegra_bpmp_resume' defined but not used [-Werror=unused-function]

>  static int tegra_bpmp_resume(struct device *dev)

> 

> Mark it as __maybe_unused to avoid the warning and let the compiler

> drop it silently.

> 

> Fixes: cd40f6ff124c ("firmware: tegra: bpmp: Implement suspend/resume support")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  drivers/firmware/tegra/bpmp.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c

> index 41448ba78be9..a3d5b518c10e 100644

> --- a/drivers/firmware/tegra/bpmp.c

> +++ b/drivers/firmware/tegra/bpmp.c

> @@ -844,7 +844,7 @@ static int tegra_bpmp_probe(struct platform_device *pdev)

>  	return err;

>  }

>  

> -static int tegra_bpmp_resume(struct device *dev)

> +static int __maybe_unused tegra_bpmp_resume(struct device *dev)

>  {

>  	struct tegra_bpmp *bpmp = dev_get_drvdata(dev);

>  	unsigned int i;


Arnd, is this seen with 32-bit ARM configs?

Timo, does it make sense to make BPMP dependent on ARCH_TEGRA_186_SOC
and ARCH_TEGRA_194_SOC instead of just ARCH_TEGRA? For 64-bit Tegra we
have a dependency on PM so this should not be seen for 64-bit Tegra.

Cheers
Jon

-- 
nvpublic
Timo Alho Oct. 4, 2018, 3:11 p.m. | #2
On 03.10.2018 11:26, Jonathan Hunter wrote:
> 

> On 02/10/18 22:21, Arnd Bergmann wrote:

>> The newly added tegra_bpmp_resume function is unused when CONFIG_PM

>> is disabled:

>>

>> drivers/firmware/tegra/bpmp.c:847:12: error: 'tegra_bpmp_resume' defined but not used [-Werror=unused-function]

>>   static int tegra_bpmp_resume(struct device *dev)

>>

>> Mark it as __maybe_unused to avoid the warning and let the compiler

>> drop it silently.

>>

>> Fixes: cd40f6ff124c ("firmware: tegra: bpmp: Implement suspend/resume support")

>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>> ---

>>   drivers/firmware/tegra/bpmp.c | 2 +-

>>   1 file changed, 1 insertion(+), 1 deletion(-)

>>

>> diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c

>> index 41448ba78be9..a3d5b518c10e 100644

>> --- a/drivers/firmware/tegra/bpmp.c

>> +++ b/drivers/firmware/tegra/bpmp.c

>> @@ -844,7 +844,7 @@ static int tegra_bpmp_probe(struct platform_device *pdev)

>>   	return err;

>>   }

>>   

>> -static int tegra_bpmp_resume(struct device *dev)

>> +static int __maybe_unused tegra_bpmp_resume(struct device *dev)

>>   {

>>   	struct tegra_bpmp *bpmp = dev_get_drvdata(dev);

>>   	unsigned int i;

> 

> Arnd, is this seen with 32-bit ARM configs?

> 

> Timo, does it make sense to make BPMP dependent on ARCH_TEGRA_186_SOC

> and ARCH_TEGRA_194_SOC instead of just ARCH_TEGRA? For 64-bit Tegra we

> have a dependency on PM so this should not be seen for 64-bit Tegra.


Jon, there will be eventually a BPMP driver for ARCH_TEGRA_210_SOC as 
well. So it is probably more appropriate to make BPMP dependent on ARM64 
& ARCH_TEGRA.

-Timo
Arnd Bergmann Oct. 4, 2018, 3:31 p.m. | #3
On Thu, Oct 4, 2018 at 5:11 PM Timo Alho <talho@nvidia.com> wrote:
> On 03.10.2018 11:26, Jonathan Hunter wrote:

> > On 02/10/18 22:21, Arnd Bergmann wrote:

> >> The newly added tegra_bpmp_resume function is unused when CONFIG_PM

> >> is disabled:

> >>

> >> drivers/firmware/tegra/bpmp.c:847:12: error: 'tegra_bpmp_resume' defined but not used [-Werror=unused-function]

> >>   static int tegra_bpmp_resume(struct device *dev)

> >>

> >> Mark it as __maybe_unused to avoid the warning and let the compiler

> >> drop it silently.

> >>

> >> Fixes: cd40f6ff124c ("firmware: tegra: bpmp: Implement suspend/resume support")

> >> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> >> ---

> >>   drivers/firmware/tegra/bpmp.c | 2 +-

> >>   1 file changed, 1 insertion(+), 1 deletion(-)

> >>

> >> diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c

> >> index 41448ba78be9..a3d5b518c10e 100644

> >> --- a/drivers/firmware/tegra/bpmp.c

> >> +++ b/drivers/firmware/tegra/bpmp.c

> >> @@ -844,7 +844,7 @@ static int tegra_bpmp_probe(struct platform_device *pdev)

> >>      return err;

> >>   }

> >>

> >> -static int tegra_bpmp_resume(struct device *dev)

> >> +static int __maybe_unused tegra_bpmp_resume(struct device *dev)

> >>   {

> >>      struct tegra_bpmp *bpmp = dev_get_drvdata(dev);

> >>      unsigned int i;

> >

> > Arnd, is this seen with 32-bit ARM configs?


This was with a randconfig build on 64-bit ARM. I don't know exactly
what combination of options caused it.

> > Timo, does it make sense to make BPMP dependent on ARCH_TEGRA_186_SOC

> > and ARCH_TEGRA_194_SOC instead of just ARCH_TEGRA? For 64-bit Tegra we

> > have a dependency on PM so this should not be seen for 64-bit Tegra.


CONFIG_PM does not imply CONFIG_PM_SLEEP, so probably it
was just broken for PM=y, PM_SLEEP=n.

> Jon, there will be eventually a BPMP driver for ARCH_TEGRA_210_SOC as

> well. So it is probably more appropriate to make BPMP dependent on ARM64

> & ARCH_TEGRA.


Generally speaking, we are trying to allow building all drivers at least
with CONFIG_COMPILE_TEST, in order to get the best build coverage.

       Arnd
Jon Hunter Oct. 4, 2018, 4:19 p.m. | #4
On 04/10/18 16:31, Arnd Bergmann wrote:
> On Thu, Oct 4, 2018 at 5:11 PM Timo Alho <talho@nvidia.com> wrote:

>> On 03.10.2018 11:26, Jonathan Hunter wrote:

>>> On 02/10/18 22:21, Arnd Bergmann wrote:

>>>> The newly added tegra_bpmp_resume function is unused when CONFIG_PM

>>>> is disabled:

>>>>

>>>> drivers/firmware/tegra/bpmp.c:847:12: error: 'tegra_bpmp_resume' defined but not used [-Werror=unused-function]

>>>>   static int tegra_bpmp_resume(struct device *dev)

>>>>

>>>> Mark it as __maybe_unused to avoid the warning and let the compiler

>>>> drop it silently.

>>>>

>>>> Fixes: cd40f6ff124c ("firmware: tegra: bpmp: Implement suspend/resume support")

>>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>>>> ---

>>>>   drivers/firmware/tegra/bpmp.c | 2 +-

>>>>   1 file changed, 1 insertion(+), 1 deletion(-)

>>>>

>>>> diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c

>>>> index 41448ba78be9..a3d5b518c10e 100644

>>>> --- a/drivers/firmware/tegra/bpmp.c

>>>> +++ b/drivers/firmware/tegra/bpmp.c

>>>> @@ -844,7 +844,7 @@ static int tegra_bpmp_probe(struct platform_device *pdev)

>>>>      return err;

>>>>   }

>>>>

>>>> -static int tegra_bpmp_resume(struct device *dev)

>>>> +static int __maybe_unused tegra_bpmp_resume(struct device *dev)

>>>>   {

>>>>      struct tegra_bpmp *bpmp = dev_get_drvdata(dev);

>>>>      unsigned int i;

>>>

>>> Arnd, is this seen with 32-bit ARM configs?

> 

> This was with a randconfig build on 64-bit ARM. I don't know exactly

> what combination of options caused it.

> 

>>> Timo, does it make sense to make BPMP dependent on ARCH_TEGRA_186_SOC

>>> and ARCH_TEGRA_194_SOC instead of just ARCH_TEGRA? For 64-bit Tegra we

>>> have a dependency on PM so this should not be seen for 64-bit Tegra.

> 

> CONFIG_PM does not imply CONFIG_PM_SLEEP, so probably it

> was just broken for PM=y, PM_SLEEP=n.


Yes that would make sense.

>> Jon, there will be eventually a BPMP driver for ARCH_TEGRA_210_SOC as

>> well. So it is probably more appropriate to make BPMP dependent on ARM64

>> & ARCH_TEGRA.

> 

> Generally speaking, we are trying to allow building all drivers at least

> with CONFIG_COMPILE_TEST, in order to get the best build coverage.


True. Thinking some more it is fine with me, so ...

Acked-by: Jon Hunter <jonathanh@nvidia.com>


Cheers
Jon

-- 
nvpublic

Patch

diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c
index 41448ba78be9..a3d5b518c10e 100644
--- a/drivers/firmware/tegra/bpmp.c
+++ b/drivers/firmware/tegra/bpmp.c
@@ -844,7 +844,7 @@  static int tegra_bpmp_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int tegra_bpmp_resume(struct device *dev)
+static int __maybe_unused tegra_bpmp_resume(struct device *dev)
 {
 	struct tegra_bpmp *bpmp = dev_get_drvdata(dev);
 	unsigned int i;