[PATCH 00/10] Set up generic fbdev after registering device

Thomas Zimmermann tzimmermann at suse.de
Tue Apr 7 13:00:55 UTC 2020


Hi Noralf

Am 07.04.20 um 13:02 schrieb Noralf Trønnes:
> 
> 
> Den 06.04.2020 15.43, skrev Thomas Zimmermann:
>> Generic fbdev emulation is a DRM client. If possible, it should behave
>> like userspace clients. Therefore it should not run before the driver
>> registered the new DRM device. If the setup function fails, the driver
>> should not report an error.
>>
>> This is a follow-up patchset to the discussion at [1].  I went
>> through all calls to drm_fbdev_generic_setup(), moved them to the
>> final operation of their driver's probe function, and removed the
>> return value.
>>
>> Built-tested on x86-64, aarch64 and arm.
>>
>> [1] https://lore.kernel.org/dri-devel/20200403135828.2542770-1-daniel.vetter@ffwll.ch/T/#m216b5b37aeeb7b28d55ad73b7a702b3d1d7bf867
>>
> 
> Thanks for doing this, series is:
> 
> Reviewed-by: Noralf Trønnes <noralf at tronnes.org>
> 
> With so many drivers using generic fbdev I wondered if we could make it
> the default and let DRM core handle it (would pull drm_fb_helper into
> drm.ko).
> 
> Something like this at the end of drm_dev_register():
> 
> if (!dev->fb_helper)
> 	drm_fbdev_generic_setup(dev, 0);
> 
> AFAICS all drivers that don't use generic fbdev, do fbdev setup before
> calling drm_dev_register() except msm so that would need some
> adjustment, calling drm_fb_helper_init() before drm_dev_register() would do.
> 
> One missing piece is for drivers (like vc4) that uses 16 bpp on fbdev to
> save on memory, not sure how that should be handled, an optional
> drm_mode_config->fbdev_bpp maybe.
> 
> Having DRM core take care of fbdev emulation was an idea Laurent had
> which was the spark that set me off making the generic fbdev emulation.
> 
> Maybe it's still too early to make this move, I don't know.

I think we should wait a bit. As you mentioned, there are drivers that
have an fbdev bpp that differs from the preferred one. There might also
be a chicken-and-egg problem with core and fb-helper modules.

Additionally, we should think about possible other in-kernel clients
(e.g., the bootsplash) and how they would interact with such defaults.

At some later point, we could introduce an interface that sets up all
available in-kernel clients.

Best regards
Thomas

> 
> Noralf.
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200407/45d9d765/attachment.sig>


More information about the dri-devel mailing list