summaryrefslogtreecommitdiff
path: root/include/uapi/linux/virtio_i2c.h
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2021-10-21 12:47:49 +0300
committerMichael S. Tsirkin <mst@redhat.com>2021-11-01 12:26:48 +0300
commitdcce162559ee1ce5f64992c4c65197f9270e3d4f (patch)
treea6130ea2ab1b5b628b4fd77d276b894a39cf295f /include/uapi/linux/virtio_i2c.h
parentf1aa12f53529ccd67722241792f39248bc89d353 (diff)
downloadlinux-dcce162559ee1ce5f64992c4c65197f9270e3d4f.tar.xz
i2c: virtio: Add support for zero-length requests
The virtio specification received a new mandatory feature (VIRTIO_I2C_F_ZERO_LENGTH_REQUEST) for zero length requests. Fail if the feature isn't offered by the device. For each read-request, set the VIRTIO_I2C_FLAGS_M_RD flag, as required by the VIRTIO_I2C_F_ZERO_LENGTH_REQUEST feature. This allows us to support zero length requests, like SMBUS Quick, where the buffer need not be sent anymore. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Link: https://lore.kernel.org/r/7c58868cd26d2fc4bd82d0d8b0dfb55636380110.1634808714.git.viresh.kumar@linaro.org Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jie Deng <jie.deng@intel.com> # once the spec is merged
Diffstat (limited to 'include/uapi/linux/virtio_i2c.h')
-rw-r--r--include/uapi/linux/virtio_i2c.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/uapi/linux/virtio_i2c.h b/include/uapi/linux/virtio_i2c.h
index 7c6a6fc01ad6..acf3b6069136 100644
--- a/include/uapi/linux/virtio_i2c.h
+++ b/include/uapi/linux/virtio_i2c.h
@@ -11,9 +11,15 @@
#include <linux/const.h>
#include <linux/types.h>
+/* Virtio I2C Feature bits */
+#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0
+
/* The bit 0 of the @virtio_i2c_out_hdr.@flags, used to group the requests */
#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0)
+/* The bit 1 of the @virtio_i2c_out_hdr.@flags, used to mark a buffer as read */
+#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1)
+
/**
* struct virtio_i2c_out_hdr - the virtio I2C message OUT header
* @addr: the controlled device address