On 19/10/17 23:08, Dmitry Osipenko wrote: > Currently fuse driver requests DMA channel from an arbitrary DMA device, > it is not a problem since there is only one DMA provider for Tegra20 yet, > but it may become troublesome if another provider will appear. > > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > --- > drivers/soc/tegra/fuse/fuse-tegra20.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/tegra/fuse/fuse-tegra20.c b/drivers/soc/tegra/fuse/fuse-tegra20.c > index 27e9ac7d3165..49ff017f3ded 100644 > --- a/drivers/soc/tegra/fuse/fuse-tegra20.c > +++ b/drivers/soc/tegra/fuse/fuse-tegra20.c > @@ -96,6 +96,13 @@ static u32 tegra20_fuse_read(struct tegra_fuse *fuse, unsigned int offset) > return value; > } > > +static bool dma_filter(struct dma_chan *chan, void *filter_param) > +{ > + struct device_node *np = chan->device->dev->of_node; > + > + return of_device_is_compatible(np, "nvidia,tegra20-apbdma"); > +} > + > static int tegra20_fuse_probe(struct tegra_fuse *fuse) > { > dma_cap_mask_t mask; > @@ -103,7 +110,7 @@ static int tegra20_fuse_probe(struct tegra_fuse *fuse) > dma_cap_zero(mask); > dma_cap_set(DMA_SLAVE, mask); > > - fuse->apbdma.chan = dma_request_channel(mask, NULL, NULL); > + fuse->apbdma.chan = __dma_request_channel(&mask, dma_filter, NULL); > if (!fuse->apbdma.chan) > return -EPROBE_DEFER; > Thanks! Acked-by: Jon Hunter <jonathanh@xxxxxxxxxx> Thierry, these are ready for queuing. Cheers Jon -- nvpublic -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html