On 25/03/2022 17:05, Mark Brown wrote: > On Fri, Mar 25, 2022 at 04:55:25PM +0100, Krzysztof Kozlowski wrote: > >> You mention board, some of_device_get_match_data() so you talk about >> runtime. maybe_unused is not about runtime. It is about build time. > >> The code you sent cannot have this structure unused. If you think >> otherwise, please provide argument, but not about runtime (again). You >> can for example build it without OF and see... > > If you use of_match_ptr() in the struct device (which is good practice, > didn't check if this driver does it) then that causes the ID table to be > unreferenced as of_match_ptr() compiles to NULL when !OF. Yep, then the case is obvious, but the driver does not use it. +static struct i2c_driver rt5759_driver = { + .driver = { + .name = "rt5759", + .of_match_table = rt5759_device_table, Therefore the of_device_id cannot be unused, so __maybe_unused is not correct. This can be fixed in two different ways, which we did not discuss yet... Best regards, Krzysztof