On 2021/10/21 17:47, Viresh Kumar wrote:
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@xxxxxxxxxx>
---
Hi Wolfram,
Please do not apply this until the spec changes [1] are merged, sending it early
to get review done. I will ping you later once the spec is merged.
[1] https://lists.oasis-open.org/archives/virtio-dev/202110/msg00109.html
drivers/i2c/busses/i2c-virtio.c | 56 ++++++++++++++++++---------------
include/uapi/linux/virtio_i2c.h | 6 ++++
2 files changed, 36 insertions(+), 26 deletions(-)
Acked-by: Jie Deng<jie.deng@xxxxxxxxx> once the spec is merged.
+ if (!virtio_has_feature(vdev, VIRTIO_I2C_F_ZERO_LENGTH_REQUEST)) {
+ dev_err(&vdev->dev, "Zero-length request feature is mandatory\n");
+ return -EINVAL;
It might be better to return -EOPNOTSUPP ?