On Wed, Apr 03, 2024 at 12:30:44PM +0300, Andy Shevchenko wrote: > On Wed, Apr 03, 2024 at 10:06:51AM +0200, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@xxxxxxxx> > > > > When building with CONFIG_OF and/or CONFIG_ACPI disabled but W=1 extra > > warnings enabled, a lot of driver cause a warning about an unused > > ID table: > > > > drivers/char/tpm/tpm_ftpm_tee.c:356:34: error: unused variable 'of_ftpm_tee_ids' [-Werror,-Wunused-const-variable] > > drivers/dma/img-mdc-dma.c:863:34: error: unused variable 'mdc_dma_of_match' [-Werror,-Wunused-const-variable] > > drivers/fpga/versal-fpga.c:62:34: error: unused variable 'versal_fpga_of_match' [-Werror,-Wunused-const-variable] > > drivers/i2c/muxes/i2c-mux-ltc4306.c:200:34: error: unused variable 'ltc4306_of_match' [-Werror,-Wunused-const-variable] > > drivers/i2c/muxes/i2c-mux-reg.c:242:34: error: unused variable 'i2c_mux_reg_of_match' [-Werror,-Wunused-const-variable] > > drivers/memory/pl353-smc.c:62:34: error: unused variable 'pl353_smc_supported_children' [-Werror,-Wunused-const-variable] > > drivers/regulator/pbias-regulator.c:136:34: error: unused variable 'pbias_of_match' [-Werror,-Wunused-const-variable] > > drivers/regulator/twl-regulator.c:552:34: error: unused variable 'twl_of_match' [-Werror,-Wunused-const-variable] > > drivers/regulator/twl6030-regulator.c:645:34: error: unused variable 'twl_of_match' [-Werror,-Wunused-const-variable] > > drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3635:36: error: unused variable 'sas_v2_acpi_match' [-Werror,-Wunused-const-variable] > > drivers/staging/pi433/pi433_if.c:1359:34: error: unused variable 'pi433_dt_ids' [-Werror,-Wunused-const-variable] > > drivers/tty/serial/amba-pl011.c:2945:34: error: unused variable 'sbsa_uart_of_match' [-Werror,-Wunused-const-variable] > > > > The fix is always to just remove the of_match_ptr() and ACPI_PTR() wrappers > > that remove the reference, rather than adding another #ifdef just for build > > testing for a configuration that doesn't matter in practice. > > > I considered splitting up the large patch into per subsystem patches, but since > > it's really just the same thing everywhere it feels better to do it all at once. > > Can we split to three groups: > - Dropping ACPI_PTR() > - Dropping of_match_ptr() (which I won't review in depth, for example) > - Dropping both > ? Why? -corey > > ... > > > --- a/drivers/char/ipmi/ipmb_dev_int.c > > +++ b/drivers/char/ipmi/ipmb_dev_int.c > > @@ -364,7 +364,7 @@ MODULE_DEVICE_TABLE(acpi, acpi_ipmb_id); > > static struct i2c_driver ipmb_driver = { > > .driver = { > > .name = "ipmb-dev", > > - .acpi_match_table = ACPI_PTR(acpi_ipmb_id), > > + .acpi_match_table = acpi_ipmb_id, > > }, > > .probe = ipmb_probe, > > .remove = ipmb_remove, > > acpi.h --> mod_devicetable.h. > > ... > > > --- a/drivers/hid/hid-google-hammer.c > > +++ b/drivers/hid/hid-google-hammer.c > > @@ -275,21 +275,19 @@ static const struct acpi_device_id cbas_ec_acpi_ids[] = { > > }; > > MODULE_DEVICE_TABLE(acpi, cbas_ec_acpi_ids); > > > > -#ifdef CONFIG_OF > > static const struct of_device_id cbas_ec_of_match[] = { > > { .compatible = "google,cros-cbas" }, > > { }, > > }; > > MODULE_DEVICE_TABLE(of, cbas_ec_of_match); > > -#endif > > > > static struct platform_driver cbas_ec_driver = { > > .probe = cbas_ec_probe, > > .remove = cbas_ec_remove, > > .driver = { > > .name = "cbas_ec", > > - .acpi_match_table = ACPI_PTR(cbas_ec_acpi_ids), > > - .of_match_table = of_match_ptr(cbas_ec_of_match), > > + .acpi_match_table = cbas_ec_acpi_ids, > > + .of_match_table = cbas_ec_of_match, > > .pm = &cbas_ec_pm_ops, > > }, > > }; > > Ditto, and likely of.h can be also dropped. > > ... > > > --- a/drivers/input/touchscreen/wdt87xx_i2c.c > > +++ b/drivers/input/touchscreen/wdt87xx_i2c.c > > @@ -1166,7 +1166,7 @@ static struct i2c_driver wdt87xx_driver = { > > .name = WDT87XX_NAME, > > .dev_groups = wdt87xx_groups, > > .pm = pm_sleep_ptr(&wdt87xx_pm_ops), > > - .acpi_match_table = ACPI_PTR(wdt87xx_acpi_id), > > + .acpi_match_table = wdt87xx_acpi_id, > > }, > > }; > > module_i2c_driver(wdt87xx_driver); > > Ditto. > > ... > > > --- a/drivers/net/ethernet/apm/xgene-v2/main.c > > +++ b/drivers/net/ethernet/apm/xgene-v2/main.c > > @@ -731,7 +731,7 @@ MODULE_DEVICE_TABLE(acpi, xge_acpi_match); > > static struct platform_driver xge_driver = { > > .driver = { > > .name = "xgene-enet-v2", > > - .acpi_match_table = ACPI_PTR(xge_acpi_match), > > + .acpi_match_table = xge_acpi_match, > > }, > > .probe = xge_probe, > > .remove_new = xge_remove, > > Ditto. And remove forward declaration of the variable as well. > > ... > > > --- a/drivers/rtc/rtc-fsl-ftm-alarm.c > > +++ b/drivers/rtc/rtc-fsl-ftm-alarm.c > > @@ -320,7 +320,7 @@ static struct platform_driver ftm_rtc_driver = { > > .driver = { > > .name = "ftm-alarm", > > .of_match_table = ftm_rtc_match, > > - .acpi_match_table = ACPI_PTR(ftm_imx_acpi_ids), > > + .acpi_match_table = ftm_imx_acpi_ids, > > }, > > }; > > Ditto. > > ... > > > .driver = { > > .name = "pi433", > > .owner = THIS_MODULE, > > Oh-oh. > > > - .of_match_table = of_match_ptr(pi433_dt_ids), > > + .of_match_table = pi433_dt_ids, > > }, > > ... > > > --- a/drivers/tty/serial/amba-pl011.c > > +++ b/drivers/tty/serial/amba-pl011.c > > @@ -2948,7 +2948,7 @@ static const struct of_device_id sbsa_uart_of_match[] = { > > }; > > MODULE_DEVICE_TABLE(of, sbsa_uart_of_match); > > > > -static const struct acpi_device_id __maybe_unused sbsa_uart_acpi_match[] = { > > +static const struct acpi_device_id sbsa_uart_acpi_match[] = { > > { "ARMH0011", 0 }, > > { "ARMHB000", 0 }, > > {}, > > @@ -2961,8 +2961,8 @@ static struct platform_driver arm_sbsa_uart_platform_driver = { > > .driver = { > > .name = "sbsa-uart", > > .pm = &pl011_dev_pm_ops, > > - .of_match_table = of_match_ptr(sbsa_uart_of_match), > > - .acpi_match_table = ACPI_PTR(sbsa_uart_acpi_match), > > + .of_match_table = sbsa_uart_of_match, > > + .acpi_match_table = sbsa_uart_acpi_match, > > .suppress_bind_attrs = IS_BUILTIN(CONFIG_SERIAL_AMBA_PL011), > > }, > > }; > > Ditto. > > ... > > As mentioned above, I haven't and won't look into of_match_ptr() cases, but you > got the idea. > > For the above, if addressed as suggested, > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > > -- > With Best Regards, > Andy Shevchenko > >