On 11/03/2023 19:44, Jonathan Cameron wrote: > On Sat, 11 Mar 2023 13:30:01 +0100 > Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > >> On 11/03/2023 13:28, Jonathan Cameron wrote: >>> On Sat, 11 Mar 2023 12:14:57 +0100 >>> Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: >>> >>>> The driver can be compile tested with !CONFIG_OF or !CONFIG_ACPI making >>>> certain data unused: >>>> >>>> drivers/iio/proximity/sx9500.c:1039:34: error: ‘sx9500_of_match’ defined but not used [-Werror=unused-const-variable=] >>>> >>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> >>> >>> Hi Krysztof >>> >>> Thanks for looking at these warnings. >>> >>> Drop the protection macros instead. The tables are trivial in size and >>> the of_match_ptr() breaks some ways this driver can be used. >>> ACPI_PTR() isn't as bad, but is pretty much pointless given this size of >>> the array. >>> >> >> For ACPI platform, ACPI table is used, so nothing for PRP0001. For OF >> platform, OF table is used. > > So you would think, but nope.. That's not how it works (I was surprised > when I came across this the first time too) > > PRP0001 is magic and requires no specific support in an individual > driver beyond not using that of_match_ptr() macro! I know, we talk about ACPI table. > > https://elixir.bootlin.com/linux/latest/source/drivers/acpi/bus.c#L754 > Docs here > https://elixir.bootlin.com/linux/latest/source/Documentation/firmware-guide/acpi/enumeration.rst#L450 The code is compile when CONFIG_ACPI is defined, right? Then you have ACPI table, so what for ACPI platform is missing? ACPI platform has ACPI table. Best regards, Krzysztof