From: Dmitry Osipenko <digetx@gmail.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>,
Thierry Reding <thierry.reding@gmail.com>,
Jonathan Hunter <jonathanh@nvidia.com>,
Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 8/8] clocksource/drivers/tegra: Set up maximum-ticks limit properly
Date: Tue, 18 Jun 2019 17:03:58 +0300 [thread overview]
Message-ID: <20190618140358.13148-9-digetx@gmail.com> (raw)
In-Reply-To: <20190618140358.13148-1-digetx@gmail.com>
Tegra's timer has 29 bits for the counter and for the "load" register
which sets counter to a load-value. The counter's value is lower than
the actual value by 1 because it starts to decrement after one tick,
hence the maximum number of ticks that hardware can handle equals to
29 bits + 1.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/clocksource/timer-tegra.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/clocksource/timer-tegra.c b/drivers/clocksource/timer-tegra.c
index b84324288749..355b29ff6362 100644
--- a/drivers/clocksource/timer-tegra.c
+++ b/drivers/clocksource/timer-tegra.c
@@ -137,9 +137,17 @@ static int tegra_timer_setup(unsigned int cpu)
irq_force_affinity(to->clkevt.irq, cpumask_of(cpu));
enable_irq(to->clkevt.irq);
+ /*
+ * Tegra's timer uses n+1 scheme for the counter, i.e. timer will
+ * fire after one tick if 0 is loaded and thus minimum number of
+ * ticks is 1. In result both of the clocksource's tick limits are
+ * higher than a minimum and maximum that hardware register can
+ * take by 1, this is then taken into account by set_next_event
+ * callback.
+ */
clockevents_config_and_register(&to->clkevt, timer_of_rate(to),
1, /* min */
- 0x1fffffff); /* 29 bits */
+ 0x1fffffff + 1); /* max 29 bits + 1 */
return 0;
}
--
2.22.0
next prev parent reply other threads:[~2019-06-18 14:03 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-18 14:03 [PATCH v3 0/8] Few more cleanups for tegra-timer Dmitry Osipenko
2019-06-18 14:03 ` [PATCH v3 1/8] clocksource/drivers/tegra: Restore timer rate on Tegra210 Dmitry Osipenko
2019-06-19 8:17 ` Thierry Reding
2019-06-18 14:03 ` [PATCH v3 2/8] clocksource/drivers/tegra: Remove duplicated use of per_cpu_ptr Dmitry Osipenko
2019-06-19 8:18 ` Thierry Reding
2019-06-18 14:03 ` [PATCH v3 3/8] clocksource/drivers/tegra: Set and use timer's period Dmitry Osipenko
2019-06-18 16:32 ` Jon Hunter
2019-06-18 16:32 ` Jon Hunter
2019-06-19 0:41 ` Dmitry Osipenko
2019-06-19 8:18 ` Thierry Reding
2019-06-18 14:03 ` [PATCH v3 4/8] clocksource/drivers/tegra: Drop unneeded typecasting in one place Dmitry Osipenko
2019-06-19 8:18 ` Thierry Reding
2019-06-18 14:03 ` [PATCH v3 5/8] clocksource/drivers/tegra: Add verbose definition for 1MHz constant Dmitry Osipenko
2019-06-19 8:18 ` Thierry Reding
2019-06-18 14:03 ` [PATCH v3 6/8] clocksource/drivers/tegra: Restore base address before cleanup Dmitry Osipenko
2019-06-18 17:51 ` Jon Hunter
2019-06-18 17:51 ` Jon Hunter
2019-06-19 8:18 ` Thierry Reding
2019-06-18 14:03 ` [PATCH v3 7/8] clocksource/drivers/tegra: Cycles can't be 0 Dmitry Osipenko
2019-06-18 17:51 ` Jon Hunter
2019-06-18 17:51 ` Jon Hunter
2019-06-19 8:19 ` Thierry Reding
2019-06-20 21:59 ` Dmitry Osipenko
2019-06-18 14:03 ` Dmitry Osipenko [this message]
2019-06-18 17:52 ` [PATCH v3 8/8] clocksource/drivers/tegra: Set up maximum-ticks limit properly Jon Hunter
2019-06-18 17:52 ` Jon Hunter
2019-06-19 8:19 ` Thierry Reding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190618140358.13148-9-digetx@gmail.com \
--to=digetx@gmail.com \
--cc=daniel.lezcano@linaro.org \
--cc=jonathanh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=pdeschrijver@nvidia.com \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.