mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 07:04:28 +00:00
iommu: dont fail silently
When attempting to probe a device which has an associated IOMMU, if the IOMMU device can't be found (no driver, disabled driver, driver failed to probe, etc) then we currently fail to probe the device with no discernable error. If we fail to hook the device up to its IOMMU, we should make sure that the user knows about it. Write some better error messages for dev_iommu_enable() to facilitate this. Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
This commit is contained in:
parent
9d92c418ac
commit
b185618011
1 changed files with 8 additions and 5 deletions
|
@ -86,16 +86,16 @@ int dev_iommu_enable(struct udevice *dev)
|
|||
ret = dev_read_phandle_with_args(dev, "iommus",
|
||||
"#iommu-cells", 0, i, &args);
|
||||
if (ret) {
|
||||
debug("%s: dev_read_phandle_with_args failed: %d\n",
|
||||
__func__, ret);
|
||||
log_err("%s: Failed to parse 'iommus' property for '%s': %d\n",
|
||||
__func__, dev->name, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = uclass_get_device_by_ofnode(UCLASS_IOMMU, args.node,
|
||||
&dev_iommu);
|
||||
if (ret) {
|
||||
debug("%s: uclass_get_device_by_ofnode failed: %d\n",
|
||||
__func__, ret);
|
||||
log_err("%s: Failed to find IOMMU device for '%s': %d\n",
|
||||
__func__, dev->name, ret);
|
||||
return ret;
|
||||
}
|
||||
dev->iommu = dev_iommu;
|
||||
|
@ -106,8 +106,11 @@ int dev_iommu_enable(struct udevice *dev)
|
|||
ops = device_get_ops(dev->iommu);
|
||||
if (ops && ops->connect) {
|
||||
ret = ops->connect(dev);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
log_err("%s: Failed to connect '%s' to IOMMU '%s': %d\n",
|
||||
__func__, dev->name, dev->iommu->name, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue