Re: [PATCH v5 04/20] clocksource: Add NPS400 timers driver

From: Vineet Gupta
Date: Mon Dec 28 2015 - 06:11:54 EST


On Monday 28 December 2015 04:25 PM, Daniel Lezcano wrote:
> On 12/28/2015 11:35 AM, Vineet Gupta wrote:
>> On Monday 28 December 2015 02:30 PM, Daniel Lezcano wrote:
>>>>> reproduce:
>>>>> # save the attached .config to linux build tree
>>>>> make ARCH=i386
>>>>
>>>> This is meant for ARC only (not i386), I will add to the Kconfig file a
>>>> dependency on my platform.
>>>
>>> Hi Noam,
>>>
>>> for compilation test coverage it would be nice to not restrict the to ARC only but
>>> change the write_aux_reg to a common name across the different arch if possible.
>>>
>>> -- Daniel
>>
>> Hi Daniel,
>>
>> AUX registers is a ARC specific mechanism used to access some of the core
>> functionality (intc, caches, ....) which other arches likely do via MMIO. I don't
>> think a generic abstraction exists. And IMHO it doesn't make sense to invent one
>> given this may not map directly to other arches.
>>
>> This was one of the key reasons arc intc/timers were not added to drivers/* in
>> first place.
>>
>> I do agree with compilation test coverage aspect though.
>> Maybe we add a *hack* to include/soc/nps/common.h
>>
>> #ifndef __ARC__
>> #define write_aux_reg(r, v)
>> #define read_aux_reg(r) 0
>> #endif
>>
>> What say you ?
>
> Yes that's an alternative.
>
> Perhaps instead of the __ARC__:
>
> /*
> * Define dummy macros to let different architectures to
> * compile test some drivers, eg. the timer.
> */
> #ifndef write_aux_reg
> #define write_aux_reg(r, v)
> #endif
>
> #ifndef read_aux_reg
> #define read_aux_reg(r) 0
> #endif
>
> Now that header must be included always *after* asm/arcregs.h.
>
> Not sure this kind of implicit ordering is not prone to bug.

Indeed, this all seems too fragile. The main point here is to allow building of
this code on !ARC and that can simply be done with my original proposal, w/o
adding any other ordering rules/dependencies for ARC builds !

-Vineet


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/