[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <dbedc671-167e-4eb9-8d2c-bf04258621d6@linux.dev>
Date: Mon, 17 Nov 2025 18:20:27 +0800
From: "enlin.mu" <enlin.mu@...ux.dev>
To: Manivannan Sadhasivam <mani@...nel.org>
Cc: daniel.lezcano@...aro.org, tglx@...utronix.de,
linux-arm-kernel@...ts.infradead.org, linux-unisoc@...ts.infradead.org,
linux-kernel@...r.kernel.org, enlin.mu@...soc.com
Subject: Re: [PATCH V2] clocksource/drivers/rda: Add sched_clock_register for
RDA8810PL SoC
On 2025/11/17 17:36, Manivannan Sadhasivam wrote:
> On Fri, Nov 07, 2025 at 02:33:47PM +0800, Enlin Mu wrote:
>> From: Enlin Mu <enlin.mu@...soc.com>
>>
>> The current system log timestamp accuracy is tick, which can not
>> meet the usage requirements and needs to reach nanoseconds.
>
> Which 'usage requirement' you are referring here?
Hi Mani
When using this chip,the timestamp accuracy of the kernel log is tick,
which makes it difficult to analyze some system exceptions.
Therefore, it is neccessary to adujst the accuracy of the sched_clock
function.
>
>> Therefore, the sched_clock_register funciton needs to be add.
>>
>> Signed-off-by: Enlin Mu <enlin.mu@...soc.com>
>
> But I'm happy to see a patch from Unisoc for RDA Micro SoC :)
>
> - Mani
>
>> ---
>> drivers/clocksource/timer-rda.c | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/clocksource/timer-rda.c b/drivers/clocksource/timer-rda.c
>> index fd1199c189bf..0be8e05970e2 100644
>> --- a/drivers/clocksource/timer-rda.c
>> +++ b/drivers/clocksource/timer-rda.c
>> @@ -13,6 +13,7 @@
>>
>> #include <linux/init.h>
>> #include <linux/interrupt.h>
>> +#include <linux/sched_clock.h>
>>
>> #include "timer-of.h"
>>
>> @@ -153,7 +154,7 @@ static struct timer_of rda_ostimer_of = {
>> },
>> };
>>
>> -static u64 rda_hwtimer_read(struct clocksource *cs)
>> +static u64 rda_hwtimer_clocksource_read(void)
>> {
>> void __iomem *base = timer_of_base(&rda_ostimer_of);
>> u32 lo, hi;
>> @@ -167,6 +168,11 @@ static u64 rda_hwtimer_read(struct clocksource *cs)
>> return ((u64)hi << 32) | lo;
>> }
>>
>> +static u64 rda_hwtimer_read(struct clocksource *cs)
>> +{
>> + return rda_hwtimer_clocksource_read();
>> +}
>> +
>> static struct clocksource rda_hwtimer_clocksource = {
>> .name = "rda-timer",
>> .rating = 400,
>> @@ -185,6 +191,7 @@ static int __init rda_timer_init(struct device_node *np)
>> return ret;
>>
>> clocksource_register_hz(&rda_hwtimer_clocksource, rate);
>> + sched_clock_register(rda_hwtimer_clocksource_read, 64, rate);
>>
>> clockevents_config_and_register(&rda_ostimer_of.clkevt, rate,
>> 0x2, UINT_MAX);
>> --
>> 2.39.5
>>
>
Powered by blists - more mailing lists