On Fri, Sep 17, 2021 at 06:32:45AM +0200, Jernej Škrabec wrote: > Dne petek, 17. september 2021 ob 04:55:22 CEST je Saravana Kannan napisal(a): > > On Wed, Sep 15, 2021 at 11:59 AM Jernej Škrabec > > > > wrote: > > > /cc linux-kernel@vger.kernel.org > > > > > > Dne sreda, 15. september 2021 ob 20:36:11 CEST je Saravana Kannan > napisal(a): > > > > On Wed, Sep 15, 2021 at 11:23 AM Saravana Kannan > > > > > > wrote: > > > > > On Wed, Sep 15, 2021 at 11:07 AM Jernej Škrabec > > > > > > > > > > wrote: > > > > > > Hi Saravana! > > > > > > > > > > > > I noticed that in kernel 5.14, at least on Allwinner H3, deinterlace > > > > > > driver > > > > > > > > > doesn't load anymore if fw_devlink is set to on. If I set it to off, > > > > > > driver > > > > > > > > > loads and works without problems. If I remove interconnects property > > > > > > in > > > > > > DT > > > > > > > > > node and use driver hack instead, it also loads and work ok. > > > > > > > > > > > > For reference, I speak about this node: > > > > > > https://elixir.bootlin.com/linux/v5.14/source/arch/arm/boot/dts/sun8 > > > > > > i-h3.dtsi#L153> > > > > > Oh the dts file please. Not dtsi. I need the full picture of > > > > dependencies. > > > > > > I just dumped DTB from the board I use for testing this: > > > http://ix.io/3yZB > > > > I was basically asking for this: > > arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts > > > > > > -Saravana > > > > > > > > > > Do you have any clue why it doesn't work? > > > > > > > > > > Kinda busy today and I'll take a close look later, but if you delete > > > > > "interconnect" but it works, then it seems like you have no driver for > > > > > your "mbus" interconnect? Is that expected? > > > > > > Ah, you're completely right. There is no MBUS driver (yet), since current > > > purpose of that node is to determine DMA memory offsets and for that you > > > don't need a driver. > > > > Can you explain more how you get the DMA memory offsets in the code > > from this node? > > Maxime, can you help with this? Sure, Jernej is right, the interconnects binding with the dma-mem name is here to describe the path DMA accesses take between devices. In our case, the registers accesses go through the usual busses, but the DMA accesses go through a separate one controlled by the mbus controller Jernej was talking about. The driver core will then take this into account and apply any DMA mapping the mbus controller has: https://elixir.bootlin.com/linux/latest/source/drivers/of/address.c#L582 So it's entirely transparent to the consumer driver. Maxime