On Tue, Sep 24, 2024 at 4:58 AM Thomas Zimmermann <tzimmerm...@suse.de> wrote: > > The sysfb framebuffer handling only operates on graphics devices > that provide the system's firmware framebuffer. If that device is > not known, assume that any graphics device has been initialized by > firmware. > > Fixes a problem on i915 where sysfb does not release the firmware > framebuffer after the native graphics driver loaded. > > Reported-by: Borah, Chaitanya Kumar <chaitanya.kumar.bo...@intel.com> > Closes: > https://lore.kernel.org/dri-devel/sj1pr11mb6129efb8ce63d1ef6d932f94b9...@sj1pr11mb6129.namprd11.prod.outlook.com/ > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12160 > Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> > Fixes: b49420d6a1ae ("video/aperture: optionally match the device in > sysfb_disable()") > Cc: Javier Martinez Canillas <javi...@redhat.com> > Cc: Thomas Zimmermann <tzimmerm...@suse.de> > Cc: Helge Deller <del...@gmx.de> > Cc: Sam Ravnborg <s...@ravnborg.org> > Cc: Daniel Vetter <daniel.vet...@ffwll.ch> > Cc: Alex Deucher <alexander.deuc...@amd.com> > Cc: dri-devel@lists.freedesktop.org > Cc: Linux regression tracking (Thorsten Leemhuis) <regressi...@leemhuis.info> > Cc: <sta...@vger.kernel.org> # v6.11+
Thanks for fixing this. Acked-by: Alex Deucher <alexander.deuc...@amd.com> > --- > drivers/firmware/sysfb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c > index 02a07d3d0d40..a3df782fa687 100644 > --- a/drivers/firmware/sysfb.c > +++ b/drivers/firmware/sysfb.c > @@ -67,9 +67,11 @@ static bool sysfb_unregister(void) > void sysfb_disable(struct device *dev) > { > struct screen_info *si = &screen_info; > + struct device *parent; > > mutex_lock(&disable_lock); > - if (!dev || dev == sysfb_parent_dev(si)) { > + parent = sysfb_parent_dev(si); > + if (!dev || !parent || dev == parent) { > sysfb_unregister(); > disabled = true; > } > -- > 2.46.0 >