Subject: [PATCH 3/3] ARM: OMAP: I2C: fix compilation when !CONFIG_OF

From: [email-masked] (Rob Herring)
Date: Sun, 22 Jan 2012 10:06:42 -0600

On 01/22/2012 09:45 AM, Grant Likely wrote:
> On Sun, Jan 22, 2012 at 04:02:33AM -0700, Paul Walmsley wrote:
>> Commit 6145197be6cc0583fa1a2f4ec1079d366137061e ("i2c: OMAP: Add DT
>> support for i2c controller") breaks compilation when CONFIG_OF is not
>> defined:
>>
>>   CC      drivers/i2c/busses/i2c-omap.o
>> drivers/i2c/busses/i2c-omap.c: In function 'omap_i2c_probe':
>> drivers/i2c/busses/i2c-omap.c:1021:26: error: 'omap_i2c_of_match' undeclared (first use in this function)
>> drivers/i2c/busses/i2c-omap.c:1021:26: note: each undeclared identifier is reported only once for each function it appears in
>>
>> Fix this by avoiding of_*() functions when !CONFIG_OF.
> 
> To avoid #ifdef blocks, how about one of these fixes instead?
> of_match_device resolves to a static inline NULL when CONFIG_OF is not
> selected.
> 
> g.
> 
> ---
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index f713eac..c22e51f 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -979,6 +979,8 @@ static const struct of_device_id omap_i2c_of_match[] = {
>  	{ },
>  };
>  MODULE_DEVICE_TABLE(of, omap_i2c_of_match);
> +#else
> +#define omap_i2c_of_match NULL
>  #endif

Or just remove the existing ifdef. Isn't OMAP going to be completely
converted to DT?

I think building CONFIG_OF and !CONFIG_OF and running non-DT machines
with OF enabled is going to be a constant source of breakage. We should
move selecting CONFIG_OF up from boards/SOC config to family config
(i.e. all OMAP).

Rob