2023-04-12 10:04:56

by Cyril Brulebois

[permalink] [raw]
Subject: Updating hardcoded "of-display" devices

Hi,

We've spotted a regression with the Debian Installer on ppc64el, and
I've confirmed that the first patch fixes fbdev/offb as expected (or at
least works around the regression, see last part of the commit message):
- [PATCH 1/2] fbdev/offb: Update expected device name

Since I've spotted that drm/ofdrm is affected as well, I'm submitting a
similar patch for it, but I can't really test it. I suppose Thomas who
introduced this new driver during the v6.2 release cycle will be able
to take it from there if needed:
- [PATCH 2/2] drm/ofdrm: Update expected device name


Cheers,
--
Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/


2023-04-12 10:05:28

by Cyril Brulebois

[permalink] [raw]
Subject: [PATCH 2/2] drm/ofdrm: Update expected device name

Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
as spotted by Frédéric Bonnard, the historical "of-display" device is
gone: the updated logic creates "of-display.0" instead, then as many
"of-display.N" as required.

This means that offb no longer finds the expected device, which prevents
the Debian Installer from setting up its interface, at least on ppc64el.

Given the code similarity it is likely to affect ofdrm in the same way.

It might be better to iterate on all possible nodes, but updating the
hardcoded device from "of-display" to "of-display.0" is likely to help
as a first step.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
Link: https://bugs.debian.org/1033058
Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
Cc: [email protected] # v6.2+
Signed-off-by: Cyril Brulebois <[email protected]>
---
drivers/gpu/drm/tiny/ofdrm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/ofdrm.c b/drivers/gpu/drm/tiny/ofdrm.c
index 6e349ca42485..92df021d71df 100644
--- a/drivers/gpu/drm/tiny/ofdrm.c
+++ b/drivers/gpu/drm/tiny/ofdrm.c
@@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);

static struct platform_driver ofdrm_platform_driver = {
.driver = {
- .name = "of-display",
+ .name = "of-display.0",
.of_match_table = ofdrm_of_match_display,
},
.probe = ofdrm_probe,
--
2.30.2

2023-04-12 10:06:07

by Cyril Brulebois

[permalink] [raw]
Subject: [PATCH 1/2] fbdev/offb: Update expected device name

Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
as spotted by Frédéric Bonnard, the historical "of-display" device is
gone: the updated logic creates "of-display.0" instead, then as many
"of-display.N" as required.

This means that offb no longer finds the expected device, which prevents
the Debian Installer from setting up its interface, at least on ppc64el.

It might be better to iterate on all possible nodes, but updating the
hardcoded device from "of-display" to "of-display.0" is confirmed to fix
the Debian Installer at the very least.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
Link: https://bugs.debian.org/1033058
Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
Cc: [email protected]
Signed-off-by: Cyril Brulebois <[email protected]>
---
drivers/video/fbdev/offb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
index b97d251d894b..6264c7184457 100644
--- a/drivers/video/fbdev/offb.c
+++ b/drivers/video/fbdev/offb.c
@@ -698,7 +698,7 @@ MODULE_DEVICE_TABLE(of, offb_of_match_display);

static struct platform_driver offb_driver_display = {
.driver = {
- .name = "of-display",
+ .name = "of-display.0",
.of_match_table = offb_of_match_display,
},
.probe = offb_probe_display,
--
2.30.2

2023-04-16 12:37:57

by Salvatore Bonaccorso

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

Hi

looping in as well the regressions list (hoping not doing any mistake
with the regzbot commands):

On Wed, Apr 12, 2023 at 11:55:08AM +0200, Cyril Brulebois wrote:
> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> as spotted by Fr?d?ric Bonnard, the historical "of-display" device is
> gone: the updated logic creates "of-display.0" instead, then as many
> "of-display.N" as required.
>
> This means that offb no longer finds the expected device, which prevents
> the Debian Installer from setting up its interface, at least on ppc64el.
>
> It might be better to iterate on all possible nodes, but updating the
> hardcoded device from "of-display" to "of-display.0" is confirmed to fix
> the Debian Installer at the very least.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> Link: https://bugs.debian.org/1033058
> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> Cc: [email protected]
> Signed-off-by: Cyril Brulebois <[email protected]>
> ---
> drivers/video/fbdev/offb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index b97d251d894b..6264c7184457 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -698,7 +698,7 @@ MODULE_DEVICE_TABLE(of, offb_of_match_display);
>
> static struct platform_driver offb_driver_display = {
> .driver = {
> - .name = "of-display",
> + .name = "of-display.0",
> .of_match_table = offb_of_match_display,
> },
> .probe = offb_probe_display,

#regzbot ^introduced 241d2fb56a18
#regzbot title: Open Firmware framebuffer cannot find of-display
#regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
#regzbot link: https://lore.kernel.org/all/[email protected]/T/#m34493480243a2cad2ae359abfd9db5e755f41add
#regzbot link: https://bugs.debian.org/1033058

Regards,
Salvatore

2023-04-22 10:09:35

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

On 4/12/23 11:55, Cyril Brulebois wrote:
> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> as spotted by Frédéric Bonnard, the historical "of-display" device is
> gone: the updated logic creates "of-display.0" instead, then as many
> "of-display.N" as required.
>
> This means that offb no longer finds the expected device, which prevents
> the Debian Installer from setting up its interface, at least on ppc64el.
>
> It might be better to iterate on all possible nodes, but updating the
> hardcoded device from "of-display" to "of-display.0" is confirmed to fix
> the Debian Installer at the very least.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> Link: https://bugs.debian.org/1033058
> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> Cc: [email protected]
> Signed-off-by: Cyril Brulebois <[email protected]>

I've applied the series (2 patches, one of them in drm) to the fbdev git tree.

Thanks!
Helge

> ---
> drivers/video/fbdev/offb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index b97d251d894b..6264c7184457 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -698,7 +698,7 @@ MODULE_DEVICE_TABLE(of, offb_of_match_display);
>
> static struct platform_driver offb_driver_display = {
> .driver = {
> - .name = "of-display",
> + .name = "of-display.0",
> .of_match_table = offb_of_match_display,
> },
> .probe = offb_probe_display,

2023-04-24 07:38:36

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

Hi Cyril,

CC DT

On Wed, Apr 12, 2023 at 12:05 PM Cyril Brulebois <[email protected]> wrote:
> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> as spotted by Frédéric Bonnard, the historical "of-display" device is
> gone: the updated logic creates "of-display.0" instead, then as many
> "of-display.N" as required.
>
> This means that offb no longer finds the expected device, which prevents
> the Debian Installer from setting up its interface, at least on ppc64el.
>
> It might be better to iterate on all possible nodes, but updating the
> hardcoded device from "of-display" to "of-display.0" is confirmed to fix
> the Debian Installer at the very least.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> Link: https://bugs.debian.org/1033058
> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> Cc: [email protected]
> Signed-off-by: Cyril Brulebois <[email protected]>

Thanks for your patch, which is now commit 27c74ea74be805cc
("fbdev/offb: Update expected device name") in fbdev/for-next

> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -698,7 +698,7 @@ MODULE_DEVICE_TABLE(of, offb_of_match_display);
>
> static struct platform_driver offb_driver_display = {
> .driver = {
> - .name = "of-display",
> + .name = "of-display.0",
> .of_match_table = offb_of_match_display,
> },
> .probe = offb_probe_display,

This looks like the wrong fix for me: platform drivers' names must
not contain the device index, and DT-based devices are probed using
the compatible value (which is "display") instead of the node name.

I think the problem is with the of_platform_default_populate_init()
function, which should create proper name@unit-address device nodes,
with unique unit addresses, and with the correct compatible value.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2023-04-24 07:39:08

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/ofdrm: Update expected device name

Hi Cyril,

CC DT

On Wed, Apr 12, 2023 at 12:05 PM Cyril Brulebois <[email protected]> wrote:
> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> as spotted by Frédéric Bonnard, the historical "of-display" device is
> gone: the updated logic creates "of-display.0" instead, then as many
> "of-display.N" as required.
>
> This means that offb no longer finds the expected device, which prevents
> the Debian Installer from setting up its interface, at least on ppc64el.
>
> Given the code similarity it is likely to affect ofdrm in the same way.
>
> It might be better to iterate on all possible nodes, but updating the
> hardcoded device from "of-display" to "of-display.0" is likely to help
> as a first step.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> Link: https://bugs.debian.org/1033058
> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> Cc: [email protected] # v6.2+
> Signed-off-by: Cyril Brulebois <[email protected]>

Thanks for your patch, which is now commit 3a9d8ea2539ebebd
("drm/ofdrm: Update expected device name") in fbdev/for-next.

> --- a/drivers/gpu/drm/tiny/ofdrm.c
> +++ b/drivers/gpu/drm/tiny/ofdrm.c
> @@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);
>
> static struct platform_driver ofdrm_platform_driver = {
> .driver = {
> - .name = "of-display",
> + .name = "of-display.0",
> .of_match_table = ofdrm_of_match_display,
> },
> .probe = ofdrm_probe,

Same comment as for "[PATCH 1/2] fbdev/offb: Update expected device
name".

https://lore.kernel.org/r/CAMuHMdVGEeAsmb4tAuuqqGJ-4+BBETwEwYJA+M9NyJv0BJ_hNg@mail.gmail.com

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2023-04-24 09:09:12

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/ofdrm: Update expected device name

Hi

Am 24.04.23 um 09:33 schrieb Geert Uytterhoeven:
> Hi Cyril,
>
> CC DT
>
> On Wed, Apr 12, 2023 at 12:05 PM Cyril Brulebois <[email protected]> wrote:
>> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
>> as spotted by Frédéric Bonnard, the historical "of-display" device is
>> gone: the updated logic creates "of-display.0" instead, then as many
>> "of-display.N" as required.
>>
>> This means that offb no longer finds the expected device, which prevents
>> the Debian Installer from setting up its interface, at least on ppc64el.
>>
>> Given the code similarity it is likely to affect ofdrm in the same way.
>>
>> It might be better to iterate on all possible nodes, but updating the
>> hardcoded device from "of-display" to "of-display.0" is likely to help
>> as a first step.
>>
>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
>> Link: https://bugs.debian.org/1033058
>> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
>> Cc: [email protected] # v6.2+
>> Signed-off-by: Cyril Brulebois <[email protected]>
>
> Thanks for your patch, which is now commit 3a9d8ea2539ebebd
> ("drm/ofdrm: Update expected device name") in fbdev/for-next.
>
>> --- a/drivers/gpu/drm/tiny/ofdrm.c
>> +++ b/drivers/gpu/drm/tiny/ofdrm.c
>> @@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);
>>
>> static struct platform_driver ofdrm_platform_driver = {
>> .driver = {
>> - .name = "of-display",
>> + .name = "of-display.0",
>> .of_match_table = ofdrm_of_match_display,
>> },
>> .probe = ofdrm_probe,
>
> Same comment as for "[PATCH 1/2] fbdev/offb: Update expected device
> name".
>
> https://lore.kernel.org/r/CAMuHMdVGEeAsmb4tAuuqqGJ-4+BBETwEwYJA+M9NyJv0BJ_hNg@mail.gmail.com

Sorry that I missed this patch. I agree that it's probably not correct.
At least in ofdrm, we want to be able to use multiple framebuffers at
the same time; a feature that has been broken by this change.

Best regards
Thomas

>
> Gr{oetje,eeting}s,
>
> Geert
>

--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature

2023-04-24 09:41:05

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/ofdrm: Update expected device name

On 4/24/23 11:07, Thomas Zimmermann wrote:
> Hi
>
> Am 24.04.23 um 09:33 schrieb Geert Uytterhoeven:
>> Hi Cyril,
>>
>> CC DT
>>
>> On Wed, Apr 12, 2023 at 12:05 PM Cyril Brulebois <[email protected]> wrote:
>>> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
>>> as spotted by Frédéric Bonnard, the historical "of-display" device is
>>> gone: the updated logic creates "of-display.0" instead, then as many
>>> "of-display.N" as required.
>>>
>>> This means that offb no longer finds the expected device, which prevents
>>> the Debian Installer from setting up its interface, at least on ppc64el.
>>>
>>> Given the code similarity it is likely to affect ofdrm in the same way.
>>>
>>> It might be better to iterate on all possible nodes, but updating the
>>> hardcoded device from "of-display" to "of-display.0" is likely to help
>>> as a first step.
>>>
>>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
>>> Link: https://bugs.debian.org/1033058
>>> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
>>> Cc: [email protected] # v6.2+
>>> Signed-off-by: Cyril Brulebois <[email protected]>
>>
>> Thanks for your patch, which is now commit 3a9d8ea2539ebebd
>> ("drm/ofdrm: Update expected device name") in fbdev/for-next.
>>
>>> --- a/drivers/gpu/drm/tiny/ofdrm.c
>>> +++ b/drivers/gpu/drm/tiny/ofdrm.c
>>> @@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);
>>>
>>>   static struct platform_driver ofdrm_platform_driver = {
>>>          .driver = {
>>> -               .name = "of-display",
>>> +               .name = "of-display.0",
>>>                  .of_match_table = ofdrm_of_match_display,
>>>          },
>>>          .probe = ofdrm_probe,
>>
>> Same comment as for "[PATCH 1/2] fbdev/offb: Update expected device
>> name".
>>
>> https://lore.kernel.org/r/CAMuHMdVGEeAsmb4tAuuqqGJ-4+BBETwEwYJA+M9NyJv0BJ_hNg@mail.gmail.com
>
> Sorry that I missed this patch. I agree that it's probably not
> correct. At least in ofdrm, we want to be able to use multiple
> framebuffers at the same time; a feature that has been broken by this
> change.

Geert & Thomas, thanks for the review!

I've dropped both patches from fbdev tree for now.
Would be great to find another good solution though, as it breaks the debian
installer.

Helge

Subject: Re: [PATCH 2/2] drm/ofdrm: Update expected device name

Hi, Thorsten here, the Linux kernel's regression tracker. Top-posting
for once, to make this easily accessible to everyone.

Was a proper solution for the regression the initial mail in this thread
is about ever found? Doesn't look like it for here, but maybe I'm
missing something.

Reminder, the problem afaik is caused by 241d2fb56a ("of: Make OF
framebuffer device names unique") [merged for v6.2-rc8, authored by
Michal Suchanek; committed by Rob Herring].

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

#regzbot poke

On 24.04.23 11:35, Helge Deller wrote:
> On 4/24/23 11:07, Thomas Zimmermann wrote:
>> Am 24.04.23 um 09:33 schrieb Geert Uytterhoeven:
>>> On Wed, Apr 12, 2023 at 12:05 PM Cyril Brulebois <[email protected]>
>>> wrote:
>>>> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names
>>>> unique"),
>>>> as spotted by Frédéric Bonnard, the historical "of-display" device is
>>>> gone: the updated logic creates "of-display.0" instead, then as many
>>>> "of-display.N" as required.
>>>>
>>>> This means that offb no longer finds the expected device, which
>>>> prevents
>>>> the Debian Installer from setting up its interface, at least on
>>>> ppc64el.
>>>>
>>>> Given the code similarity it is likely to affect ofdrm in the same way.
>>>>
>>>> It might be better to iterate on all possible nodes, but updating the
>>>> hardcoded device from "of-display" to "of-display.0" is likely to help
>>>> as a first step.
>>>>
>>>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
>>>> Link: https://bugs.debian.org/1033058
>>>> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
>>>> Cc: [email protected] # v6.2+
>>>> Signed-off-by: Cyril Brulebois <[email protected]>
>>>
>>> Thanks for your patch, which is now commit 3a9d8ea2539ebebd
>>> ("drm/ofdrm: Update expected device name") in fbdev/for-next.
>>>
>>>> --- a/drivers/gpu/drm/tiny/ofdrm.c
>>>> +++ b/drivers/gpu/drm/tiny/ofdrm.c
>>>> @@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);
>>>>
>>>>   static struct platform_driver ofdrm_platform_driver = {
>>>>          .driver = {
>>>> -               .name = "of-display",
>>>> +               .name = "of-display.0",
>>>>                  .of_match_table = ofdrm_of_match_display,
>>>>          },
>>>>          .probe = ofdrm_probe,
>>>
>>> Same comment as for "[PATCH 1/2] fbdev/offb: Update expected device
>>> name".
>>>
>>> https://lore.kernel.org/r/CAMuHMdVGEeAsmb4tAuuqqGJ-4+BBETwEwYJA+M9NyJv0BJ_hNg@mail.gmail.com
>>
>> Sorry that I missed this patch. I agree that it's probably not
>> correct. At least in ofdrm, we want to be able to use multiple
>> framebuffers at the same time; a feature that has been broken by this
>> change.
>
> Geert & Thomas, thanks for the review!
>
> I've dropped both patches from fbdev tree for now.
> Would be great to find another good solution though, as it breaks the
> debian
> installer.
>
> Helge

2023-05-22 11:55:05

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/ofdrm: Update expected device name

On Mon, Apr 24, 2023 at 11:07:45AM +0200, Thomas Zimmermann wrote:
> Hi
>
> Am 24.04.23 um 09:33 schrieb Geert Uytterhoeven:
> > Hi Cyril,
> >
> > CC DT
> >
> > On Wed, Apr 12, 2023 at 12:05 PM Cyril Brulebois <[email protected]> wrote:
> > > Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> > > as spotted by Frédéric Bonnard, the historical "of-display" device is
> > > gone: the updated logic creates "of-display.0" instead, then as many
> > > "of-display.N" as required.
> > >
> > > This means that offb no longer finds the expected device, which prevents
> > > the Debian Installer from setting up its interface, at least on ppc64el.
> > >
> > > Given the code similarity it is likely to affect ofdrm in the same way.
> > >
> > > It might be better to iterate on all possible nodes, but updating the
> > > hardcoded device from "of-display" to "of-display.0" is likely to help
> > > as a first step.
> > >
> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> > > Link: https://bugs.debian.org/1033058
> > > Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> > > Cc: [email protected] # v6.2+
> > > Signed-off-by: Cyril Brulebois <[email protected]>
> >
> > Thanks for your patch, which is now commit 3a9d8ea2539ebebd
> > ("drm/ofdrm: Update expected device name") in fbdev/for-next.
> >
> > > --- a/drivers/gpu/drm/tiny/ofdrm.c
> > > +++ b/drivers/gpu/drm/tiny/ofdrm.c
> > > @@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);
> > >
> > > static struct platform_driver ofdrm_platform_driver = {
> > > .driver = {
> > > - .name = "of-display",
> > > + .name = "of-display.0",
> > > .of_match_table = ofdrm_of_match_display,
> > > },
> > > .probe = ofdrm_probe,
> >
> > Same comment as for "[PATCH 1/2] fbdev/offb: Update expected device
> > name".
> >
> > https://lore.kernel.org/r/CAMuHMdVGEeAsmb4tAuuqqGJ-4+BBETwEwYJA+M9NyJv0BJ_hNg@mail.gmail.com
>
> Sorry that I missed this patch. I agree that it's probably not correct. At
> least in ofdrm, we want to be able to use multiple framebuffers at the same
> time; a feature that has been broken by this change.

How did it work before, though?

We did not have this device name clash, then we did, and it was solved
by renaming the devices to numnered.

Now matching the first device should restore the previously available
functionality, mathing any of the numbered devices would potentially
allow to use multiple devices.

Or am I missing something?

Thanks

Michal

2023-06-15 13:11:52

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

Hi

Am 15.06.23 um 15:03 schrieb Linux regression tracking (Thorsten Leemhuis):
> On 16.04.23 14:34, Salvatore Bonaccorso wrote:
>>
>> On Wed, Apr 12, 2023 at 11:55:08AM +0200, Cyril Brulebois wrote:
>>> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
>>> as spotted by Frédéric Bonnard, the historical "of-display" device is
>>> gone: the updated logic creates "of-display.0" instead, then as many
>>> "of-display.N" as required.
>>>
>>> This means that offb no longer finds the expected device, which prevents
>>> the Debian Installer from setting up its interface, at least on ppc64el.
>>>
>>> It might be better to iterate on all possible nodes, but updating the
>>> hardcoded device from "of-display" to "of-display.0" is confirmed to fix
>>> the Debian Installer at the very least.
>> [...]
>> #regzbot ^introduced 241d2fb56a18
>> #regzbot title: Open Firmware framebuffer cannot find of-display
>> #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
>> #regzbot link: https://lore.kernel.org/all/[email protected]/T/#m34493480243a2cad2ae359abfd9db5e755f41add
>> #regzbot link: https://bugs.debian.org/1033058
>
> No reply to my status inquiry[1] a few weeks ago, so I have to assume
> nobody cares anymore. If somebody still cares, holler!

I'd take a look if anyone can point me to an example of Geert's proposal.

Best regards
Thomas

>
> #regzbot inconclusive: no answer to a status inquiry
> #regzbot ignore-activity
>
> [1]
> https://lore.kernel.org/lkml/[email protected]/
>
> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
> --
> Everything you wanna know about Linux kernel regression tracking:
> https://linux-regtracking.leemhuis.info/about/#tldr
> If I did something stupid, please tell me, as explained on that page.

--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

On 16.04.23 14:34, Salvatore Bonaccorso wrote:
>
> On Wed, Apr 12, 2023 at 11:55:08AM +0200, Cyril Brulebois wrote:
>> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
>> as spotted by Frédéric Bonnard, the historical "of-display" device is
>> gone: the updated logic creates "of-display.0" instead, then as many
>> "of-display.N" as required.
>>
>> This means that offb no longer finds the expected device, which prevents
>> the Debian Installer from setting up its interface, at least on ppc64el.
>>
>> It might be better to iterate on all possible nodes, but updating the
>> hardcoded device from "of-display" to "of-display.0" is confirmed to fix
>> the Debian Installer at the very least.
> [...]
> #regzbot ^introduced 241d2fb56a18
> #regzbot title: Open Firmware framebuffer cannot find of-display
> #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> #regzbot link: https://lore.kernel.org/all/[email protected]/T/#m34493480243a2cad2ae359abfd9db5e755f41add
> #regzbot link: https://bugs.debian.org/1033058

No reply to my status inquiry[1] a few weeks ago, so I have to assume
nobody cares anymore. If somebody still cares, holler!

#regzbot inconclusive: no answer to a status inquiry
#regzbot ignore-activity

[1]
https://lore.kernel.org/lkml/[email protected]/

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

2023-06-15 13:30:57

by Cyril Brulebois

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

Linux regression tracking (Thorsten Leemhuis) <[email protected]> (2023-06-15):
> No reply to my status inquiry[1] a few weeks ago, so I have to assume
> nobody cares anymore. If somebody still cares, holler!

I still care about a proper bugfix, for upstream and for the Debian
distribution, and so does Salvatore. But fixing kernel regressions isn't
my day job, so I haven't got around to working on it.


Cheers,
--
Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/


Attachments:
(No filename) (510.00 B)
signature.asc (849.00 B)
Download all attachments

2023-06-15 13:33:58

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

Hello,

On Thu, Jun 15, 2023 at 03:06:28PM +0200, Thomas Zimmermann wrote:
> Hi
>
> Am 15.06.23 um 15:03 schrieb Linux regression tracking (Thorsten Leemhuis):
> > On 16.04.23 14:34, Salvatore Bonaccorso wrote:
> > >
> > > On Wed, Apr 12, 2023 at 11:55:08AM +0200, Cyril Brulebois wrote:
> > > > Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> > > > as spotted by Fr?d?ric Bonnard, the historical "of-display" device is
> > > > gone: the updated logic creates "of-display.0" instead, then as many
> > > > "of-display.N" as required.
> > > >
> > > > This means that offb no longer finds the expected device, which prevents
> > > > the Debian Installer from setting up its interface, at least on ppc64el.
> > > >
> > > > It might be better to iterate on all possible nodes, but updating the
> > > > hardcoded device from "of-display" to "of-display.0" is confirmed to fix
> > > > the Debian Installer at the very least.

At the time this was proposed it was said that "of-display", is wrong,
and that "of-display.0" must be used for the first device instead, and
if something breaks an alias can be provided.

So how does one provide an alias so that offb can find "of-display.0" as
"of-display"?

Thanks

Michal

> > > [...]
> > > #regzbot ^introduced 241d2fb56a18
> > > #regzbot title: Open Firmware framebuffer cannot find of-display
> > > #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> > > #regzbot link: https://lore.kernel.org/all/[email protected]/T/#m34493480243a2cad2ae359abfd9db5e755f41add
> > > #regzbot link: https://bugs.debian.org/1033058
> >
> > No reply to my status inquiry[1] a few weeks ago, so I have to assume
> > nobody cares anymore. If somebody still cares, holler!
>
> I'd take a look if anyone can point me to an example of Geert's proposal.
>
> Best regards
> Thomas
>
> >
> > #regzbot inconclusive: no answer to a status inquiry
> > #regzbot ignore-activity
> >
> > [1]
> > https://lore.kernel.org/lkml/[email protected]/
> >
> > Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
> > --
> > Everything you wanna know about Linux kernel regression tracking:
> > https://linux-regtracking.leemhuis.info/about/#tldr
> > If I did something stupid, please tell me, as explained on that page.
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Frankenstrasse 146, 90461 Nuernberg, Germany
> GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
> HRB 36809 (AG Nuernberg)




2023-06-15 20:13:47

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

On Thu, Jun 15, 2023 at 03:21:07PM +0200, Michal Such?nek wrote:
> Hello,
>
> On Thu, Jun 15, 2023 at 03:06:28PM +0200, Thomas Zimmermann wrote:
> > Hi
> >
> > Am 15.06.23 um 15:03 schrieb Linux regression tracking (Thorsten Leemhuis):
> > > On 16.04.23 14:34, Salvatore Bonaccorso wrote:
> > > >
> > > > On Wed, Apr 12, 2023 at 11:55:08AM +0200, Cyril Brulebois wrote:
> > > > > Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> > > > > as spotted by Fr?d?ric Bonnard, the historical "of-display" device is
> > > > > gone: the updated logic creates "of-display.0" instead, then as many
> > > > > "of-display.N" as required.
> > > > >
> > > > > This means that offb no longer finds the expected device, which prevents
> > > > > the Debian Installer from setting up its interface, at least on ppc64el.
> > > > >
> > > > > It might be better to iterate on all possible nodes, but updating the
> > > > > hardcoded device from "of-display" to "of-display.0" is confirmed to fix
> > > > > the Debian Installer at the very least.
>
> At the time this was proposed it was said that "of-display", is wrong,
> and that "of-display.0" must be used for the first device instead, and
> if something breaks an alias can be provided.
>
> So how does one provide an alias so that offb can find "of-display.0" as
> "of-display"?

I'm not aware of any way. There isn't because device names and paths are
not considered ABI. There are mechanisms for getting stable class device
indices (e.g. i2c0, mmcblk0, fb0, fb1, etc.) though not implemented for
fbN (and please don't add it).

In any case, this should be an easy fix. Though if "linux,opened" or
"linux,boot-display" is not set, then you'd still get "of-display.0":

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 78ae84187449..e46482cef9c7 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -553,7 +553,7 @@ static int __init of_platform_default_populate_init(void)
if (!of_get_property(node, "linux,opened", NULL) ||
!of_get_property(node, "linux,boot-display", NULL))
continue;
- dev = of_platform_device_create(node, "of-display.0", NULL);
+ dev = of_platform_device_create(node, "of-display", NULL);
of_node_put(node);
if (WARN_ON(!dev))
return -ENOMEM;

2023-06-15 21:24:46

by Cyril Brulebois

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

Hi Rob,

Rob Herring <[email protected]> (2023-06-15):
> On Thu, Jun 15, 2023 at 03:21:07PM +0200, Michal Suchánek wrote:
> > At the time this was proposed it was said that "of-display", is wrong,
> > and that "of-display.0" must be used for the first device instead, and
> > if something breaks an alias can be provided.
> >
> > So how does one provide an alias so that offb can find "of-display.0"
> > as "of-display"?
>
> I'm not aware of any way. There isn't because device names and paths are
> not considered ABI. There are mechanisms for getting stable class device
> indices (e.g. i2c0, mmcblk0, fb0, fb1, etc.) though not implemented for
> fbN (and please don't add it).
>
> In any case, this should be an easy fix. Though if "linux,opened" or
> "linux,boot-display" is not set, then you'd still get "of-display.0":
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 78ae84187449..e46482cef9c7 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -553,7 +553,7 @@ static int __init of_platform_default_populate_init(void)
> if (!of_get_property(node, "linux,opened", NULL) ||
> !of_get_property(node, "linux,boot-display", NULL))
> continue;
> - dev = of_platform_device_create(node, "of-display.0", NULL);
> + dev = of_platform_device_create(node, "of-display", NULL);
> of_node_put(node);
> if (WARN_ON(!dev))
> return -ENOMEM;

I've just replaced my clueless workaround with this patch on top of the
kernel found in Debian 12 (Bookworm), i.e. 6.1.27 at this point, and it
indeed fixes the black screen problem in the installer's context.

I didn't run a full installation to check whether this kernel is also fine
after rebooting into the installed system, but as far as I understood for
the original bug report[1], it wasn't affected in the first place.

1. https://bugs.debian.org/1033058

Will somebody else pick up the torch from here, and submit that for
inclusion in master? Or should I re-submit the above patch on my own?

I see my Debian colleagues have already pushed an updated v6.4-rc6 in
experimental, so it should be rather easy to combine checking latest
master with the distribution's packaging. Once that's done, I'm quite
familiar with building an updated installer image on top of it…


Thanks,
--
Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/


Attachments:
(No filename) (2.55 kB)
signature.asc (849.00 B)
Download all attachments

2023-06-20 06:56:00

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

On 6/15/23 23:19, Cyril Brulebois wrote:
> Hi Rob,
>
> Rob Herring <[email protected]> (2023-06-15):
>> On Thu, Jun 15, 2023 at 03:21:07PM +0200, Michal Suchánek wrote:
>>> At the time this was proposed it was said that "of-display", is wrong,
>>> and that "of-display.0" must be used for the first device instead, and
>>> if something breaks an alias can be provided.
>>>
>>> So how does one provide an alias so that offb can find "of-display.0"
>>> as "of-display"?
>>
>> I'm not aware of any way. There isn't because device names and paths are
>> not considered ABI. There are mechanisms for getting stable class device
>> indices (e.g. i2c0, mmcblk0, fb0, fb1, etc.) though not implemented for
>> fbN (and please don't add it).
>>
>> In any case, this should be an easy fix. Though if "linux,opened" or
>> "linux,boot-display" is not set, then you'd still get "of-display.0":
>>
>> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
>> index 78ae84187449..e46482cef9c7 100644
>> --- a/drivers/of/platform.c
>> +++ b/drivers/of/platform.c
>> @@ -553,7 +553,7 @@ static int __init of_platform_default_populate_init(void)
>> if (!of_get_property(node, "linux,opened", NULL) ||
>> !of_get_property(node, "linux,boot-display", NULL))
>> continue;
>> - dev = of_platform_device_create(node, "of-display.0", NULL);
>> + dev = of_platform_device_create(node, "of-display", NULL);
>> of_node_put(node);
>> if (WARN_ON(!dev))
>> return -ENOMEM;

Michal, does that patch look correct?
I don't have that hardware, but that way the boot-display gets named
"of-display" while all others get "of-display.x"....

> I've just replaced my clueless workaround with this patch on top of the
> kernel found in Debian 12 (Bookworm), i.e. 6.1.27 at this point, and it
> indeed fixes the black screen problem in the installer's context.

... at least it fixes the issue.

> I didn't run a full installation to check whether this kernel is also fine
> after rebooting into the installed system, but as far as I understood for
> the original bug report[1], it wasn't affected in the first place.
>
> 1. https://bugs.debian.org/1033058
>
> Will somebody else pick up the torch from here, and submit that for
> inclusion in master? Or should I re-submit the above patch on my own?

It would be good to get some more feedback, but in general if you
or Rob send me a patch I can include it in the fbdev git tree for futher
testing (and if nobody else disagrees).

Helge

2023-06-20 08:24:21

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

On Tue, Jun 20, 2023 at 08:24:34AM +0200, Helge Deller wrote:
> On 6/15/23 23:19, Cyril Brulebois wrote:
> > Hi Rob,
> >
> > Rob Herring <[email protected]> (2023-06-15):
> > > On Thu, Jun 15, 2023 at 03:21:07PM +0200, Michal Such?nek wrote:
> > > > At the time this was proposed it was said that "of-display", is wrong,
> > > > and that "of-display.0" must be used for the first device instead, and
> > > > if something breaks an alias can be provided.
> > > >
> > > > So how does one provide an alias so that offb can find "of-display.0"
> > > > as "of-display"?
> > >
> > > I'm not aware of any way. There isn't because device names and paths are
> > > not considered ABI. There are mechanisms for getting stable class device
> > > indices (e.g. i2c0, mmcblk0, fb0, fb1, etc.) though not implemented for
> > > fbN (and please don't add it).
> > >
> > > In any case, this should be an easy fix. Though if "linux,opened" or
> > > "linux,boot-display" is not set, then you'd still get "of-display.0":
> > >
> > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> > > index 78ae84187449..e46482cef9c7 100644
> > > --- a/drivers/of/platform.c
> > > +++ b/drivers/of/platform.c
> > > @@ -553,7 +553,7 @@ static int __init of_platform_default_populate_init(void)
> > > if (!of_get_property(node, "linux,opened", NULL) ||
> > > !of_get_property(node, "linux,boot-display", NULL))
> > > continue;
> > > - dev = of_platform_device_create(node, "of-display.0", NULL);
> > > + dev = of_platform_device_create(node, "of-display", NULL);
> > > of_node_put(node);
> > > if (WARN_ON(!dev))
> > > return -ENOMEM;
>
> Michal, does that patch look correct?
> I don't have that hardware, but that way the boot-display gets named
> "of-display" while all others get "of-display.x"....

Yes, that's inconsistent, and IIRC it's what I originally proposed to
preserve compatibility as much as possible.

The patch went through multiple iteration by me and Rob and the final
version that was merged uses the consistent but incompatible naming.

The other option would be to adapt the offb driver, presumably.

I don't understand how the device name figures in attaching the driver
to the device, the only other occurence of of-display is the name of the
offb and ofdrm drivers.

> > I've just replaced my clueless workaround with this patch on top of the
> > kernel found in Debian 12 (Bookworm), i.e. 6.1.27 at this point, and it
> > indeed fixes the black screen problem in the installer's context.
>
> ... at least it fixes the issue.

I would expect as much. I don't have the hardware either but keeping
what was there before, and only adding on top is kind of the least
disruptive way of adding new stuff.

Thanks

Michal

2023-07-10 17:13:45

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH 1/2] fbdev/offb: Update expected device name

On Wed, Apr 12, 2023 at 11:55:08AM +0200, Cyril Brulebois wrote:
> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> as spotted by Fr?d?ric Bonnard, the historical "of-display" device is
> gone: the updated logic creates "of-display.0" instead, then as many
> "of-display.N" as required.
>
> This means that offb no longer finds the expected device, which prevents
> the Debian Installer from setting up its interface, at least on ppc64el.
>
> It might be better to iterate on all possible nodes, but updating the
> hardcoded device from "of-display" to "of-display.0" is confirmed to fix
> the Debian Installer at the very least.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> Link: https://bugs.debian.org/1033058
> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> Cc: [email protected]
> Signed-off-by: Cyril Brulebois <[email protected]>
Reviewed-by: Michal Such?nek <[email protected]>

Thanks

Michal
> ---
> drivers/video/fbdev/offb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index b97d251d894b..6264c7184457 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -698,7 +698,7 @@ MODULE_DEVICE_TABLE(of, offb_of_match_display);
>
> static struct platform_driver offb_driver_display = {
> .driver = {
> - .name = "of-display",
> + .name = "of-display.0",
> .of_match_table = offb_of_match_display,
> },
> .probe = offb_probe_display,
> --
> 2.30.2
>

2023-07-10 17:16:50

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/ofdrm: Update expected device name

On Wed, Apr 12, 2023 at 11:55:09AM +0200, Cyril Brulebois wrote:
> Since commit 241d2fb56a18 ("of: Make OF framebuffer device names unique"),
> as spotted by Fr?d?ric Bonnard, the historical "of-display" device is
> gone: the updated logic creates "of-display.0" instead, then as many
> "of-display.N" as required.
>
> This means that offb no longer finds the expected device, which prevents
> the Debian Installer from setting up its interface, at least on ppc64el.
>
> Given the code similarity it is likely to affect ofdrm in the same way.
>
> It might be better to iterate on all possible nodes, but updating the
> hardcoded device from "of-display" to "of-display.0" is likely to help
> as a first step.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328
> Link: https://bugs.debian.org/1033058
> Fixes: 241d2fb56a18 ("of: Make OF framebuffer device names unique")
> Cc: [email protected] # v6.2+
> Signed-off-by: Cyril Brulebois <[email protected]>
Reviewed-by: Michal Such?nek <[email protected]>
> ---
> drivers/gpu/drm/tiny/ofdrm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/tiny/ofdrm.c b/drivers/gpu/drm/tiny/ofdrm.c
> index 6e349ca42485..92df021d71df 100644
> --- a/drivers/gpu/drm/tiny/ofdrm.c
> +++ b/drivers/gpu/drm/tiny/ofdrm.c
> @@ -1390,7 +1390,7 @@ MODULE_DEVICE_TABLE(of, ofdrm_of_match_display);
>
> static struct platform_driver ofdrm_platform_driver = {
> .driver = {
> - .name = "of-display",
> + .name = "of-display.0",
> .of_match_table = ofdrm_of_match_display,
> },
> .probe = ofdrm_probe,
> --
> 2.30.2
>