2023-06-16 09:26:09

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 1/4] ASoC: max98388: fix unused function warnings

From: Arnd Bergmann <[email protected]>

The PM functions are never referenced when CONFIG_PM_SLEEP is
disabled:

sound/soc/codecs/max98388.c:854:12: error: unused function 'max98388_suspend' [-Werror,-Wunused-function]
static int max98388_suspend(struct device *dev)
^
sound/soc/codecs/max98388.c:864:12: error: unused function 'max98388_resume' [-Werror,-Wunused-function]
static int max98388_resume(struct device *dev)

Fix this by using the modern SYSTEM_SLEEP_PM_OPS() macro in place of
the deprecated SET_SYSTEM_SLEEP_PM_OPS() version, and use pm_sleep_ptr()
to hide the entire structure as well.

On a related note, the of_match_ptr() and ACPI_PTR() macros have the same
problem and would cause the device id table to be unused when the driver
is built-in and the respective subsystems are disabled. This does not
cause warnings unless -Wunused-const-variable is passed to the compiler,
but it's better to just not use the macros at all here.

Signed-off-by: Arnd Bergmann <[email protected]>
---
sound/soc/codecs/max98388.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sound/soc/codecs/max98388.c b/sound/soc/codecs/max98388.c
index 8062a71150074..3d03c4bac6c55 100644
--- a/sound/soc/codecs/max98388.c
+++ b/sound/soc/codecs/max98388.c
@@ -873,7 +873,7 @@ static int max98388_resume(struct device *dev)
}

static const struct dev_pm_ops max98388_pm = {
- SET_SYSTEM_SLEEP_PM_OPS(max98388_suspend, max98388_resume)
+ SYSTEM_SLEEP_PM_OPS(max98388_suspend, max98388_resume)
};

static const struct regmap_config max98388_regmap = {
@@ -998,9 +998,9 @@ MODULE_DEVICE_TABLE(acpi, max98388_acpi_match);
static struct i2c_driver max98388_i2c_driver = {
.driver = {
.name = "max98388",
- .of_match_table = of_match_ptr(max98388_of_match),
- .acpi_match_table = ACPI_PTR(max98388_acpi_match),
- .pm = &max98388_pm,
+ .of_match_table = max98388_of_match,
+ .acpi_match_table = max98388_acpi_match,
+ .pm = pm_sleep_ptr(&max98388_pm),
},
.probe = max98388_i2c_probe,
.id_table = max98388_i2c_id,
--
2.39.2



2023-06-16 09:27:22

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 3/4] ASoC: loongson: add PCI dependency

From: Arnd Bergmann <[email protected]>

The new driver fails to build when PCI is disabled:

WARNING: unmet direct dependencies detected for SND_SOC_LOONGSON_I2S_PCI
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && (LOONGARCH || COMPILE_TEST [=y]) && PCI [=n]
Selected by [y]:
- SND_SOC_LOONGSON_CARD [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && (LOONGARCH || COMPILE_TEST [=y])
sound/soc/loongson/loongson_i2s_pci.c:167:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
module_pci_driver(loongson_i2s_driver);

Add the appropriate Kconfig dependency.

Fixes: d24028606e764 ("ASoC: loongson: Add Loongson ASoC Sound Card Support")
Signed-off-by: Arnd Bergmann <[email protected]>
---
sound/soc/loongson/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/sound/soc/loongson/Kconfig b/sound/soc/loongson/Kconfig
index c175f9de19a85..b8d7e2bade246 100644
--- a/sound/soc/loongson/Kconfig
+++ b/sound/soc/loongson/Kconfig
@@ -16,6 +16,7 @@ config SND_SOC_LOONGSON_I2S_PCI
config SND_SOC_LOONGSON_CARD
tristate "Loongson Sound Card Driver"
select SND_SOC_LOONGSON_I2S_PCI
+ depends on PCI
help
Say Y or M if you want to add support for SoC audio using
loongson I2S controller.
--
2.39.2


2023-06-16 13:51:39

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH 1/4] ASoC: max98388: fix unused function warnings

On Fri, 16 Jun 2023 11:00:37 +0200, Arnd Bergmann wrote:
> The PM functions are never referenced when CONFIG_PM_SLEEP is
> disabled:
>
> sound/soc/codecs/max98388.c:854:12: error: unused function 'max98388_suspend' [-Werror,-Wunused-function]
> static int max98388_suspend(struct device *dev)
> ^
> sound/soc/codecs/max98388.c:864:12: error: unused function 'max98388_resume' [-Werror,-Wunused-function]
> static int max98388_resume(struct device *dev)
>
> [...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/4] ASoC: max98388: fix unused function warnings
commit: 0c340ba05fda0fbf5a54207452728911c6388330
[2/4] ASoC: loongson: fix unused PM function warning
commit: 041c5a1d065e5882299475326655f573e2a2a580
[3/4] ASoC: loongson: add PCI dependency
commit: 08432e59c7d9a958e69cf6b7a03777ba4f26f10b
[4/4] ASoC: loongson: fix compile testing on 32-bit
commit: 928314eb06709e3861ce3e2c7e9ef3f83ba8691b

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


2023-06-17 04:22:43

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 1/4] ASoC: max98388: fix unused function warnings



On 6/16/23 02:00, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> The PM functions are never referenced when CONFIG_PM_SLEEP is
> disabled:
>
> sound/soc/codecs/max98388.c:854:12: error: unused function 'max98388_suspend' [-Werror,-Wunused-function]
> static int max98388_suspend(struct device *dev)
> ^
> sound/soc/codecs/max98388.c:864:12: error: unused function 'max98388_resume' [-Werror,-Wunused-function]
> static int max98388_resume(struct device *dev)
>
> Fix this by using the modern SYSTEM_SLEEP_PM_OPS() macro in place of
> the deprecated SET_SYSTEM_SLEEP_PM_OPS() version, and use pm_sleep_ptr()
> to hide the entire structure as well.
>
> On a related note, the of_match_ptr() and ACPI_PTR() macros have the same
> problem and would cause the device id table to be unused when the driver
> is built-in and the respective subsystems are disabled. This does not
> cause warnings unless -Wunused-const-variable is passed to the compiler,
> but it's better to just not use the macros at all here.
>
> Signed-off-by: Arnd Bergmann <[email protected]>

Acked-by: Randy Dunlap <[email protected]>
Tested-by: Randy Dunlap <[email protected]> # build-tested

Thanks.

> ---
> sound/soc/codecs/max98388.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/codecs/max98388.c b/sound/soc/codecs/max98388.c
> index 8062a71150074..3d03c4bac6c55 100644
> --- a/sound/soc/codecs/max98388.c
> +++ b/sound/soc/codecs/max98388.c
> @@ -873,7 +873,7 @@ static int max98388_resume(struct device *dev)
> }
>
> static const struct dev_pm_ops max98388_pm = {
> - SET_SYSTEM_SLEEP_PM_OPS(max98388_suspend, max98388_resume)
> + SYSTEM_SLEEP_PM_OPS(max98388_suspend, max98388_resume)
> };
>
> static const struct regmap_config max98388_regmap = {
> @@ -998,9 +998,9 @@ MODULE_DEVICE_TABLE(acpi, max98388_acpi_match);
> static struct i2c_driver max98388_i2c_driver = {
> .driver = {
> .name = "max98388",
> - .of_match_table = of_match_ptr(max98388_of_match),
> - .acpi_match_table = ACPI_PTR(max98388_acpi_match),
> - .pm = &max98388_pm,
> + .of_match_table = max98388_of_match,
> + .acpi_match_table = max98388_acpi_match,
> + .pm = pm_sleep_ptr(&max98388_pm),
> },
> .probe = max98388_i2c_probe,
> .id_table = max98388_i2c_id,

--
~Randy

2023-06-17 05:25:33

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 3/4] ASoC: loongson: add PCI dependency



On 6/16/23 02:00, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> The new driver fails to build when PCI is disabled:
>
> WARNING: unmet direct dependencies detected for SND_SOC_LOONGSON_I2S_PCI
> Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && (LOONGARCH || COMPILE_TEST [=y]) && PCI [=n]
> Selected by [y]:
> - SND_SOC_LOONGSON_CARD [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && (LOONGARCH || COMPILE_TEST [=y])
> sound/soc/loongson/loongson_i2s_pci.c:167:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
> module_pci_driver(loongson_i2s_driver);
>
> Add the appropriate Kconfig dependency.
>
> Fixes: d24028606e764 ("ASoC: loongson: Add Loongson ASoC Sound Card Support")
> Signed-off-by: Arnd Bergmann <[email protected]>

Acked-by: Randy Dunlap <[email protected]>
Tested-by: Randy Dunlap <[email protected]> # build-tested

Thanks.

> ---
> sound/soc/loongson/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/sound/soc/loongson/Kconfig b/sound/soc/loongson/Kconfig
> index c175f9de19a85..b8d7e2bade246 100644
> --- a/sound/soc/loongson/Kconfig
> +++ b/sound/soc/loongson/Kconfig
> @@ -16,6 +16,7 @@ config SND_SOC_LOONGSON_I2S_PCI
> config SND_SOC_LOONGSON_CARD
> tristate "Loongson Sound Card Driver"
> select SND_SOC_LOONGSON_I2S_PCI
> + depends on PCI
> help
> Say Y or M if you want to add support for SoC audio using
> loongson I2S controller.

--
~Randy