Thread (56 messages) 56 messages, 6 authors, 2018-02-14

Re: [PATCH v4 25/36] nds32: Miscellaneous header files

From: Greentime Hu <hidden>
Date: 2017-12-20 02:35:30
Also in: linux-arch, linux-serial, lkml, netdev

2017-12-19 17:54 GMT+08:00 Arnd Bergmann [off-list ref]:
On Tue, Dec 19, 2017 at 6:34 AM, Greentime Hu [off-list ref] wrote:
quoted
Hi, Arnd:

2017-12-18 19:13 GMT+08:00 Arnd Bergmann [off-list ref]:
quoted
On Mon, Dec 18, 2017 at 7:46 AM, Greentime Hu [off-list ref] wrote:
quoted
From: Greentime Hu <greentime-MUIXKm3Oiri1Z/+hSey0Gg@public.gmane.org>

This patch introduces some miscellaneous header files.
quoted
+static inline void __delay(unsigned long loops)
+{
+       __asm__ __volatile__(".align 2\n"
+                            "1:\n"
+                            "\taddi\t%0, %0, -1\n"
+                            "\tbgtz\t%0, 1b\n"
+                            :"=r"(loops)
+                            :"0"(loops));
+}
+
+static inline void __udelay(unsigned long usecs, unsigned long lpj)
+{
+       usecs *= (unsigned long)(((0x8000000000000000ULL / (500000 / HZ)) +
+                                 0x80000000ULL) >> 32);
+       usecs = (unsigned long)(((unsigned long long)usecs * lpj) >> 32);
+       __delay(usecs);
+}
Do you have a reliable clocksource that you can read here instead of doing the
loop? It's generally preferred to have an accurate delay if at all possible, the
delay loop calibration is only for those architectures that don't have any
way to observe how much time has passed accurately.
We currently only have atcpit100 as clocksource but it is an IP of  SoC.
These delay API will be unavailable if we changed to another SoC
unless all these timer driver provided the same APIs.
It may suffer our customers if they forget to port these APIs in their
timer drivers when they try to use nds32 in the first beginning.
Ok, thanks for the clarification.
quoted
Or maybe I can use a CONFIG_USE_ACCURATE_DELAY to keep these 2
implementions for these purposes?
I'd just add a one-line comment in delay.h to explain that there is no
cycle counter in the CPU.
Thanks.
Got it. I will add a one-line comment in delay.h
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help