> >  static int __init vfio_iommu_type1_init(void)
> >  {
> > -   if (!iommu_present(&pci_bus_type))
> > +#ifdef CONFIG_PCI
> > +   if (iommu_present(&pci_bus_type)) {
> > +           iommu_bus_type = &pci_bus_type;
> > +           /* For PCI targets, IOMMU_CAP_INTR_REMAP is required */
> > +           require_cap_intr_remap = true;
> > +   }
> > +#endif
> > +   if (!iommu_bus_type && iommu_present(&platform_bus_type))
> > +           iommu_bus_type = &platform_bus_type;
> > +
> > +   if(!iommu_bus_type)
> >             return -ENODEV;
> >
> >     return vfio_register_iommu_driver(&vfio_iommu_driver_ops_type1);
> 
> Is it possible to have a system with both PCI and platform devices?  How
> would you support that?  Thanks,

It most certainly is a requirement to support both.  This is how
all of our (FSL) SoCs will expect to work.

I need to understand better why 'iommu_bus_type' exists at
all...

Stuart

Reply via email to