[PATCH 1/3] clocksource: rockchip: Make the driver more readability and compatible

Caesar Wang caesar.upstream at gmail.com
Thu Sep 17 03:19:28 PDT 2015



在 2015年09月17日 18:06, Daniel Lezcano 写道:
> On 09/17/2015 11:28 AM, Caesar Wang wrote:
>> Hi Daniel,
>>
>>
>> 在 2015年09月17日 17:11, Daniel Lezcano 写道:
>>>
>>> Hi Caesar,
>>>
>>>
>>> On 09/17/2015 09:51 AM, Caesar Wang wrote:
>>>> Build the arm64 SoCs (e.g.: RK3368) on Rockchip platform,
>>>> There are some failure with build up on timer driver for rockchip.
>>>>
>>>> logs:
>>>> ...
>>>> drivers/clocksource/rockchip_timer.c:156:13: error: 'NO_IRQ' 
>>>> undeclared
>>>
>>> I think the NO_IRQ definition is missing for ARM64.
>>
>> Yep, Maybe better to compatible if we don't use the 'NO_IRQ',
>
> Hmm, after digging into drivers/of/irq.c and kernel/irq/irqdomain.c
>
> when there is an error it returns zero. So NO_IRQ and -1 are not 
> correct and on the other side zero can be a valid irq. That sounds a 
> little bit fuzzy to me.

I believe the 'NO_IRQ' is better select if 'NO_IRQ' is defined on ARM64 
platform.

     irq = irq_of_parse_and_map(np, 0);

     if (irq  == NO_IRQ)
...
Also, that's ok if we instead of the 'irq < 0'  or  '!irq' , right?






>
>>>> /tmp/ccdAnNy5.s:47: Error: missing immediate expression at  operand 
>>>> 1 --
>>>> `dsb`
>>>> ...
>>>>
>>>> The problem was different semantics of dsb on btw arm32 and arm64,
>>>> Here we can convert the dsb with insteading of dsb(sy).
>>>
>>> What happens to ARM32 then ?
>>>
>>
>> The dsb() is ok for ARM32, the ARM32/64 are OK if we can convert the
>> dsb() to dsb(sy).
>> I believe all drivers with 'dsb()' have same issue on ARM64 platform.
>>
>>>> Meanwhile, I change a bit to make the code more readability for driver
>>>> when I check the code style.
>>>>
>>>> Signed-off-by: Caesar Wang <wxt at rock-chips.com>
>>>
>>>
>>
>>
>
>
>
> -- 
> Thanks,
> Caesar



More information about the Linux-rockchip mailing list