mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-15 22:41:38 +00:00
firmware: arm_scmi: Make virtio Version_1 compliance optional
Introduce a compilation option to disable strict enforcement of compliance against VirtIO Version_1 backends, so as to allow to support also Legacy VirtIO devices implementations. Link: https://lore.kernel.org/r/20211115102910.7639-1-cristian.marussi@arm.com Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This commit is contained in:
committed by
Sudeep Holla
parent
5f90f189a0
commit
530897ecdb
@@ -89,6 +89,21 @@ config ARM_SCMI_TRANSPORT_VIRTIO
|
||||
If you want the ARM SCMI PROTOCOL stack to include support for a
|
||||
transport based on VirtIO, answer Y.
|
||||
|
||||
config ARM_SCMI_TRANSPORT_VIRTIO_VERSION1_COMPLIANCE
|
||||
bool "SCMI VirtIO transport Version 1 compliance"
|
||||
depends on ARM_SCMI_TRANSPORT_VIRTIO
|
||||
default y
|
||||
help
|
||||
This enforces strict compliance with VirtIO Version 1 specification.
|
||||
|
||||
If you want the ARM SCMI VirtIO transport layer to refuse to work
|
||||
with Legacy VirtIO backends and instead support only VirtIO Version 1
|
||||
devices (or above), answer Y.
|
||||
|
||||
If you want instead to support also old Legacy VirtIO backends (like
|
||||
the ones implemented by kvmtool) and let the core Kernel VirtIO layer
|
||||
take care of the needed conversions, say N.
|
||||
|
||||
endif #ARM_SCMI_PROTOCOL
|
||||
|
||||
config ARM_SCMI_POWER_DOMAIN
|
||||
|
||||
@@ -459,12 +459,13 @@ static void scmi_vio_remove(struct virtio_device *vdev)
|
||||
|
||||
static int scmi_vio_validate(struct virtio_device *vdev)
|
||||
{
|
||||
#ifdef CONFIG_ARM_SCMI_TRANSPORT_VIRTIO_VERSION1_COMPLIANCE
|
||||
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;
|
||||
}
|
||||
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user