Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2057484ybl; Thu, 29 Aug 2019 02:59:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqzR95MiNB7uywVxBVhhLr+0Za1tZIQeWa6vyU/3BBKoeAiExrLJvj7KsV3GbZ9ps2XALYrr X-Received: by 2002:a17:902:a9c3:: with SMTP id b3mr8874860plr.179.1567072781097; Thu, 29 Aug 2019 02:59:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567072781; cv=none; d=google.com; s=arc-20160816; b=lKN60XAX7EnWXg953RgwBDI9+KkTvcg6iOzMlm49C4ypmlohTWWJzB+fyTqmMnXC4E i4XK/tU4N7G4j/ysbw98qTmQ8ipAl3HPpuSVEbAaBxZfj33501M/sETdfJ7dDvaoZpn8 d/jZFq2erJcMHzxnGPrLKYNYRyeLy+Rj5xqUtuetLOsSX2cUfVVPuRuBuYBG/exgCSTZ +3KvSRGHULsgOkQs435jWTmgMbi8SIsyIVW4vJlhlfMdgCMMwvdLOoXUjYJ9wDEJicNr FBdRW/aUQ7Jninvu5k/lFZ4p4gbnLiu4M/G+nlStMQzbCNelaVh3+DOjvQTuHW2tGu+W 3TXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=9accFdMTmqmcZlo+lKAynBZVRx/wFf1nDJumpo+SqJo=; b=jFBVSF0QlZaTGtHWq9XxyHR9Ccm1ezsDsCU4iGdQTxT8bTRDklnVER1rmUZurUrvRO 4psm/zaZgJeXCKuh3WiB4NSzyG8kQwkBMBlDPbtuTGhTsVpNLML1SZfJqjg2hr6hNvOu 9f5QnHNtWbMxR892tvhGyN7vdSD5nlq6bsHeTZzgSFA2ltKSEmndAREf09vuptBXHIyL XZJwe6XE0UNQPCcdfX5wuFHjwkLhvy7TRXH4asB+Zc+5M9GV3gSaeBAKu9Ziu28snHii x0BWzvaq2HLLaXPKtAcZoXzk/48jOgrv/z/kPNKAhM38BuyysCQkFiMCDpDqFU5kPQLq WmWA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a36si1499348pla.30.2019.08.29.02.59.25; Thu, 29 Aug 2019 02:59:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727131AbfH2J6e (ORCPT + 99 others); Thu, 29 Aug 2019 05:58:34 -0400 Received: from mga17.intel.com ([192.55.52.151]:61740 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725782AbfH2J6b (ORCPT ); Thu, 29 Aug 2019 05:58:31 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Aug 2019 02:58:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,442,1559545200"; d="scan'208";a="380719665" Received: from pipin.fi.intel.com ([10.237.72.175]) by fmsmga005.fm.intel.com with ESMTP; 29 Aug 2019 02:58:29 -0700 From: Felipe Balbi To: Richard Cochran Cc: Christopher S Hall , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Felipe Balbi Subject: [PATCH v2 2/2] PTP: add support for one-shot output Date: Thu, 29 Aug 2019 12:58:25 +0300 Message-Id: <20190829095825.2108-2-felipe.balbi@linux.intel.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190829095825.2108-1-felipe.balbi@linux.intel.com> References: <20190829095825.2108-1-felipe.balbi@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some controllers allow for a one-shot output pulse, in contrast to periodic output. Now that we have extensible versions of our IOCTLs, we can finally make use of the 'flags' field to pass a bit telling driver that if we want one-shot pulse output. Signed-off-by: Felipe Balbi --- Changes since v1: - remove comment from .flags field drivers/ptp/ptp_chardev.c | 5 ++--- include/uapi/linux/ptp_clock.h | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/ptp/ptp_chardev.c b/drivers/ptp/ptp_chardev.c index 98ec1395544e..a407e5f76e2d 100644 --- a/drivers/ptp/ptp_chardev.c +++ b/drivers/ptp/ptp_chardev.c @@ -177,9 +177,8 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg) err = -EFAULT; break; } - if ((req.perout.flags || req.perout.rsv[0] || req.perout.rsv[1] - || req.perout.rsv[2] || req.perout.rsv[3]) - && cmd == PTP_PEROUT_REQUEST2) { + if ((req.perout.rsv[0] || req.perout.rsv[1] || req.perout.rsv[2] + || req.perout.rsv[3]) && cmd == PTP_PEROUT_REQUEST2) { err = -EINVAL; break; } else if (cmd == PTP_PEROUT_REQUEST) { diff --git a/include/uapi/linux/ptp_clock.h b/include/uapi/linux/ptp_clock.h index 039cd62ec706..95840e5f5c53 100644 --- a/include/uapi/linux/ptp_clock.h +++ b/include/uapi/linux/ptp_clock.h @@ -67,7 +67,9 @@ struct ptp_perout_request { struct ptp_clock_time start; /* Absolute start time. */ struct ptp_clock_time period; /* Desired period, zero means disable. */ unsigned int index; /* Which channel to configure. */ - unsigned int flags; /* Reserved for future use. */ + +#define PTP_PEROUT_ONE_SHOT BIT(0) + unsigned int flags; unsigned int rsv[4]; /* Reserved for future use. */ }; -- 2.23.0