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;