RE: [PATCH] dma-mapping: move dma configuration to bus infrastructure

From: Nipun Gupta
Date: Tue Mar 13 2018 - 00:23:11 EST




> -----Original Message-----
> From: Sinan Kaya [mailto:okaya@xxxxxxxxxxxxxx]
> Sent: Monday, March 12, 2018 22:14
> To: Nipun Gupta <nipun.gupta@xxxxxxx>; hch@xxxxxx;
> robin.murphy@xxxxxxx; linux@xxxxxxxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx;
> m.szyprowski@xxxxxxxxxxx; bhelgaas@xxxxxxxxxx
> Cc: dmitry.torokhov@xxxxxxxxx; rafael.j.wysocki@xxxxxxxxx;
> jarkko.sakkinen@xxxxxxxxxxxxxxx; linus.walleij@xxxxxxxxxx; johan@xxxxxxxxxx;
> msuchanek@xxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; iommu@xxxxxxxxxxxx
> foundation.org; linux-pci@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] dma-mapping: move dma configuration to bus
> infrastructure
>
> On 3/12/2018 11:24 AM, Nipun Gupta wrote:
> > + if (dma_dev->of_node) {
> > + ret = of_dma_configure(dev, dma_dev->of_node);
> > + } else if (has_acpi_companion(dma_dev)) {
> > + attr = acpi_get_dma_attr(to_acpi_device_node(dma_dev-
> >fwnode));
> > + if (attr != DEV_DMA_NOT_SUPPORTED)
> > + ret = acpi_dma_configure(dev, attr);
> > + }
> > +
> > + pci_put_host_bridge_device(bridge);
> > +
> > + return ret;
> > +}
> > +
> > +void pci_dma_deconfigure(struct device *dev)
> > +{
> > + of_dma_deconfigure(dev);
> > + acpi_dma_deconfigure(dev);
> > +}
>
> Isn't this one or the other one but not both?
>
> Something like:
>
> if (dev->of_node)
> of_dma_deconfigure(dev);
> else
> acpi_dma_deconfigure(dev);
>
> should work.

I understand your point. Seems reasonable as we should not expect
the 'of/acpi DMA deconfigure' API to not fail when they are not configured.

But, here we would also need to get dma_device (just as we get in
'pci_dma_configure') and need a check on it as for PCI there 'of_node'
is present in the dma_dev.

Ill update this in v2, and also make similar changes for platform and AMBA bus.

Thanks,
Nipun

>
> --
> Sinan Kaya
> Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
> Technologies, Inc.
> Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux
> Foundation Collaborative Project.