virtio: Expose VIRTIO_F_IOMMU_PLATFORM in device features
authorWill Deacon <willdeacon@google.com>
Wed, 29 Mar 2023 14:24:55 +0000 (22:24 +0800)
committerTom Rini <trini@konsulko.com>
Tue, 25 Apr 2023 15:53:15 +0000 (11:53 -0400)
If we detect the VIRTIO_F_IOMMU_PLATFORM transport feature for a device,
then expose it in the device features.

Signed-off-by: Will Deacon <willdeacon@google.com>
[ Paul: pick from the Android tree. Rebase to the upstream ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Link: https://android.googlesource.com/platform/external/u-boot/+/9693bd26bfcfe77d6a1295a561420e08c5daf019
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/virtio/virtio-uclass.c

index de9bc90..b3fb3db 100644 (file)
@@ -336,7 +336,7 @@ static int virtio_uclass_child_pre_probe(struct udevice *vdev)
        /* Transport features always preserved to pass to finalize_features */
        for (i = VIRTIO_TRANSPORT_F_START; i < VIRTIO_TRANSPORT_F_END; i++)
                if ((device_features & (1ULL << i)) &&
-                   (i == VIRTIO_F_VERSION_1))
+                   (i == VIRTIO_F_VERSION_1 || i == VIRTIO_F_IOMMU_PLATFORM))
                        __virtio_set_bit(vdev->parent, i);
 
        debug("(%s) final negotiated features supported %016llx\n",