Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4869863ybv; Mon, 17 Feb 2020 07:29:16 -0800 (PST) X-Google-Smtp-Source: APXvYqwNx/JMJtP2tYymOzZ0a8DGPwUyo9Ee4vnQWx+l6qXJEdEhHkLhVFSUv0+PcsGuuhImrHn7 X-Received: by 2002:a9d:65da:: with SMTP id z26mr12770030oth.197.1581953356589; Mon, 17 Feb 2020 07:29:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581953356; cv=none; d=google.com; s=arc-20160816; b=hXmPzhxjuwuNmGK6W4BndZGUTfUOJFniunwWtxs9DQDQ1UUoLNF83IrvimOd9/9PCF E5asutfDY2whYePru6uFUspbTqMk7N/its4GY0+COCVPIAUMTiTlwU6cIr0uiQlj4zFr A9ryxFTzsKJ5ddf+QduI/Nb+/6j2/EPWudLnwKulQgGHItxoMNyQanY7Eq2ChFx4vk6r vOuE1qZBxff6rYkOl0MDJD3oiRXtPcIqdEA7oiuAGxJ2oWtg4qLautw3KellEHKuxdsL Lo6YCnn/NJSKhzP1TmRXf7KI04YSl1RdHHXH94ZJWprL67Bx5GJycoUPVu+LYyhi1WHJ Ot2w== 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 :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=G4LKSnvPSXExIyTtpTG0n2VfgFFVanN6Pd06x2LNZ9I=; b=BzabOXunNNO35AgmoA72rfeMStrBwiREZILc9gDRRt+guh3vs+8x/Fc0dQWHV3TWLO ZgFGvSQnIQkAuzwzB86gvfN0R/XVQekIGA44KsZ9wuyppkl9dnWwjD4w7HBjLaGVi3MU P6PSYtPEXfY4SLDBxCz9yHh/DdtphNMAlu9CH5DL7/chtfU8B51dKQ4c7/R7VpWT4TEP 3Xhb4SM7G8RhT3/WofGae81H0ETsWLZ6yDOxNjj6GFAFxZ37cAvCVEvRQZ740o4c0XCX ixN6wn06Qykk2uN1fX93qN1sWF2Co8eapE+jQyzvpXqb607QPNT2CSxo7PVQgnYOuQUY Y/eg== 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=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s7si299747otd.280.2020.02.17.07.29.03; Mon, 17 Feb 2020 07:29:16 -0800 (PST) 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=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727448AbgBQP0t (ORCPT + 99 others); Mon, 17 Feb 2020 10:26:49 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:41570 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726528AbgBQP0s (ORCPT ); Mon, 17 Feb 2020 10:26:48 -0500 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 7A8B72939C1; Mon, 17 Feb 2020 15:26:47 +0000 (GMT) Date: Mon, 17 Feb 2020 16:26:44 +0100 From: Boris Brezillon To: Vitor Soares Cc: linux-kernel@vger.kernel.org, linux-i3c@lists.infradead.org, Joao.Pinto@synopsys.com, Jose.Abreu@synopsys.com, bbrezillon@kernel.org, gregkh@linuxfoundation.org, wsa@the-dreams.de, arnd@arndb.de, broonie@kernel.org Subject: Re: [RFC v2 4/4] i3c: add i3cdev module to expose i3c dev in /dev Message-ID: <20200217162644.7f305d58@collabora.com> In-Reply-To: <442a0c2c52223f9ff1a1d1018ff863fb23105389.1580299067.git.vitor.soares@synopsys.com> References: <442a0c2c52223f9ff1a1d1018ff863fb23105389.1580299067.git.vitor.soares@synopsys.com> Organization: Collabora X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 29 Jan 2020 13:17:35 +0100 Vitor Soares wrote: > diff --git a/include/uapi/linux/i3c/i3cdev.h b/include/uapi/linux/i3c/i3cdev.h > new file mode 100644 > index 0000000..0897313 > --- /dev/null > +++ b/include/uapi/linux/i3c/i3cdev.h > @@ -0,0 +1,38 @@ > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > +/* > + * Copyright (c) 2019 Synopsys, Inc. and/or its affiliates. > + * > + * Author: Vitor Soares > + */ > + > +#ifndef _UAPI_I3C_DEV_H_ > +#define _UAPI_I3C_DEV_H_ > + > +#include > +#include > + > +/* IOCTL commands */ > +#define I3C_DEV_IOC_MAGIC 0x07 I guess you already made sure there was no collision with other magic values. > + > +/** > + * struct i3c_ioc_priv_xfer - I3C SDR ioctl private transfer > + * @data: Holds pointer to userspace buffer with transmit data. > + * @len: Length of data buffer buffers, in bytes. > + * @rnw: encodes the transfer direction. true for a read, false for a write > + */ > +struct i3c_ioc_priv_xfer { > + __u64 data; > + __u16 len; > + __u8 rnw; > + __u8 pad[5]; > +}; > + > + > +#define I3C_PRIV_XFER_SIZE(N) \ > + ((((sizeof(struct i3c_ioc_priv_xfer)) * (N)) < (1 << _IOC_SIZEBITS)) \ > + ? ((sizeof(struct i3c_ioc_priv_xfer)) * (N)) : 0) > + > +#define I3C_IOC_PRIV_XFER(N) \ > + _IOC(_IOC_READ|_IOC_WRITE, I3C_DEV_IOC_MAGIC, 30, I3C_PRIV_XFER_SIZE(N)) Any reason for starting at 30 instead of 0x0 or 0x1? Also, this ioctl definition is a bit unusual. Most of the time, when we want to pass an array of elements we pass a struct that contains the number of entries in this array, and a pointer to the array itself. struct i3cdev_priv_xfers { __u64 nxfers; __u64 xfers; /*Use u64_to_user_ptr() to get the __user pointer*/ }; > + > +#endif