From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
To: linux-kernel@vger.kernel.org
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>,
Richard Cochran <richardcochran@gmail.com>,
Chris Wilson <chris@chris-wilson.co.uk>,
John Stultz <john.stultz@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
Stephen Boyd <sboyd@codeaurora.org>
Subject: [PATCH 16/27] timecounter: Introduce timecounter_reset
Date: Fri, 15 Dec 2017 13:08:31 +0530 [thread overview]
Message-ID: <1513323522-15021-17-git-send-email-sagar.a.kamble@intel.com> (raw)
In-Reply-To: <1513323522-15021-1-git-send-email-sagar.a.kamble@intel.com>
timecounter_init initializes the cyclecounter and sets the start time.
Sometimes drivers using timecounter just want to update start time.
This patch creates new function timecounter_reset that just resets the
timecounter start time and associated state.
Suggested-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-kernel@vger.kernel.org
---
include/linux/timecounter.h | 17 +++++++++++++++--
kernel/time/timecounter.c | 9 +++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/include/linux/timecounter.h b/include/linux/timecounter.h
index 59d3fd7..e0fd741 100644
--- a/include/linux/timecounter.h
+++ b/include/linux/timecounter.h
@@ -98,7 +98,7 @@ static inline void timecounter_adjtime(struct timecounter *tc, s64 delta)
/**
* timecounter_init - initialize a time counter
- * @tc: Pointer to time counter which is to be initialized/reset
+ * @tc: Pointer to time counter which is to be initialized
* @start_tstamp: Arbitrary initial time stamp.
*
* After this call the current cycle register (roughly) corresponds to
@@ -131,8 +131,21 @@ extern void timecounter_initialize(struct timecounter *tc,
u64 start_tstamp);
/**
+ * timecounter_reset - reset a time counter
+ * @tc: Pointer to time counter which is to be reset
+ * @start_tstamp: Arbitrary initial time stamp.
+ *
+ * After this call the current cycle register (roughly) corresponds to
+ * the supplied time stamp. Every call to timecounter_read() increments
+ * the time stamp counter by the number of elapsed nanoseconds.
+ */
+extern void timecounter_reset(struct timecounter *tc,
+ u64 start_tstamp);
+
+/**
* timecounter_read - return nanoseconds elapsed since timecounter_init() or
- * timecounter_initialize() plus the initial time stamp
+ * timecounter_initialize() or timecounter_reset() plus
+ * the initial time stamp
* @tc: Pointer to time counter.
*
* In other words, keeps track of time since the same epoch as
diff --git a/kernel/time/timecounter.c b/kernel/time/timecounter.c
index 6d915752..3f62fe0 100644
--- a/kernel/time/timecounter.c
+++ b/kernel/time/timecounter.c
@@ -47,6 +47,15 @@ void timecounter_initialize(struct timecounter *tc,
}
EXPORT_SYMBOL_GPL(timecounter_initialize);
+void timecounter_reset(struct timecounter *tc,
+ u64 start_tstamp)
+{
+ tc->cycle_last = tc->cc.read(&tc->cc);
+ tc->nsec = start_tstamp;
+ tc->frac = 0;
+}
+EXPORT_SYMBOL_GPL(timecounter_reset);
+
/**
* timecounter_read_delta - get nanoseconds since last call of this function
* @tc: Pointer to time counter
--
1.9.1
next prev parent reply other threads:[~2017-12-15 7:35 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-15 7:38 [PATCH 00/27] timecounter/cyclecounter struct/interface update Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 01/27] timecounter: Make cyclecounter struct part of timecounter struct Sagar Arun Kamble
2018-01-08 22:20 ` [Intel-wired-lan] " Brown, Aaron F
2018-01-09 9:01 ` Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 02/27] timecounter: Introduce timecounter_initialize to update timecounter and cyclecounter Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 03/27] microblaze: Use timecounter_initialize interface Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 04/27] clocksource/arm_arch_timer: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 05/27] amd-xgbe: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 06/27] bnx2x: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 07/27] fec: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 08/27] e1000e: " Sagar Arun Kamble
2018-01-06 4:31 ` [Intel-wired-lan] " Brown, Aaron F
2017-12-15 7:38 ` [PATCH 09/27] igb: " Sagar Arun Kamble
2018-01-06 5:14 ` [Intel-wired-lan] " Brown, Aaron F
2017-12-15 7:38 ` [PATCH 10/27] ixgbe: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 11/27] net/mlx4: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 12/27] net/mlx5: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 13/27] qede: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 14/27] net: cpts: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 15/27] ALSA: hda - " Sagar Arun Kamble
2017-12-15 11:10 ` [alsa-devel] " Takashi Iwai
2017-12-15 16:51 ` Richard Cochran
2017-12-15 17:10 ` Takashi Iwai
2017-12-26 7:37 ` Sagar Arun Kamble
2017-12-28 16:49 ` Richard Cochran
2018-01-02 6:03 ` Sagar Arun Kamble
2018-01-02 17:15 ` Pierre-Louis Bossart
2018-01-02 18:21 ` Richard Cochran
2018-01-02 19:53 ` Pierre-Louis Bossart
2018-01-05 10:06 ` Sagar Arun Kamble
2018-01-05 15:43 ` Pierre-Louis Bossart
2018-01-09 10:09 ` Sagar Arun Kamble
2017-12-15 7:38 ` Sagar Arun Kamble [this message]
2017-12-15 7:38 ` [PATCH 17/27] amd-xgbe: Use timecounter_reset interface Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 18/27] bnx2x: " Sagar Arun Kamble
2017-12-18 14:13 ` Kalluru, Sudarsana
2017-12-15 7:38 ` [PATCH 19/27] net: fec: ptp: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 20/27] e1000e: " Sagar Arun Kamble
2018-01-06 4:30 ` [Intel-wired-lan] " Brown, Aaron F
2017-12-15 7:38 ` [PATCH 21/27] igb: " Sagar Arun Kamble
2018-01-06 4:33 ` [Intel-wired-lan] " Brown, Aaron F
2017-12-15 7:38 ` [PATCH 22/27] ixgbe: " Sagar Arun Kamble
2018-01-06 4:33 ` [Intel-wired-lan] " Brown, Aaron F
2018-01-06 5:11 ` Brown, Aaron F
2017-12-15 7:38 ` [PATCH 23/27] net/mlx4: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 24/27] net/mlx5: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 25/27] qede: " Sagar Arun Kamble
2017-12-18 14:13 ` Kalluru, Sudarsana
2017-12-15 7:38 ` [PATCH 26/27] net: cpts: " Sagar Arun Kamble
2017-12-15 7:38 ` [PATCH 27/27] timecounter: Remove timecounter_init Sagar Arun Kamble
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=1513323522-15021-17-git-send-email-sagar.a.kamble@intel.com \
--to=sagar.a.kamble@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=richardcochran@gmail.com \
--cc=sboyd@codeaurora.org \
--cc=tglx@linutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).