On Tue, Apr 28, 2020 at 02:06:20PM +0100, Robin Murphy wrote: > On 2020-04-28 1:45 pm, Andy Shevchenko wrote: > > On Thu, Apr 23, 2020 at 07:45:29PM +0200, Michael Walle wrote: > > > Commit cdfee5623290 ("driver core: initialize a default DMA mask for > > > platform device") initialize the DMA of a platform device. But if the > > > parent doesn't have a dma_mask set, for example if it's an I2C device, > > > the dma_mask of the child platform device will be set to zero again. > > > Which leads to many "DMA mask not set" warnings, if the MFD cell has the > > > of_compatible property set. > > > > I'm wondering why parent doesn't have it. > > Because the parent isn't on a DMA-capable bus, and thus really shouldn't > have a valid DMA configuration ever. Then how come a child is DMA capable? MFD takes a physical device node as a parent and creates one of several children with that device as a parent. DMA mask is a property of the device which *does DMA*. Obviously a child is not correct device for that. Where am I mistaken? > > I remember we have explicit patches in the past for buses such as PCI and AMBA > > to set default DMA mask for all physical devices on the respective bus, of > > course they can individually override it later. > > > > So, this seems to me a paper over the real issue (absence of default DMA mask > > where it's needed) and devices should explicitly define it if they disagree > > with default. > > > > If I'm wrong, you really need elaborate commit message much better. > > The problem here is that MFD children are created as platform devices > (regardless of what their parent is) and assigned an of_node, at which point > they look pretty much indistinguishable from SoC devices created by the > of_platform code, that *do* have to be assumed to be DMA-capable to prevent > ~90% of existing devicetrees from breaking. > > Of course the real fundamental issue is the platform bus itself, but it's > way too late to fix that :( I don't think it's an issue, rather in model you are describing. Or I miss something not so obvious. -- With Best Regards, Andy Shevchenko