linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).