acpi_iommu_configure_id() currently supports only IORT (ARM) and VIOT.
Add support for RISC-V as well.
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/scan.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index fb1fe9f3b1a3..70f57d58fd61 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -11,6 +11,7 @@
#include <linux/kernel.h>
#include <linux/acpi.h>
#include <linux/acpi_iort.h>
+#include <linux/acpi_rimt.h>
#include <linux/acpi_viot.h>
#include <linux/iommu.h>
#include <linux/signal.h>
@@ -1628,8 +1629,12 @@ static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in)
}
err = iort_iommu_configure_id(dev, id_in);
- if (err && err != -EPROBE_DEFER)
- err = viot_iommu_configure(dev);
+ if (err && err != -EPROBE_DEFER) {
+ err = rimt_iommu_configure_id(dev, id_in);
+ if (err && err != -EPROBE_DEFER)
+ err = viot_iommu_configure(dev);
+ }
+
mutex_unlock(&iommu_probe_device_lock);
return err;
--
2.43.0
On Mon, Jun 30, 2025 at 09:18:02AM +0530, Sunil V L wrote: > acpi_iommu_configure_id() currently supports only IORT (ARM) and VIOT. > Add support for RISC-V as well. > > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/acpi/scan.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index fb1fe9f3b1a3..70f57d58fd61 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -11,6 +11,7 @@ > #include <linux/kernel.h> > #include <linux/acpi.h> > #include <linux/acpi_iort.h> > +#include <linux/acpi_rimt.h> > #include <linux/acpi_viot.h> > #include <linux/iommu.h> > #include <linux/signal.h> > @@ -1628,8 +1629,12 @@ static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > } > > err = iort_iommu_configure_id(dev, id_in); > - if (err && err != -EPROBE_DEFER) > - err = viot_iommu_configure(dev); > + if (err && err != -EPROBE_DEFER) { > + err = rimt_iommu_configure_id(dev, id_in); > + if (err && err != -EPROBE_DEFER) > + err = viot_iommu_configure(dev); > + } This can just be err = iort_iommu_configure_id(dev, id_in); if (err... err = rimt_iommu_configure_id(dev, id_in); if (err... err = viot_iommu_configure(dev); Thanks, drew > + > mutex_unlock(&iommu_probe_device_lock); > > return err; > -- > 2.43.0 >
On Mon, Jun 30, 2025 at 10:02:53AM +0200, Andrew Jones wrote: > On Mon, Jun 30, 2025 at 09:18:02AM +0530, Sunil V L wrote: > > acpi_iommu_configure_id() currently supports only IORT (ARM) and VIOT. > > Add support for RISC-V as well. > > > > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> > > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > --- > > drivers/acpi/scan.c | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > > index fb1fe9f3b1a3..70f57d58fd61 100644 > > --- a/drivers/acpi/scan.c > > +++ b/drivers/acpi/scan.c > > @@ -11,6 +11,7 @@ > > #include <linux/kernel.h> > > #include <linux/acpi.h> > > #include <linux/acpi_iort.h> > > +#include <linux/acpi_rimt.h> > > #include <linux/acpi_viot.h> > > #include <linux/iommu.h> > > #include <linux/signal.h> > > @@ -1628,8 +1629,12 @@ static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > > } > > > > err = iort_iommu_configure_id(dev, id_in); > > - if (err && err != -EPROBE_DEFER) > > - err = viot_iommu_configure(dev); > > + if (err && err != -EPROBE_DEFER) { > > + err = rimt_iommu_configure_id(dev, id_in); > > + if (err && err != -EPROBE_DEFER) > > + err = viot_iommu_configure(dev); > > + } > > This can just be > > err = iort_iommu_configure_id(dev, id_in); > if (err... > err = rimt_iommu_configure_id(dev, id_in); > if (err... > err = viot_iommu_configure(dev); > > Thanks, > drew > Sure. Let me update in the next version. Thanks! Sunil
© 2016 - 2025 Red Hat, Inc.