Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp38874ybb; Fri, 27 Mar 2020 15:35:57 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuaUun9vSXD5Xb9nP0/Za0+tclUfFGBFfDaUOiIxG+xW8qYizeKxSmeEHh6qJ+BQS1NKZeR X-Received: by 2002:a05:6830:2147:: with SMTP id r7mr742672otd.59.1585348557137; Fri, 27 Mar 2020 15:35:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585348557; cv=none; d=google.com; s=arc-20160816; b=Rk5FwKfnnu5pnyCZzi9lOQq+vJeVddmZdbcn/prsIKoerTeYq7Zy3citR5FSS0mUt+ +3u6L4qFzjLpLQshk+IKF1vhnSBWMXTLSctI0UaNEs8+Y3NanlDeqVpPvC0zBr3Cy21I 5hkw8vcBh1ypReJk8A8KdA7Sf+1yFNIZW3q/bGbz3Jh/IqJdPOvNrtnKNcofokcoS3ZK lPlA+3SxdInZMvCpHRquukG72wFh0+/sCeASNgmsC37PgelDwszXgVorZ99+SCqnsk4W JZ9N1ViqiaA0ENbGvTY83iUzXMRxmfXk4ivoTpb5BgB00BYGhfEvn+J83HQRRzt3IKkV b2vg== 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 :dkim-signature; bh=3+1xmr1a9eg3AmnjLomjOPKSe+onX/qqluNCv1dv8I0=; b=oMJ6Qdq4WYPS3mp8HD9ASqyXNlYmlxgq+9A4tYPcUfLQ7cx+CZnItdccjSwYXXvYSM xz/L/xnfbPHnzN3Vc6oB12UJTxqMdbr2WXtR9XW39OqBlg4GKeHCT8WSBh0L+I7QuzRI yPFhVKjTvORcvW4SplryZTKdL1fYi1TtpWGuv7zWLUG5VecExx+CfETOmiuJh4Avzzx0 nx9hg1H1DdsNLDVeiafndw5Un1aOzL5kqfX1lygVNeyw7Pp+VxHleErpQtm0AyPp5Gtw GV9pXrisxbOiyx5jv/fRWR+yNcPHKAkHd4Zs/ZJSL/opkI4pHdiVOHNADYm8I7M7wkIU p27A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=CnPBKlyw; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u199si2727709oif.110.2020.03.27.15.35.44; Fri, 27 Mar 2020 15:35:57 -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; dkim=pass header.i=@chromium.org header.s=google header.b=CnPBKlyw; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727930AbgC0WfM (ORCPT + 99 others); Fri, 27 Mar 2020 18:35:12 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:40826 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727882AbgC0WfD (ORCPT ); Fri, 27 Mar 2020 18:35:03 -0400 Received: by mail-pg1-f196.google.com with SMTP id t24so5263614pgj.7 for ; Fri, 27 Mar 2020 15:35:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3+1xmr1a9eg3AmnjLomjOPKSe+onX/qqluNCv1dv8I0=; b=CnPBKlywSOzMLnPL2jTSRxHG2ElBI7BnPECo8RQl/yi5yG38NJr86kKApXZ1+Dt/lN C4OVdG0T0UngFQM7gI8byJaTjJZGMRWfLB7jrTyrlD3XrPZDsbmuQZVGcP9F5PSZccUe OjLYATwVq5Q9BtbteK+guA18WiPtI3oRfVTTw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3+1xmr1a9eg3AmnjLomjOPKSe+onX/qqluNCv1dv8I0=; b=oNTevf3CnxBfFc+n/r6ivdDv3vjJ2nXb9hzaakYtAt3pbxBnpIr5dfNujssJ2gEQxA 0UM7a5VtL94qWZWJZ3rpDqOe+Apdaxej/WzPyrJ4zkIFortz96xHPvSQW8IlKwSJXL5Z r6xhiaCf1G+D6yTnXeY5ql2V17IV6w23DICzosWm9wZBA5sTvZP5vvISi0yIBPFNQYmJ JySYEFPrsuk2Rjvogop457DUtGMuCyEFwvgkBAwTD0rXNCO9ycv2J5pWB/IrwqDW9Qrf CFv8SeunM/M4KWwra5oIX1gTg/5aSHO60y5bEMFuzh4edZVgn3HmBYqzPQOg7tugc34P gHkw== X-Gm-Message-State: ANhLgQ2oLLjMyNIhWr4FYwN47i1lhr1SWbYTX5dhmiHXOMgh29Lqn/GT /6bzAu5WNfN6chNHj2rRO8WTjA== X-Received: by 2002:a63:5847:: with SMTP id i7mr1534992pgm.127.1585348501236; Fri, 27 Mar 2020 15:35:01 -0700 (PDT) Received: from localhost ([2620:15c:202:1:4cc0:7eee:97c9:3c1a]) by smtp.gmail.com with ESMTPSA id f22sm4588981pgl.20.2020.03.27.15.35.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2020 15:35:00 -0700 (PDT) From: Gwendal Grignou To: bleung@chromium.org, enric.balletbo@collabora.com, Jonathan.Cameron@huawei.com Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Gwendal Grignou Subject: [PATCH v7 12/12] iio: cros_ec: flush as hwfifo attribute Date: Fri, 27 Mar 2020 15:34:43 -0700 Message-Id: <20200327223443.6006-13-gwendal@chromium.org> X-Mailer: git-send-email 2.26.0.rc2.310.g2932bb562d-goog In-Reply-To: <20200327223443.6006-1-gwendal@chromium.org> References: <20200327223443.6006-1-gwendal@chromium.org> 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 Add buffer/hwfifo_flush. It is not part of the ABI, but it follows ST and HID lead: Tells the sensor hub to send to the host all pending sensor events. Signed-off-by: Gwendal Grignou --- No changes in v7. New in v6. .../cros_ec_sensors/cros_ec_sensors_core.c | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c index c831915ca7e56..aaf124a82e0e4 100644 --- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c +++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c @@ -113,6 +113,33 @@ static int cros_ec_sensor_set_ec_rate(struct cros_ec_sensors_core_state *st, return ret; } +static ssize_t cros_ec_sensors_flush(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t len) +{ + struct iio_dev *indio_dev = dev_to_iio_dev(dev); + struct cros_ec_sensors_core_state *st = iio_priv(indio_dev); + int ret = 0; + bool flush; + + ret = strtobool(buf, &flush); + if (ret < 0) + return ret; + if (!flush) + return -EINVAL; + + mutex_lock(&st->cmd_lock); + st->param.cmd = MOTIONSENSE_CMD_FIFO_FLUSH; + ret = cros_ec_motion_send_host_cmd(st, 0); + if (ret != 0) + dev_warn(&indio_dev->dev, "Unable to flush sensor\n"); + mutex_unlock(&st->cmd_lock); + return ret ? ret : len; +} + +static IIO_DEVICE_ATTR(hwfifo_flush, 0644, NULL, + cros_ec_sensors_flush, 0); + static ssize_t cros_ec_sensor_set_report_latency(struct device *dev, struct device_attribute *attr, const char *buf, size_t len) @@ -175,6 +202,7 @@ static ssize_t hwfifo_watermark_max_show(struct device *dev, static IIO_DEVICE_ATTR_RO(hwfifo_watermark_max, 0); const struct attribute *cros_ec_sensor_fifo_attributes[] = { + &iio_dev_attr_hwfifo_flush.dev_attr.attr, &iio_dev_attr_hwfifo_timeout.dev_attr.attr, &iio_dev_attr_hwfifo_watermark_max.dev_attr.attr, NULL, -- 2.26.0.rc2.310.g2932bb562d-goog