mbox series

[0/5] drm/exynos: Convert fbdev to DRM client

Message ID 20230330073635.7409-1-tzimmermann@suse.de (mailing list archive)
Headers show
Series drm/exynos: Convert fbdev to DRM client | expand

Message

Thomas Zimmermann March 30, 2023, 7:36 a.m. UTC
Convert exynos' fbdev code to struct drm_client. Replaces the current
ad-hoc integration. The conversion includes a number of cleanups. As
with most other drivers' fbdev emulation, fbdev in exynos is now just
another DRM client that runs after the DRM device has been registered.

Once all drivers' fbdev emulation has been converted to struct drm_client,
we can attempt to add additional in-kernel clients. A DRM-based dmesg
log or a bootsplash are commonly mentioned. DRM can then switch easily
among the existing clients if/when required.

I did the conversion from similar experience with other drivers. But I
don't have the hardware to test this. Any testing is welcome.

Thomas Zimmermann (5):
  drm/exynos: Remove exynos_gem from struct exynos_drm_fbdev
  drm/exynos: Remove struct exynos_drm_fbdev
  drm/exynos: Remove fb_helper from struct exynos_drm_private
  drm/exynos: Initialize fbdev DRM client
  drm/exynos: Implement fbdev emulation as in-kernel client

 drivers/gpu/drm/exynos/exynos_drm_drv.c   |  13 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.h   |   2 -
 drivers/gpu/drm/exynos/exynos_drm_fb.c    |   2 -
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 174 +++++++++++-----------
 drivers/gpu/drm/exynos/exynos_drm_fbdev.h |  20 +--
 5 files changed, 94 insertions(+), 117 deletions(-)

Comments

Marek Szyprowski March 31, 2023, 10:36 a.m. UTC | #1
On 30.03.2023 09:36, Thomas Zimmermann wrote:
> Convert exynos' fbdev code to struct drm_client. Replaces the current
> ad-hoc integration. The conversion includes a number of cleanups. As
> with most other drivers' fbdev emulation, fbdev in exynos is now just
> another DRM client that runs after the DRM device has been registered.
>
> Once all drivers' fbdev emulation has been converted to struct drm_client,
> we can attempt to add additional in-kernel clients. A DRM-based dmesg
> log or a bootsplash are commonly mentioned. DRM can then switch easily
> among the existing clients if/when required.
>
> I did the conversion from similar experience with other drivers. But I
> don't have the hardware to test this. Any testing is welcome.

Seems to be working fine. Tested with default framebuffer based console 
and simple tool that writes RGB data to /dev/fb0.

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>


> Thomas Zimmermann (5):
>    drm/exynos: Remove exynos_gem from struct exynos_drm_fbdev
>    drm/exynos: Remove struct exynos_drm_fbdev
>    drm/exynos: Remove fb_helper from struct exynos_drm_private
>    drm/exynos: Initialize fbdev DRM client
>    drm/exynos: Implement fbdev emulation as in-kernel client
>
>   drivers/gpu/drm/exynos/exynos_drm_drv.c   |  13 +-
>   drivers/gpu/drm/exynos/exynos_drm_drv.h   |   2 -
>   drivers/gpu/drm/exynos/exynos_drm_fb.c    |   2 -
>   drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 174 +++++++++++-----------
>   drivers/gpu/drm/exynos/exynos_drm_fbdev.h |  20 +--
>   5 files changed, 94 insertions(+), 117 deletions(-)
>
Best regards
Thomas Zimmermann April 3, 2023, 10:41 a.m. UTC | #2
Am 31.03.23 um 12:36 schrieb Marek Szyprowski:
> On 30.03.2023 09:36, Thomas Zimmermann wrote:
>> Convert exynos' fbdev code to struct drm_client. Replaces the current
>> ad-hoc integration. The conversion includes a number of cleanups. As
>> with most other drivers' fbdev emulation, fbdev in exynos is now just
>> another DRM client that runs after the DRM device has been registered.
>>
>> Once all drivers' fbdev emulation has been converted to struct drm_client,
>> we can attempt to add additional in-kernel clients. A DRM-based dmesg
>> log or a bootsplash are commonly mentioned. DRM can then switch easily
>> among the existing clients if/when required.
>>
>> I did the conversion from similar experience with other drivers. But I
>> don't have the hardware to test this. Any testing is welcome.
> 
> Seems to be working fine. Tested with default framebuffer based console
> and simple tool that writes RGB data to /dev/fb0.
> 
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>

Thanks a lot for testing.

> 
> 
>> Thomas Zimmermann (5):
>>     drm/exynos: Remove exynos_gem from struct exynos_drm_fbdev
>>     drm/exynos: Remove struct exynos_drm_fbdev
>>     drm/exynos: Remove fb_helper from struct exynos_drm_private
>>     drm/exynos: Initialize fbdev DRM client
>>     drm/exynos: Implement fbdev emulation as in-kernel client
>>
>>    drivers/gpu/drm/exynos/exynos_drm_drv.c   |  13 +-
>>    drivers/gpu/drm/exynos/exynos_drm_drv.h   |   2 -
>>    drivers/gpu/drm/exynos/exynos_drm_fb.c    |   2 -
>>    drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 174 +++++++++++-----------
>>    drivers/gpu/drm/exynos/exynos_drm_fbdev.h |  20 +--
>>    5 files changed, 94 insertions(+), 117 deletions(-)
>>
> Best regards