return iommu_fwspec_add_ids(dev, &id, 1);
 }
 
-static inline const struct iommu_ops *acpi_iommu_fwspec_ops(struct device *dev)
-{
-       struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
-
-       return fwspec ? fwspec->ops : NULL;
-}
-
 static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in)
 {
        int err;
-       const struct iommu_ops *ops;
 
        /* Serialise to make dev->iommu stable under our potential fwspec */
        mutex_lock(&iommu_probe_device_lock);
-       /*
-        * If we already translated the fwspec there is nothing left to do,
-        * return the iommu_ops.
-        */
-       ops = acpi_iommu_fwspec_ops(dev);
-       if (ops) {
+       /* If we already translated the fwspec there is nothing left to do */
+       if (dev_iommu_fwspec_get(dev)) {
                mutex_unlock(&iommu_probe_device_lock);
                return 0;
        }
        if (!err && dev->bus)
                err = iommu_probe_device(dev);
 
-       if (err == -EPROBE_DEFER)
-               return err;
-       if (err) {
-               dev_dbg(dev, "Adding to IOMMU failed: %d\n", err);
-               return err;
-       }
-       if (!acpi_iommu_fwspec_ops(dev))
-               return -ENODEV;
-       return 0;
+       return err;
 }
 
 #else /* !CONFIG_IOMMU_API */
        ret = acpi_iommu_configure_id(dev, input_id);
        if (ret == -EPROBE_DEFER)
                return -EPROBE_DEFER;
+       if (ret)
+               dev_dbg(dev, "Adding to IOMMU failed: %d\n", ret);
 
        arch_setup_dma_ops(dev, attr == DEV_DMA_COHERENT);