Message ID | 20230124134010.30263-1-tzimmermann@suse.de |
---|---|
Headers | show |
Series | drm/fb-helper: Various cleanups | expand |
Hello Thomas, On 1/24/23 14:40, Thomas Zimmermann wrote: > Test for connectors in the client code and remove a similar test > from the generic fbdev emulation. Do nothing if the test fails. > Not having connectors indicates a driver bug. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > --- Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> but I've a question below. > drivers/gpu/drm/drm_client.c | 5 +++++ > drivers/gpu/drm/drm_fbdev_generic.c | 5 ----- > 2 files changed, 5 insertions(+), 5 deletions(-) [...] > --- a/drivers/gpu/drm/drm_fbdev_generic.c > +++ b/drivers/gpu/drm/drm_fbdev_generic.c > @@ -389,11 +389,6 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client) > if (dev->fb_helper) > return drm_fb_helper_hotplug_event(dev->fb_helper); > > - if (!dev->mode_config.num_connector) { > - drm_dbg_kms(dev, "No connectors found, will not create framebuffer!\n"); > - return 0; > - } > - What about the following code snippet: if (!drm_drv_uses_atomic_modeset(dev)) drm_helper_disable_unused_functions(dev); that seems to be something that should be in the core client dev hotplug as well, since it isn't specific to the fbdev emulation client ?
On 1/24/23 14:40, Thomas Zimmermann wrote: > Signal failed hotplugging with a flag in struct drm_client_dev. If set, > the client helpers will not further try to set up the fbdev display. > > This used to be signalled with a combination of cleared pointers in > struct drm_fb_helper, which prevents us from initializing these pointers > early after allocation. > > The change also harmonizes behavior among DRM clients. Additional DRM > clients will now handle failed hotplugging like fbdev does. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > --- Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
On 1/24/23 14:40, Thomas Zimmermann wrote: > Initialize the fb-helper's preferred_bpp field early from within > drm_fb_helper_prepare(); instead of the later client hot-plugging > callback. This simplifies the generic fbdev setup function. > > No real changes, but all drivers' fbdev code has to be adapted. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > --- Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
On 1/24/23 14:40, Thomas Zimmermann wrote: > The fbdev framebuffer cleanup in drm_fbdev_fb_destroy() calls > drm_fbdev_release() and drm_fbdev_cleanup(). Inline both into the > caller. No functional changes. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > --- Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Hi Am 25.01.23 um 09:30 schrieb Javier Martinez Canillas: > Hello Thomas, > > On 1/24/23 14:40, Thomas Zimmermann wrote: >> Test for connectors in the client code and remove a similar test >> from the generic fbdev emulation. Do nothing if the test fails. >> Not having connectors indicates a driver bug. >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> >> --- > > Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> > > but I've a question below. > >> drivers/gpu/drm/drm_client.c | 5 +++++ >> drivers/gpu/drm/drm_fbdev_generic.c | 5 ----- >> 2 files changed, 5 insertions(+), 5 deletions(-) > > [...] > >> --- a/drivers/gpu/drm/drm_fbdev_generic.c >> +++ b/drivers/gpu/drm/drm_fbdev_generic.c >> @@ -389,11 +389,6 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client) >> if (dev->fb_helper) >> return drm_fb_helper_hotplug_event(dev->fb_helper); >> >> - if (!dev->mode_config.num_connector) { >> - drm_dbg_kms(dev, "No connectors found, will not create framebuffer!\n"); >> - return 0; >> - } >> - > > What about the following code snippet: > > if (!drm_drv_uses_atomic_modeset(dev)) > drm_helper_disable_unused_functions(dev); > > that seems to be something that should be in the core client dev hotplug > as well, since it isn't specific to the fbdev emulation client ? That's in the middle of the initial probing code and disables pipeline elements in non-atomic modesetting. TBH I don't dare to move it around. If we ever have other clients, we can attempt the put it into the client. Best regards Thomas >