From patchwork Thu Jun 2 05:18:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sourab.gupta@intel.com X-Patchwork-Id: 9149059 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E87EA60467 for ; Thu, 2 Jun 2016 05:17:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DC74625EF7 for ; Thu, 2 Jun 2016 05:17:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D1069271FD; Thu, 2 Jun 2016 05:17:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 72F7525EF7 for ; Thu, 2 Jun 2016 05:17:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8988D6E980; Thu, 2 Jun 2016 05:17:39 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 5D8416E38D for ; Thu, 2 Jun 2016 05:17:37 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 01 Jun 2016 22:17:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,404,1459839600"; d="scan'208";a="967198550" Received: from sourab-desktop.iind.intel.com ([10.223.82.156]) by orsmga001.jf.intel.com with ESMTP; 01 Jun 2016 22:17:30 -0700 From: sourab.gupta@intel.com To: intel-gfx@lists.freedesktop.org Date: Thu, 2 Jun 2016 10:48:46 +0530 Message-Id: <1464844729-2774-13-git-send-email-sourab.gupta@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1464844729-2774-1-git-send-email-sourab.gupta@intel.com> References: <1464844729-2774-1-git-send-email-sourab.gupta@intel.com> Cc: "Christopher S . Hall" , Daniel Vetter , Sourab Gupta , Deepak S , Thomas Gleixner Subject: [Intel-gfx] [PATCH 12/15] time: Expose current clocksource in use by timekeeping framework X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP From: Sourab Gupta For the drivers to be able to use the cross timestamp framework, they need the information of current clocksource being used by the kernel timekeeping. This is needed since the callback given by driver into the get_device_system_crosststamp(), in order to synchronously read the device time and system counter value, requires the knowledge of the clocksource being used to read system counter value (as a part of struct system_counterval_t). Signed-off-by: Sourab Gupta --- include/linux/timekeeping.h | 5 +++++ kernel/time/timekeeping.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/linux/timekeeping.h b/include/linux/timekeeping.h index 96f37be..d5a8cd6 100644 --- a/include/linux/timekeeping.h +++ b/include/linux/timekeeping.h @@ -320,6 +320,11 @@ extern int get_device_system_crosststamp( struct system_device_crosststamp *xtstamp); /* + * Get current clocksource used by system timekeeping framework + */ +struct clocksource *get_current_clocksource(void); + +/* * Simultaneously snapshot realtime and monotonic raw clocks */ extern void ktime_get_snapshot(struct system_time_snapshot *systime_snapshot); diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 479d25c..e92d466 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1133,6 +1133,18 @@ int get_device_system_crosststamp(int (*get_time_fn) EXPORT_SYMBOL_GPL(get_device_system_crosststamp); /** + * get_current_clocksource - Returns the current clocksource in used by tk_core + * + */ +struct clocksource *get_current_clocksource(void) +{ + struct timekeeper *tk = &tk_core.timekeeper; + + return tk->tkr_mono.clock; +} +EXPORT_SYMBOL_GPL(get_current_clocksource); + +/** * do_gettimeofday - Returns the time of day in a timeval * @tv: pointer to the timeval to be set *