From: Michael Schmitz <schmitzmic@gmail.com> Date: 2026-08-16 07:38:03
From: Miro Kropacek <redacted>
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Signed-off-by: Miro Kropacek <redacted>
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Cc: <redacted>
Link: https://lists.debian.org/debian-68k/2026/08/msg00000.html
---
drivers/video/fbdev/atafb.c | 5 +++++
1 file changed, 5 insertions(+)
From: Miro Kropacek <redacted>
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Signed-off-by: Miro Kropacek <redacted>
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Cc: <redacted>
Link: https://lists.debian.org/debian-68k/2026/08/msg00000.html
Did anything on the fbdev patches (#2-#4) changed between v1 and v2?
Helge
From: Michael Schmitz <schmitzmic@gmail.com> Date: 2026-08-16 18:37:09
Hi Helge,
no changes to the fbdev patches - just didn't know how else to avoid
issues with b4.
Cheers,
Michael
Am 17.08.2026 um 02:38 schrieb Helge Deller:
On 8/16/26 09:37, Michael Schmitz wrote:
quoted
From: Miro Kropacek <redacted>
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Signed-off-by: Miro Kropacek <redacted>
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Cc: <redacted>
Link: https://lists.debian.org/debian-68k/2026/08/msg00000.html
Did anything on the fbdev patches (#2-#4) changed between v1 and v2?
Helge
From: Thomas Zimmermann <tzimmermann@suse.de> Date: 2026-08-17 06:34:11
Hi
Am 16.08.26 um 09:37 schrieb Michael Schmitz:
From: Miro Kropacek <redacted>
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Do you really have these devices to test with?
If so, could you also replace the hard coded fb_info with a call to
framebuffer_alloc()?
From: Michael Schmitz <schmitzmic@gmail.com> Date: 2026-08-17 07:50:01
Hi Thomas,
Am 17.08.2026 um 18:34 schrieb Thomas Zimmermann:
Hi
Am 16.08.26 um 09:37 schrieb Michael Schmitz:
quoted
From: Miro Kropacek <redacted>
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Do you really have these devices to test with?
Not the particular hardware that patches 3 and 4 add support for, but
the 'normal' Videl that is found in every Falcon, yes.
If so, could you also replace the hard coded fb_info with a call to
framebuffer_alloc()?
Can't see how that would work - fb_info isn't passed to all functions
that need to use it, especially in the hardware detection phase (hence
the use of a static fb_info struct)?
Cheers,
Michael
@@ -3101,6 +3101,11 @@ static int __init atafb_probe(struct
platform_device *pdev)
#endif /* ATAFB_EXT */
// strcpy(fb_info.mode->name, "Atari Builtin ");
+ /* Parent the fb device properly: without this fb0 registers as a
+ * virtual sysfs device with no /sys/class/graphics/fb0/device link,
+ * which makes Xorg's fbdevhw reject it ("No devices detected").
+ */
+ fb_info.device = &pdev->dev;
Because this is supposed to happen in framebuffer_alloc() and keeping it
there would be preferable.
Best regards
Thomas
quoted
fb_info.fbops = &atafb_ops;
// try to set default (detected; requested) var
do_fb_set_var(&atafb_predefined[default_par - 1], 1);
From: Thomas Zimmermann <tzimmermann@suse.de> Date: 2026-08-17 07:58:09
Am 17.08.26 um 09:49 schrieb Michael Schmitz:
Hi Thomas,
Am 17.08.2026 um 18:34 schrieb Thomas Zimmermann:
quoted
Hi
Am 16.08.26 um 09:37 schrieb Michael Schmitz:
quoted
From: Miro Kropacek <redacted>
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Do you really have these devices to test with?
Not the particular hardware that patches 3 and 4 add support for, but
the 'normal' Videl that is found in every Falcon, yes.
quoted
If so, could you also replace the hard coded fb_info with a call to
framebuffer_alloc()?
Can't see how that would work - fb_info isn't passed to all functions
that need to use it, especially in the hardware detection phase (hence
the use of a static fb_info struct)?
You'd have to modify the driver to pass the allocated instance, of
course. It's not a trivial oneliner, but if this driver is still
relevant, it might be worth improving it.
Best regards
Thomas
@@ -3101,6 +3101,11 @@ static int __init atafb_probe(struct
platform_device *pdev)
#endif /* ATAFB_EXT */
// strcpy(fb_info.mode->name, "Atari Builtin ");
+ /* Parent the fb device properly: without this fb0 registers as a
+ * virtual sysfs device with no /sys/class/graphics/fb0/device
link,
+ * which makes Xorg's fbdevhw reject it ("No devices detected").
+ */
+ fb_info.device = &pdev->dev;
Because this is supposed to happen in framebuffer_alloc() and keeping it
there would be preferable.
Best regards
Thomas
quoted
fb_info.fbops = &atafb_ops;
// try to set default (detected; requested) var
do_fb_set_var(&atafb_predefined[default_par - 1], 1);
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)
From: Michael Schmitz <schmitzmic@gmail.com> Date: 2026-08-17 19:11:28
Hi Thomas,
Am 17.08.2026 um 19:57 schrieb Thomas Zimmermann:
quoted
quoted
quoted
The atafb fb device registers no parent, causing a missing symlink
(/sys/class/graphics/fb0/device). Xorg fbdevhw driver looks for that
symlink when scanning for devices, so add a parent node for atafb.
Do you really have these devices to test with?
Not the particular hardware that patches 3 and 4 add support for, but
the 'normal' Videl that is found in every Falcon, yes.
N.B.: actual hardware won't be essential to test - an emulator such as
ARAnyM will do fine.
quoted
quoted
If so, could you also replace the hard coded fb_info with a call to
framebuffer_alloc()?
Can't see how that would work - fb_info isn't passed to all functions
that need to use it, especially in the hardware detection phase (hence
the use of a static fb_info struct)?
On second thought, depending on how early in driver init fb_info is
needed, I may get away with turning it into a struct *fb_info and using
that where it can't easily be passed.
You'd have to modify the driver to pass the allocated instance, of
course. It's not a trivial oneliner, but if this driver is still
relevant, it might be worth improving it.
Your point is taken - I'll take a look at what would be required to pass
fb_info to all users. It's been nineteen years since rewrote atafb so
getting my head around the call sequences may take awhile.
Cheers,
Michael
@@ -3101,6 +3101,11 @@ static int __init atafb_probe(struct
platform_device *pdev)
#endif /* ATAFB_EXT */
// strcpy(fb_info.mode->name, "Atari Builtin ");
+ /* Parent the fb device properly: without this fb0 registers as a
+ * virtual sysfs device with no /sys/class/graphics/fb0/device
link,
+ * which makes Xorg's fbdevhw reject it ("No devices detected").
+ */
+ fb_info.device = &pdev->dev;
Because this is supposed to happen in framebuffer_alloc() and keeping it
there would be preferable.
Best regards
Thomas
quoted
fb_info.fbops = &atafb_ops;
// try to set default (detected; requested) var
do_fb_set_var(&atafb_predefined[default_par - 1], 1);
From: Michael Schmitz <schmitzmic@gmail.com> Date: 2026-08-19 01:36:01
Hi Thomas,
On 17/08/26 19:57, Thomas Zimmermann wrote:
quoted
quoted
If so, could you also replace the hard coded fb_info with a call to
framebuffer_alloc()?
Can't see how that would work - fb_info isn't passed to all functions
that need to use it, especially in the hardware detection phase
(hence the use of a static fb_info struct)?
You'd have to modify the driver to pass the allocated instance, of
course. It's not a trivial oneliner, but if this driver is still
relevant, it might be worth improving it.
Wasn't all that hard after all - do you want that patch on top of the
current series or replacing Miro's patch 2, Helge?
Cheers,
Michael
@@ -3101,6 +3101,11 @@ static int __init atafb_probe(struct
platform_device *pdev)
#endif /* ATAFB_EXT */
// strcpy(fb_info.mode->name, "Atari Builtin ");
+ /* Parent the fb device properly: without this fb0 registers as a
+ * virtual sysfs device with no /sys/class/graphics/fb0/device
link,
+ * which makes Xorg's fbdevhw reject it ("No devices detected").
+ */
+ fb_info.device = &pdev->dev;
Because this is supposed to happen in framebuffer_alloc() and
keeping it
there would be preferable.
Best regards
Thomas
quoted
fb_info.fbops = &atafb_ops;
// try to set default (detected; requested) var
do_fb_set_var(&atafb_predefined[default_par - 1], 1);