Re: [PATCH v2 2/5] fbdev: Give atafb proper parent
Michael Schmitz <[email protected]>
| Newsgroups | org.kernel.vger.linux-fbdev,org.kernel.vger.linux-m68k |
|---|---|
| Message-ID | <[email protected]> |
Hi Thomas, Am 17.08.2026 um 19:57 schrieb Thomas Zimmermann: >>>> 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. >> >>> 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 > > Best regards > Thomas > >> >> Cheers, >> >> Michael >> >>>> >>>> Signed-off-by: Miro Kropacek <[email protected]> >>>> Reviewed-by: Michael Schmitz <[email protected]> >>>> Signed-off-by: Michael Schmitz <[email protected]> >>>> Cc: <[email protected]> >>>> Link: https://lists.debian.org/debian-68k/2026/08/msg00000.html >>>> --- >>>> drivers/video/fbdev/atafb.c | 5 +++++ >>>> 1 file changed, 5 insertions(+) >>>> >>>> diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c >>>> index b8ed1c537293..3d540803dc2b 100644 >>>> --- a/drivers/video/fbdev/atafb.c >>>> +++ b/drivers/video/fbdev/atafb.c >>>> @@ -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 >>> >>>> fb_info.fbops = &atafb_ops; >>>> // try to set default (detected; requested) var >>>> do_fb_set_var(&atafb_predefined[default_par - 1], 1); >>> >> >