Re: [PATCH v4 14/16] firmware: arm_scmi: Add virtio transport

From: Peter Hilber
Date: Thu Jul 01 2021 - 04:43:15 EST


On 11.06.21 18:59, Cristian Marussi wrote:

<snip>

+static struct virtio_driver virtio_scmi_driver = {
+ .driver.name = "scmi-virtio",
+ .driver.owner = THIS_MODULE,
+ .feature_table = features,
+ .feature_table_size = ARRAY_SIZE(features),
+ .id_table = id_table,
+ .probe = scmi_vio_probe,
+ .remove = scmi_vio_remove,
+};
+

It might be good to also check for the VIRTIO_F_VERSION_1 feature bit in the optional .validate op (not yet implemented above), as some other devices do (quoting virtio-snd in the following):

/**
* virtsnd_validate() - Validate if the device can be started.
* @vdev: VirtIO parent device.
*
* Context: Any context.
* Return: 0 on success, -EINVAL on failure.
*/
static int virtsnd_validate(struct virtio_device *vdev)
{

<snip>


if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1)) {
dev_err(&vdev->dev,
"device does not comply with spec version 1.x\n");
return -EINVAL;
}


<snip>


static struct virtio_driver virtsnd_driver = {
.driver.name = KBUILD_MODNAME,
.driver.owner = THIS_MODULE,
.id_table = id_table,
.validate = virtsnd_validate,

(end of virtio-snd quote)