From: Vitor Soares <Vitor.Soares@synopsys.com> To: linux-kernel@vger.kernel.org, linux-i3c@lists.infradead.org Cc: Joao.Pinto@synopsys.com, arnd@arndb.de, wsa@the-dreams.de, gregkh@linuxfoundation.org, bbrezillon@kernel.org, Vitor Soares <Vitor.Soares@synopsys.com>, broonie@kernel.org Subject: [RFC 3/5] i3c: device: expose transfer strutures to uapi Date: Tue, 10 Dec 2019 16:37:31 +0100 Message-ID: <fcc51a2758fd7920e1c0163a818fe7c12bd33765.1575977795.git.vitor.soares@synopsys.com> (raw) In-Reply-To: <cover.1575977795.git.vitor.soares@synopsys.com> In-Reply-To: <cover.1575977795.git.vitor.soares@synopsys.com> Move i3c transfer related structures to uapi, so they can be access by userspace. Signed-off-by: Vitor Soares <vitor.soares@synopsys.com> --- include/linux/i3c/device.h | 54 +-------------------------------- include/uapi/linux/i3c/device.h | 66 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 53 deletions(-) create mode 100644 include/uapi/linux/i3c/device.h diff --git a/include/linux/i3c/device.h b/include/linux/i3c/device.h index de102e4..1df05c2 100644 --- a/include/linux/i3c/device.h +++ b/include/linux/i3c/device.h @@ -14,59 +14,7 @@ #include <linux/kconfig.h> #include <linux/mod_devicetable.h> #include <linux/module.h> - -/** - * enum i3c_error_code - I3C error codes - * - * These are the standard error codes as defined by the I3C specification. - * When -EIO is returned by the i3c_device_do_priv_xfers() or - * i3c_device_send_hdr_cmds() one can check the error code in - * &struct_i3c_priv_xfer.err or &struct i3c_hdr_cmd.err to get a better idea of - * what went wrong. - * - * @I3C_ERROR_UNKNOWN: unknown error, usually means the error is not I3C - * related - * @I3C_ERROR_M0: M0 error - * @I3C_ERROR_M1: M1 error - * @I3C_ERROR_M2: M2 error - */ -enum i3c_error_code { - I3C_ERROR_UNKNOWN = 0, - I3C_ERROR_M0 = 1, - I3C_ERROR_M1, - I3C_ERROR_M2, -}; - -/** - * enum i3c_hdr_mode - HDR mode ids - * @I3C_HDR_DDR: DDR mode - * @I3C_HDR_TSP: TSP mode - * @I3C_HDR_TSL: TSL mode - */ -enum i3c_hdr_mode { - I3C_HDR_DDR, - I3C_HDR_TSP, - I3C_HDR_TSL, -}; - -/** - * struct i3c_priv_xfer - I3C SDR private transfer - * @rnw: encodes the transfer direction. true for a read, false for a write - * @len: transfer length in bytes of the transfer - * @data: input/output buffer - * @data.in: input buffer. Must point to a DMA-able buffer - * @data.out: output buffer. Must point to a DMA-able buffer - * @err: I3C error code - */ -struct i3c_priv_xfer { - u8 rnw; - u16 len; - union { - void *in; - const void *out; - } data; - enum i3c_error_code err; -}; +#include <uapi/linux/i3c/device.h> /** * enum i3c_dcr - I3C DCR values diff --git a/include/uapi/linux/i3c/device.h b/include/uapi/linux/i3c/device.h new file mode 100644 index 0000000..edbb14d --- /dev/null +++ b/include/uapi/linux/i3c/device.h @@ -0,0 +1,66 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2019 Synopsys, Inc. and/or its affiliates. + * + * Author: Vitor Soares <vitor.soares@synopsys.com> + */ + +#ifndef _UAPI_LINUX_I3C_DEVICE_H +#define _UAPI_LINUX_I3C_DEVICE_H + +#include <linux/types.h> + +/** + * enum i3c_error_code - I3C error codes + * + * These are the standard error codes as defined by the I3C specification. + * When -EIO is returned by the i3c_device_do_priv_xfers() or + * i3c_device_send_hdr_cmds() one can check the error code in + * &struct_i3c_priv_xfer.err or &struct i3c_hdr_cmd.err to get a better idea of + * what went wrong. + * + * @I3C_ERROR_UNKNOWN: unknown error, usually means the error is not I3C + * related + * @I3C_ERROR_M0: M0 error + * @I3C_ERROR_M1: M1 error + * @I3C_ERROR_M2: M2 error + */ +enum i3c_error_code { + I3C_ERROR_UNKNOWN = 0, + I3C_ERROR_M0 = 1, + I3C_ERROR_M1, + I3C_ERROR_M2, +}; + +/** + * enum i3c_hdr_mode - HDR mode ids + * @I3C_HDR_DDR: DDR mode + * @I3C_HDR_TSP: TSP mode + * @I3C_HDR_TSL: TSL mode + */ +enum i3c_hdr_mode { + I3C_HDR_DDR, + I3C_HDR_TSP, + I3C_HDR_TSL, +}; + +/** + * struct i3c_priv_xfer - I3C SDR private transfer + * @rnw: encodes the transfer direction. true for a read, false for a write + * @len: transfer length in bytes of the transfer + * @data: input/output buffer + * @data.in: input buffer. Must point to a DMA-able buffer + * @data.out: output buffer. Must point to a DMA-able buffer + * @err: I3C error code + */ +struct i3c_priv_xfer { + u8 rnw; + u16 len; + union { + void *in; + const void *out; + } data; + enum i3c_error_code err; +}; + +#endif /* _UAPI_LINUX_I3C_DEVICE_H */ -- 2.7.4 _______________________________________________ linux-i3c mailing list linux-i3c@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-i3c
next prev parent reply index Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-10 15:37 [RFC 0/5] Introduce i3c device userspace interface Vitor Soares 2019-12-10 15:37 ` [RFC 1/5] i3c: master: export i3c_masterdev_type Vitor Soares 2019-12-10 15:37 ` [RFC 2/5] i3c: master: export i3c_bus_type symbol Vitor Soares 2019-12-10 15:37 ` Vitor Soares [this message] 2019-12-12 14:42 ` [RFC 3/5] i3c: device: expose transfer strutures to uapi Greg KH 2019-12-12 14:48 ` Vitor Soares 2019-12-10 15:37 ` [RFC 4/5] i3c: master: add i3c_for_each_dev helper Vitor Soares 2019-12-10 15:37 ` [RFC 5/5] i3c: add i3cdev module to expose i3c dev in /dev Vitor Soares 2019-12-10 17:51 ` Arnd Bergmann 2019-12-10 19:15 ` Vitor Soares 2019-12-10 19:37 ` Arnd Bergmann 2019-12-11 15:07 ` Vitor Soares 2019-12-11 15:33 ` Arnd Bergmann 2019-12-20 12:39 ` Vitor Soares 2019-12-12 14:44 ` Greg KH 2019-12-12 14:56 ` Vitor Soares 2019-12-12 16:00 ` Greg KH 2019-12-12 17:25 ` Vitor Soares 2019-12-12 17:32 ` Greg KH 2019-12-12 14:46 ` Greg KH
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=fcc51a2758fd7920e1c0163a818fe7c12bd33765.1575977795.git.vitor.soares@synopsys.com \ --to=vitor.soares@synopsys.com \ --cc=Joao.Pinto@synopsys.com \ --cc=arnd@arndb.de \ --cc=bbrezillon@kernel.org \ --cc=broonie@kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-i3c@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=wsa@the-dreams.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-i3c Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-i3c/0 linux-i3c/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-i3c linux-i3c/ https://lore.kernel.org/linux-i3c \ linux-i3c@lists.infradead.org public-inbox-index linux-i3c Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.infradead.lists.linux-i3c AGPL code for this site: git clone https://public-inbox.org/public-inbox.git