On Sun, Sep 24, 2017 at 12:04:54PM +0300, Mikko Perttunen wrote: > Devices in the host1x bus rely on the old behavior of of_dma_configure > to set up DMA ops. Add a check for them into of_dma_configure. > > We must do the check using a string comparison instead of using > pointers since the host1x bus can be compiled into a module. > > Fixes: 723288836628 ("of: restrict DMA configuration") > Signed-off-by: Mikko Perttunen <mperttunen@xxxxxxxxxx> > --- > drivers/of/device.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/of/device.c b/drivers/of/device.c > index 64b710265d39..12368418cd33 100644 > --- a/drivers/of/device.c > +++ b/drivers/of/device.c > @@ -104,6 +104,9 @@ int of_dma_configure(struct device *dev, struct device_node *np) > if (!dev_is_pci(dev) && > #ifdef CONFIG_ARM_AMBA > dev->bus != &amba_bustype && > +#endif > +#if IS_ENABLED(CONFIG_TEGRA_HOST1X) > + !(dev->bus && !strcmp("host1x", dev->bus->name)) && > #endif > dev->bus != &platform_bus_type) > return ret == -ENODEV ? 0 : ret; Maybe a slightly better solution would be to add a dev_is_host1x() function that returns dev->bus == &host1x_bus_type if TEGRA_HOST1X is enabled and returns false otherwise. That way we can have a "proper" check for the bus type and avoid the #if in this file. It's slightly more complicated because of the dependencies between the DT and Tegra DRM trees, but I'm sure we can get Rob to either give his Acked-by on the drivers/of/device.c change or carry the Tegra DRM patch in the DT tree. Thierry
Attachment:
signature.asc
Description: PGP signature