RE: [PATCH v2 2/2] drivers: remove force dma flag from buses

From: Nipun Gupta
Date: Thu Mar 22 2018 - 11:14:09 EST




> -----Original Message-----
> From: Christoph Hellwig [mailto:hch@xxxxxx]
> Sent: Thursday, March 22, 2018 13:49
> To: Nipun Gupta <nipun.gupta@xxxxxxx>
>
> > --- a/drivers/dma/qcom/hidma_mgmt.c
> > +++ b/drivers/dma/qcom/hidma_mgmt.c
> > @@ -398,7 +398,7 @@ static int __init
> hidma_mgmt_of_populate_channels(struct device_node *np)
> > }
> > of_node_get(child);
> > new_pdev->dev.of_node = child;
> > - of_dma_configure(&new_pdev->dev, child);
> > + of_dma_configure(&new_pdev->dev, child, true);
> > /*
> > * It is assumed that calling of_msi_configure is safe on
> > * platforms with or without MSI support.
>
> Where did we mark this bus as force_dma before?

I thought these devices to be on the platform bus as the device is of type
'struct platform_device', though I am not sure then why 'of_dma_configure()'
is called here. Is this not on platform bus?

>
> > diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
> > index 9a4f4246..895c83e 100644
> > --- a/drivers/of/of_reserved_mem.c
> > +++ b/drivers/of/of_reserved_mem.c
> > @@ -353,7 +353,7 @@ int of_reserved_mem_device_init_by_idx(struct device
> *dev,
> > /* ensure that dma_ops is set for virtual devices
> > * using reserved memory
> > */
> > - of_dma_configure(dev, np);
> > + of_dma_configure(dev, np, true);
>
> Did all the callers of this one really force dma? I have a hard time
> untangling the call stacks unfortunately.

I see this API being called indirectly from NXP DPAA device driver which
is for platform bus devices. So I marked 'true' out here. There are more places
from where it is being called.

Thanks,
Nipun