From patchwork Thu Mar 19 05:45:07 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "\(Exiting\) Baolin Wang" X-Patchwork-Id: 46010 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-we0-f197.google.com (mail-we0-f197.google.com [74.125.82.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id A34602153C for ; Thu, 19 Mar 2015 05:46:43 +0000 (UTC) Received: by wesq59 with SMTP id q59sf10641831wes.1 for ; Wed, 18 Mar 2015 22:46:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe; bh=QYVokyu2IudmhdgY6D4/jmCIrioGc+OXvvXyTC1eREg=; b=TdwbGyX8eh23k8GVi8JQRKwMLxSy5tG4KadqJ0anrELt2OENZh1/rAgP8i+KZcKQPq bbLlD+8V6ZDfj8C4/DN1L/vIy4UJF4NkCJhbKMrN9Rv9wdsDRm48b6LygTwalDzsS+27 lcNuQGo4le8cGo+XTZPm3J7owng4JXcziY8Jhb7xlOvynEYU/Tp+KH4Vyl0j2UzuOBMW CSJ02KJU2nA4RufO8x1fS2Ag1xY/YwcUOI0IOjkkmAeFC2401XHKjXXa0GfhK08djYcT Ir2ZFNwjwNRvXUH5YUuAuj7q4juE7OpJ5KjX36zjh1FfvOuB8pCnIEeh4VrKO3bIWMHK tGkg== X-Gm-Message-State: ALoCoQnZy6DRbw8oj7uJS3HOKyYb+B9QXjY2qcuHsbmu1rpNmg8w4j1z8R62J5NcKFRaAv+N0Qnj X-Received: by 10.180.80.35 with SMTP id o3mr198900wix.0.1426744002958; Wed, 18 Mar 2015 22:46:42 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.7.42 with SMTP id g10ls255228laa.51.gmail; Wed, 18 Mar 2015 22:46:42 -0700 (PDT) X-Received: by 10.152.21.99 with SMTP id u3mr66877696lae.105.1426744002626; Wed, 18 Mar 2015 22:46:42 -0700 (PDT) Received: from mail-la0-f43.google.com (mail-la0-f43.google.com. [209.85.215.43]) by mx.google.com with ESMTPS id pk6si146246lbc.163.2015.03.18.22.46.42 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Mar 2015 22:46:42 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.215.43 as permitted sender) client-ip=209.85.215.43; Received: by labjg1 with SMTP id jg1so53706118lab.2 for ; Wed, 18 Mar 2015 22:46:42 -0700 (PDT) X-Received: by 10.152.197.34 with SMTP id ir2mr67064838lac.36.1426744002202; Wed, 18 Mar 2015 22:46:42 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.35.133 with SMTP id h5csp171330lbj; Wed, 18 Mar 2015 22:46:41 -0700 (PDT) X-Received: by 10.66.136.48 with SMTP id px16mr135200533pab.89.1426744000394; Wed, 18 Mar 2015 22:46:40 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id tk2si643781pab.87.2015.03.18.22.46.39; Wed, 18 Mar 2015 22:46:40 -0700 (PDT) Received-SPF: none (google.com: netdev-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752261AbbCSFqh (ORCPT + 3 others); Thu, 19 Mar 2015 01:46:37 -0400 Received: from mail-pd0-f178.google.com ([209.85.192.178]:36331 "EHLO mail-pd0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751829AbbCSFqe (ORCPT ); Thu, 19 Mar 2015 01:46:34 -0400 Received: by pdbcz9 with SMTP id cz9so65606179pdb.3 for ; Wed, 18 Mar 2015 22:46:34 -0700 (PDT) X-Received: by 10.66.248.40 with SMTP id yj8mr53088362pac.141.1426743994162; Wed, 18 Mar 2015 22:46:34 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([114.30.40.58]) by mx.google.com with ESMTPSA id j4sm655258pdk.76.2015.03.18.22.46.30 (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 18 Mar 2015 22:46:33 -0700 (PDT) From: Baolin Wang To: richardcochran@gmail.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, john.stultz@linaro.com, tglx@linutronix.de, arnd@linaro.org, baolin.wang@linaro.org Subject: [PATCH 2/4] ptp/clcok:Introduce the setktime/getktime interfaces with "ktime_t" type Date: Thu, 19 Mar 2015 13:45:07 +0800 Message-Id: <1426743909-24335-3-git-send-email-baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1426743909-24335-1-git-send-email-baolin.wang@linaro.org> References: <1426743909-24335-1-git-send-email-baolin.wang@linaro.org> Sender: netdev-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: netdev@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: baolin.wang@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.215.43 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , This patch introduces another two options to get/set time with "ktime_t" type in ptp clock operation. Original code will set/get time through the settime/gettime interfaces with "timespec" type, that will cause break issue in year 2038. And now introducing the new setktime/getktime interfaces with "ktime_t" type to use firstly. Signed-off-by: Baolin Wang --- drivers/ptp/ptp_clock.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c index 296b0ec..46425ad 100644 --- a/drivers/ptp/ptp_clock.c +++ b/drivers/ptp/ptp_clock.c @@ -106,14 +106,30 @@ static int ptp_clock_getres(struct posix_clock *pc, struct timespec *tp) static int ptp_clock_settime(struct posix_clock *pc, const struct timespec *tp) { + ktime_t kt; struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); - return ptp->info->settime(ptp->info, tp); + + if (ptp->info->setktime) { + kt = timespec_to_ktime(*tp); + return ptp->info->setktime(ptp->info, kt); + } else { + return ptp->info->settime(ptp->info, tp); + } } static int ptp_clock_gettime(struct posix_clock *pc, struct timespec *tp) { + ktime_t kt; + int ret; struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); - return ptp->info->gettime(ptp->info, tp); + + if (ptp->info->getktime) { + ret = ptp->info->getktime(ptp->info, &kt); + *tp = ktime_to_timespec(kt); + return ret; + } else { + return ptp->info->gettime(ptp->info, tp); + } } static int ptp_clock_adjtime(struct posix_clock *pc, struct timex *tx)