Le 06/03/2024 à 13:58, Michael Ellerman a écrit : > If both CONFIG_SENSORS_AMS_PMU and CONFIG_SENSORS_AMS_I2C are unset, > there is an unused variable warning in the ams driver: > > drivers/macintosh/ams/ams-core.c: In function 'ams_init': > drivers/macintosh/ams/ams-core.c:181:29: warning: unused variable 'np' > 181 | struct device_node *np; > > Fix it by using IS_ENABLED() to create a block for each case, and move > the variable declartion in there. > > Probably the dependencies should be changed so that the driver can't be > built with both variants disabled, but that would be a larger change.
Can be done easily that way I think: diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig index a0e717a986dc..fb38f684444f 100644 --- a/drivers/macintosh/Kconfig +++ b/drivers/macintosh/Kconfig @@ -262,7 +262,7 @@ config SENSORS_AMS will be called ams. config SENSORS_AMS_PMU - bool "PMU variant" + bool "PMU variant" if SENSORS_AMS_I2C depends on SENSORS_AMS && ADB_PMU default y help > > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > --- > drivers/macintosh/ams/ams-core.c | 29 ++++++++++++++--------------- > 1 file changed, 14 insertions(+), 15 deletions(-) > > diff --git a/drivers/macintosh/ams/ams-core.c > b/drivers/macintosh/ams/ams-core.c > index c978b4272daa..22d3e6605287 100644 > --- a/drivers/macintosh/ams/ams-core.c > +++ b/drivers/macintosh/ams/ams-core.c > @@ -178,25 +178,24 @@ int ams_sensor_attach(void) > > static int __init ams_init(void) > { > - struct device_node *np; > - > spin_lock_init(&ams_info.irq_lock); > mutex_init(&ams_info.lock); > INIT_WORK(&ams_info.worker, ams_worker); > > -#ifdef CONFIG_SENSORS_AMS_I2C > - np = of_find_node_by_name(NULL, "accelerometer"); > - if (np && of_device_is_compatible(np, "AAPL,accelerometer_1")) > - /* Found I2C motion sensor */ > - return ams_i2c_init(np); > -#endif > - > -#ifdef CONFIG_SENSORS_AMS_PMU > - np = of_find_node_by_name(NULL, "sms"); > - if (np && of_device_is_compatible(np, "sms")) > - /* Found PMU motion sensor */ > - return ams_pmu_init(np); > -#endif > + if (IS_ENABLED(CONFIG_SENSORS_AMS_I2C)) { > + struct device_node *np = of_find_node_by_name(NULL, > "accelerometer"); > + if (np && of_device_is_compatible(np, "AAPL,accelerometer_1")) > + /* Found I2C motion sensor */ > + return ams_i2c_init(np); > + } > + > + if (IS_ENABLED(CONFIG_SENSORS_AMS_PMU)) { > + struct device_node *np = of_find_node_by_name(NULL, "sms"); > + if (np && of_device_is_compatible(np, "sms")) > + /* Found PMU motion sensor */ > + return ams_pmu_init(np); > + } > + > return -ENODEV; > } >