Re: BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC
From: Paul Kocialkowski
Date: Tue Feb 02 2021 - 04:58:06 EST
Hi Nikolaus,
On Tue 02 Feb 21, 10:18, H. Nikolaus Schaller wrote:
> Hi,
> since v5.11-rc6 my Pinephone display shows some moiré pattern.
>
> I did a bisect between v5.11-rc5 and v5.11-rc6 and it told me that
> the commit mentioned in the subject is the reason.
>
> Reverting it makes the display work again and re-reverting fail again.
>
> IMHO it seems as if the display DMA of the pinephone (allwinner suni-a54)
> got influenced and stopped to scan the framebuffer.
>
> The only dma-ranges I could find are defined here:
>
> arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
>
> dma-ranges = <0x00000000 0x40000000 0xc0000000>;
>
> but I can't tell if they are "valid" or not.
>
> Any insights are welcome. And please direct to the right people/mailing lists
> if they are missing.
This may not be strictly the same thing, but is this patch in your tree:
https://patchwork.kernel.org/project/linux-arm-kernel/patch/20210115175831.1184260-2-paul.kocialkowski@xxxxxxxxxxx/
If not, it's worth a try to add it. If it is, it's worth doing a revert.
My understanding is like DE2 does not need a particular DMA range and has DRAM
starting at 0x40000000 (just like the CPU) but it will map DRAM in a loop
before and after this address.
I suspect the issue shows because the pinephone has 2 GiB RAM while for other
boards with < 2 GiB RAM, removing 0x40000000 to the DMA addresses still points
to the same location. So IMO the MBUS dma-ranges shouldn't apply to DE2.
I think this is already the case in dt, but the mbus driver may add it if you
don't have that patch.
I think I have a few A64 boards around, but probably not with 2 GiB RAM.
If adding the patch doesn't help, I'll try to make a few test.
Cheers!
Paul
--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
Attachment:
signature.asc
Description: PGP signature