On Wed, May 20, 2015 at 03:10:24PM +0900, Alexandre Courbot wrote: > The lack of IOMMU API support can make nouveau_platform_probe_iommu() > fail to compile because struct iommu_ops is then empty. Fix this by > skipping IOMMU probe in that case - lack of IOMMU on platform devices > is sub-optimal, but is not an error. > > Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx> > --- > This is an alternative to https://lkml.org/lkml/2015/5/19/484. Most users > of Nouveau do not care about IOMMU support, so we should not impose that > option on them. > > drm/nouveau/nouveau_platform.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_platform.c b/drivers/gpu/drm/nouveau/nouveau_platform.c > index 775277f1edb0..dcfbbfaf1739 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_platform.c > +++ b/drivers/gpu/drm/nouveau/nouveau_platform.c > @@ -92,6 +92,8 @@ static int nouveau_platform_power_down(struct nouveau_platform_gpu *gpu) > return 0; > } > > +#if IS_ENABLED(CONFIG_IOMMU_API) > + > static void nouveau_platform_probe_iommu(struct device *dev, > struct nouveau_platform_gpu *gpu) > { > @@ -158,6 +160,20 @@ static void nouveau_platform_remove_iommu(struct device *dev, > } > } > > +#else > + > +static void nouveau_platform_probe_iommu(struct device *dev, > + struct nouveau_platform_gpu *gpu) > +{ > +} > + > +static void nouveau_platform_remove_iommu(struct device *dev, > + struct nouveau_platform_gpu *gpu) > +{ > +} > + > +#endif > + Since these are all static functions, perhaps an "if (IS_ENABLED(...))" would work here? That way you'd get compile coverage of the code in all cases. But perhaps that doesn't work for IOMMU. I have a vague memory of running across something like this before and IOMMU has this quirk of defining struct iommu_ops as empty if IOMMU_API is deselected so you'll probably get compiler errors unless you actually preprocess the code out. Thierry
Attachment:
pgpMoKbdpSVPV.pgp
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel