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

From: [email-masked] (Cousson, Benoit)
Date: Sun, 22 Jan 2012 17:59:22 +0100

On 1/22/2012 5:06 PM, Rob Herring wrote:
> 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).

Yep, I do agree, and even sent a patch for that.

http://lists.ozlabs.org/pipermail/devicetree-discuss/2011-December/010541.html

But it looks like it was stuck in linux-omap dt branch and not pulled 
for 3.3. Maybe Tony can try to sent it during -rc phase.

That being said, this will be valid for OMAP2+ only and will still break 
OMAP1 platform :-(

Tony reported that 2 days ago, and I sent the fix for it.
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg61520.html

It is now waiting for Ben's Acked-by.

Regards,
Benoit