summaryrefslogtreecommitdiff
path: root/drivers/virtio/virtio-uclass.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/virtio/virtio-uclass.c')
-rw-r--r--drivers/virtio/virtio-uclass.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/virtio/virtio-uclass.c b/drivers/virtio/virtio-uclass.c
index de9bc90359c..31bb21c534e 100644
--- a/drivers/virtio/virtio-uclass.c
+++ b/drivers/virtio/virtio-uclass.c
@@ -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",
@@ -373,6 +373,12 @@ static int virtio_bootdev_hunt(struct bootdev_hunter *info, bool show)
{
int ret;
+ if (IS_ENABLED(CONFIG_PCI)) {
+ ret = uclass_probe_all(UCLASS_PCI);
+ if (ret && ret != -ENOENT)
+ return log_msg_ret("pci", ret);
+ }
+
ret = uclass_probe_all(UCLASS_VIRTIO);
if (ret && ret != -ENOENT)
return log_msg_ret("vir", ret);