On Tue, Apr 05, 2022 at 10:36:35AM +0200, Daniel Vetter wrote:
On Wed, Feb 09, 2022 at 01:19:26AM +0100, Javier Martinez Canillas wrote:
On 2/8/22 22:08, Daniel Vetter wrote:
This reverts commit fb561bf9abde49f7e00fdbf9ed2ccf2d86cac8ee.
With
commit 27599aacbaefcbf2af7b06b0029459bbf682000d Author: Thomas Zimmermann tzimmermann@suse.de Date: Tue Jan 25 10:12:18 2022 +0100
fbdev: Hot-unplug firmware fb devices on forced removal
this should be fixed properly and we can remove this somewhat hackish check here (e.g. this won't catch drm drivers if fbdev emulation isn't enabled).
Unfortunately this hack can't be reverted yet. Thomas' patch solves the issue of platform devices matched with fbdev drivers to be properly unregistered if a DRM driver attempts to remove all the conflicting framebuffers.
But the problem that fb561bf9abde ("fbdev: Prevent probing generic drivers if a FB is already registered") worked around is different. It happens when the DRM driver is probed before the {efi,simple}fb and other fbdev drivers, the kicking out of conflicting framebuffers already happened and these drivers will be allowed to probe even when a DRM driver is already present.
We need a clearer way to prevent it, but can't revert fb561bf9abde until that.
Yeah that entire area is a mess still, ideally we'd have something else creating the platform devices, and efifb/offb and all these would just bind against them.
Hm one idea that just crossed my mind: Could we have a flag in fb_info for fw drivers, and check this in framebuffer_register? Then at least all the logic would be in the fbdev core.
Ok coffee just kicked in, how exactly does your scenario work?
This code I'm reverting here is in the platform_dev->probe function. Thomas' patch removes the platform_dev. How exactly can you still probe against a platform dev if that platform dev is gone?
Iow, now that I reponder your case after a few weeks I'm no longer sure things work like you claim.
There is the issue that offb still bidns without a platform_dev, but that's not affected by this patch here. -Daniel