lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 22 Sep 2015 22:15:17 +0800
From:	Caesar Wang <caesar.wang@...k-chips.com>
To:	Heiko Stübner <heiko@...ech.de>
CC:	Caesar Wang <wxt@...k-chips.com>, devicetree@...r.kernel.org,
	catalin.marinas@....com, daniel.lezcano@...aro.org,
	will.deacon@....com, linux-kernel@...r.kernel.org,
	linux-rockchip@...ts.infradead.org, olof@...om.net,
	tglx@...utronix.de, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v1 1/3] clocksource: rockchip: Make the driver more readability
 and compatible

Hi  Heiko,

在 2015年09月22日 22:00, Heiko Stübner 写道:
> Hi Caesar,
>
> Am Freitag, 18. September 2015, 16:51:09 schrieb Caesar Wang:
>> 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
>> /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).
>>
>> NO_IRQ definition is missing for ARM64, since NO_IRQ being -1 is a
>> legacy thing for ARM - all ARM drivers are supposed to be converted to
>> use <= 0 or == 0 to detect invalid IRQs, and _eventually_ once all users
>> are gone, NO_IRQ deleted. Modern drivers should _all_ be using !irq to
>> detect invalid IRQs, and not using NO_IRQ.
>>
>> 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@...k-chips.com>
>> ---
>>
>> Changes in v1:
>> - As Russell, Thomas, Daniel comments, let's replace NO_IRQ by '!irq'.
>>
>>   drivers/clocksource/rockchip_timer.c | 29 +++++++++++++++--------------
>>   1 file changed, 15 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/clocksource/rockchip_timer.c
>> b/drivers/clocksource/rockchip_timer.c index bb2c2b0..e1af449 100644
>> --- a/drivers/clocksource/rockchip_timer.c
>> +++ b/drivers/clocksource/rockchip_timer.c
>> @@ -17,16 +17,16 @@
>>
>>   #define TIMER_NAME "rk_timer"
>>
>> -#define TIMER_LOAD_COUNT0 0x00
>> -#define TIMER_LOAD_COUNT1 0x04
>> -#define TIMER_CONTROL_REG 0x10
>> -#define TIMER_INT_STATUS 0x18
>> +#define TIMER_LOAD_COUNT0	0x00
>> +#define TIMER_LOAD_COUNT1	0x04
>> +#define TIMER_CONTROL_REG	0x10
>> +#define TIMER_INT_STATUS	0x18
>>
>> -#define TIMER_DISABLE 0x0
>> -#define TIMER_ENABLE 0x1
>> -#define TIMER_MODE_FREE_RUNNING (0 << 1)
>> -#define TIMER_MODE_USER_DEFINED_COUNT (1 << 1)
>> -#define TIMER_INT_UNMASK (1 << 2)
>> +#define TIMER_DISABLE			(0 << 0)
>> +#define TIMER_ENABLE			(1 << 0)
>> +#define TIMER_MODE_FREE_RUNNING		(0 << 1)
>> +#define TIMER_MODE_USER_DEFINED_COUNT	(1 << 1)
>> +#define TIMER_INT_UNMASK		(1 << 2)
> not sure how Daniel sees this, but those could count as "unrelated change", as
> they have nothing to do with the arm64 build-fixes.

Yep, it's no related to the arm64 uild fixes.
I only make the code more readability for driver.

>
>>   struct bc_timer {
>>   	struct clock_event_device ce;
>> @@ -49,14 +49,14 @@ static inline void __iomem *rk_base(struct
>> clock_event_device *ce) static inline void rk_timer_disable(struct
>> clock_event_device *ce) {
>>   	writel_relaxed(TIMER_DISABLE, rk_base(ce) + TIMER_CONTROL_REG);
>> -	dsb();
>> +	dsb(sy);
>>   }
>>
>>   static inline void rk_timer_enable(struct clock_event_device *ce, u32
>> flags) {
>>   	writel_relaxed(TIMER_ENABLE | TIMER_INT_UNMASK | flags,
>>   		       rk_base(ce) + TIMER_CONTROL_REG);
>> -	dsb();
>> +	dsb(sy);
>>   }
>>
>>   static void rk_timer_update_counter(unsigned long cycles,
>> @@ -64,13 +64,13 @@ static void rk_timer_update_counter(unsigned long
>> cycles, {
>>   	writel_relaxed(cycles, rk_base(ce) + TIMER_LOAD_COUNT0);
>>   	writel_relaxed(0, rk_base(ce) + TIMER_LOAD_COUNT1);
>> -	dsb();
>> +	dsb(sy);
>>   }
>>
>>   static void rk_timer_interrupt_clear(struct clock_event_device *ce)
>>   {
>>   	writel_relaxed(1, rk_base(ce) + TIMER_INT_STATUS);
>> -	dsb();
>> +	dsb(sy);
>>   }
>>
>>   static inline int rk_timer_set_next_event(unsigned long cycles,
>> @@ -148,7 +148,7 @@ static void __init rk_timer_init(struct device_node *np)
>> bc_timer.freq = clk_get_rate(timer_clk);
>>
>>   	irq = irq_of_parse_and_map(np, 0);
>> -	if (irq == NO_IRQ) {
>> +	if (!irq) {
>>   		pr_err("Failed to map interrupts for '%s'\n", TIMER_NAME);
>>   		return;
>>   	}
>> @@ -173,4 +173,5 @@ static void __init rk_timer_init(struct device_node *np)
>>
>>   	clockevents_config_and_register(ce, bc_timer.freq, 1, UINT_MAX);
>>   }
>> +
> unnecessary addition of a blank line (same reasons as above)

It's the same reason with the above.

CHECK: Please use a blank line after function/struct/union/enum declarations
#176: FILE: rockchip_timer.c:176:
+}
+CLOCKSOURCE_OF_DECLARE(rk_timer, "rockchip,rk3288-timer", rk_timer_init);

I know, we can ignore the above warning.
That's a bit better, I thnik.


>>   CLOCKSOURCE_OF_DECLARE(rk_timer, "rockchip,rk3288-timer", rk_timer_init);
>
> Heiko
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip


-- 
**************************************************************************************
王晓腾    Caesar Wang
Product R&D Dept.III
Fuzhou Rockchip Electronics Co.Ltd
Addr:  NO.18 Building, A District, Fuzhou Software Park,Gulou District,Fuzhou, Fujian,China(Fuzhou Headquarters)
               21F,Malata Building,Kejizhongyi Avenue,Nanshan District,Shenzhen  (Shenzhen Office)
Tel:+86-591-83991906/07 - 8221
Mobile:+86 15059456742
E-mail : wxt@...k-chips.com
***************************************************************************************
***************************************************************************************
IMPORTANT NOTICE: This email is from Fuzhou Rockchip Electronics Co., Ltd .The contents of this email and any attachments may
contain information that is privileged, confidential and/or exempt from disclosure under applicable law and relevant NDA.
If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the
information is STRICTLY PROHIBITED. Please immediately contact the sender as soon as possible and destroy the material
in its entirety in any format. Thank you.
***************************************************************************************


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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ