2018-10-02 21:23:44

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] firmware: tegra-bpmp: mark PM function as __maybe_unused

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 <[email protected]>
---
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;
--
2.18.0



2018-10-03 08:27:55

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH] firmware: tegra-bpmp: mark PM function as __maybe_unused


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 <[email protected]>
> ---
> 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

2018-10-04 15:13:31

by Timo Alho

[permalink] [raw]
Subject: Re: [PATCH] firmware: tegra-bpmp: mark PM function as __maybe_unused



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 <[email protected]>
>> ---
>> 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

2018-10-04 15:32:01

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] firmware: tegra-bpmp: mark PM function as __maybe_unused

On Thu, Oct 4, 2018 at 5:11 PM Timo Alho <[email protected]> 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 <[email protected]>
> >> ---
> >> 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

2018-10-04 16:21:40

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH] firmware: tegra-bpmp: mark PM function as __maybe_unused


On 04/10/18 16:31, Arnd Bergmann wrote:
> On Thu, Oct 4, 2018 at 5:11 PM Timo Alho <[email protected]> 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 <[email protected]>
>>>> ---
>>>> 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 <[email protected]>

Cheers
Jon

--
nvpublic