Commit 7977a08e authored by Jason Gunthorpe's avatar Jason Gunthorpe Committed by Joerg Roedel

iommu/fsl: Move ENODEV to fsl_pamu_probe_device()

The expectation is for the probe op to return ENODEV if the iommu is not
able to support the device. Move the check for fsl,liodn to
fsl_pamu_probe_device() simplify fsl_pamu_device_group()
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Tested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/2-v2-ce71068deeec+4cf6-fsl_rm_groups_jgg@nvidia.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 5f648972
...@@ -427,23 +427,28 @@ static struct iommu_group *get_pci_device_group(struct pci_dev *pdev) ...@@ -427,23 +427,28 @@ static struct iommu_group *get_pci_device_group(struct pci_dev *pdev)
static struct iommu_group *fsl_pamu_device_group(struct device *dev) static struct iommu_group *fsl_pamu_device_group(struct device *dev)
{ {
struct iommu_group *group = ERR_PTR(-ENODEV);
int len;
/* /*
* For platform devices we allocate a separate group for * For platform devices we allocate a separate group for
* each of the devices. * each of the devices.
*/ */
if (dev_is_pci(dev)) if (!dev_is_pci(dev))
group = get_pci_device_group(to_pci_dev(dev));
else if (of_get_property(dev->of_node, "fsl,liodn", &len))
return generic_device_group(dev); return generic_device_group(dev);
return group; return get_pci_device_group(to_pci_dev(dev));
} }
static struct iommu_device *fsl_pamu_probe_device(struct device *dev) static struct iommu_device *fsl_pamu_probe_device(struct device *dev)
{ {
int len;
/*
* uboot must fill the fsl,liodn for platform devices to be supported by
* the iommu.
*/
if (!dev_is_pci(dev) &&
!of_get_property(dev->of_node, "fsl,liodn", &len))
return ERR_PTR(-ENODEV);
return &pamu_iommu; return &pamu_iommu;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment