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@linaro.org
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 Dengjie.deng@intel.com 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 ?