2021-02-02 09:22:57

by H. Nikolaus Schaller

[permalink] [raw]
Subject: BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC

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.

BR and thanks,
Nikolaus Schaller


2021-02-02 09:59:16

by Paul Kocialkowski

[permalink] [raw]
Subject: Re: BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC

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/[email protected]/

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


Attachments:
(No filename) (1.82 kB)
signature.asc (499.00 B)
Download all attachments

2021-02-02 10:55:52

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC

Hi Paul,

> Am 02.02.2021 um 10:56 schrieb Paul Kocialkowski <[email protected]>:
>
> 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/[email protected]/
>
> If not, it's worth a try to add it.

No, it hasn't arrived in v5.11-rc6 (or linux-next) yet.

But it fixes the issue.

great and many thanks,
Nikolaus

> 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

2021-02-02 21:43:32

by Paul Kocialkowski

[permalink] [raw]
Subject: Re: BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC

Hi Nikolaus,

On Tue 02 Feb 21, 11:50, H. Nikolaus Schaller wrote:
> Hi Paul,
>
> > Am 02.02.2021 um 10:56 schrieb Paul Kocialkowski <[email protected]>:
> >
> > 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/[email protected]/
> >
> > If not, it's worth a try to add it.
>
> No, it hasn't arrived in v5.11-rc6 (or linux-next) yet.
>
> But it fixes the issue.

Great! The patch should already be on its way to the next RC.

And nice to see you're active on Pinephone as well! You might remember me from
the Replicant project, as I've worked a bit on the GTA04 :)

> great and many thanks,
> Nikolaus

Cheers,

Paul

> > 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
>

--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com


Attachments:
(No filename) (2.63 kB)
signature.asc (499.00 B)
Download all attachments

2021-02-05 19:16:41

by Paul Kocialkowski

[permalink] [raw]
Subject: Re: BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC

Hey,

On Tue 02 Feb 21, 16:07, H. Nikolaus Schaller wrote:
> Hi Paul,
>
> > Am 02.02.2021 um 14:42 schrieb Paul Kocialkowski <[email protected]>:
> >
> > Hi Nikolaus,
> >
> > On Tue 02 Feb 21, 11:50, H. Nikolaus Schaller wrote:
> >> Hi Paul,
> >>
> >>> Am 02.02.2021 um 10:56 schrieb Paul Kocialkowski <[email protected]>:
> >>>
> >>> 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/[email protected]/
> >>>
> >>> If not, it's worth a try to add it.
> >>
> >> No, it hasn't arrived in v5.11-rc6 (or linux-next) yet.
> >>
> >> But it fixes the issue.
> >
> > Great! The patch should already be on its way to the next RC.
>
> Fine!
>
> >
> > And nice to see you're active on Pinephone as well!
>
> I have a developer unit and the LetuxOS kernel already supports it a little. This is why I observed the issue with -rc6
>
> > You might remember me from
> > the Replicant project, as I've worked a bit on the GTA04 :)
>
> Sure, you are well remembered :)
>
> I still have the dream to revitalize Replicant 4.2 for the GTA04 just for fun. I can already boot to Replicant touch screen with a v5.4 kernel. v5.10 fails when trying to spawn zygote...

Oh I see! I think Android has made some significant progress is its ability
to use mainline (4.2 was an early stage and I remember having to backport
patches to use some mainline features back then).

Maybe it would be easier with Replicant 6, but you'd have to go through the
device bringup phase again, which is never nice.

Cheers,

Paul

--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com


Attachments:
(No filename) (2.68 kB)
signature.asc (499.00 B)
Download all attachments

2021-02-06 19:02:37

by Andreas Kemnade

[permalink] [raw]
Subject: Re: [Letux-kernel] BOG: commit 89c7cb1608ac3 ("of/device: Update dma_range_map only when dev has valid dma-ranges") seems to break Pinephone display or LCDC

On Fri, 5 Feb 2021 16:10:18 +0100
Paul Kocialkowski <[email protected]> wrote:

> Hey,
>
> On Tue 02 Feb 21, 16:07, H. Nikolaus Schaller wrote:
> > Hi Paul,
> >
> > > Am 02.02.2021 um 14:42 schrieb Paul Kocialkowski <[email protected]>:
> > >
> > > Hi Nikolaus,
> > >
> > > On Tue 02 Feb 21, 11:50, H. Nikolaus Schaller wrote:
> > >> Hi Paul,
> > >>
> > >>> Am 02.02.2021 um 10:56 schrieb Paul Kocialkowski <[email protected]>:
> > >>>
> > >>> 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/[email protected]/
> > >>>
> > >>> If not, it's worth a try to add it.
> > >>
> > >> No, it hasn't arrived in v5.11-rc6 (or linux-next) yet.
> > >>
> > >> But it fixes the issue.
> > >
> > > Great! The patch should already be on its way to the next RC.
> >
> > Fine!
> >
> > >
> > > And nice to see you're active on Pinephone as well!
> >
> > I have a developer unit and the LetuxOS kernel already supports it a little. This is why I observed the issue with -rc6
> >
> > > You might remember me from
> > > the Replicant project, as I've worked a bit on the GTA04 :)
> >
> > Sure, you are well remembered :)
> >
> > I still have the dream to revitalize Replicant 4.2 for the GTA04 just for fun. I can already boot to Replicant touch screen with a v5.4 kernel. v5.10 fails when trying to spawn zygote...
>
> Oh I see! I think Android has made some significant progress is its ability
> to use mainline (4.2 was an early stage and I remember having to backport
> patches to use some mainline features back then).
>
> Maybe it would be easier with Replicant 6, but you'd have to go through the
> device bringup phase again, which is never nice.
>
well, we have done some experimental Replicant 6 images, but it is
unbeleavable slow. Do not know why. The bootanimation process(even
though there is no "animation") draws a lot of cpu power.

Regards,
Andreas