mbox series

[v2,0/8] drm/msm: Convert fbdev to DRM client

Message ID 20230403124538.8497-1-tzimmermann@suse.de
Headers show
Series drm/msm: Convert fbdev to DRM client | expand

Message

Thomas Zimmermann April 3, 2023, 12:45 p.m. UTC
Convert msm' 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 msm 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.

v2:
	* handle 'fbdev' module parameter in fbdev code
	* add missing kfree()
	* minor fixes

Thomas Zimmermann (8):
  drm/msm: Include <linux/io.h>
  drm/msm: Clear aperture ownership outside of fbdev code
  drm/msm: Remove fb from struct msm_fbdev
  drm/msm: Remove struct msm_fbdev
  drm/msm: Remove fbdev from struct msm_drm_private
  drm/msm: Move module parameter 'fbdev' to fbdev code
  drm/msm: Initialize fbdev DRM client
  drm/msm: Implement fbdev emulation as in-kernel client

 drivers/gpu/drm/msm/msm_debugfs.c  |   6 +-
 drivers/gpu/drm/msm/msm_drv.c      |  27 ++---
 drivers/gpu/drm/msm/msm_drv.h      |  12 +-
 drivers/gpu/drm/msm/msm_fbdev.c    | 173 +++++++++++++++++------------
 drivers/gpu/drm/msm/msm_io_utils.c |   1 +
 5 files changed, 125 insertions(+), 94 deletions(-)


base-commit: a7180debb9c631375684f4d717466cfb9f238660

Comments

Dmitry Baryshkov April 5, 2023, 1:35 a.m. UTC | #1
On Mon, 03 Apr 2023 14:45:30 +0200, Thomas Zimmermann wrote:
> Convert msm' 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 msm 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.
> 
> [...]

Applied, thanks!

[1/8] drm/msm: Include <linux/io.h>
      https://gitlab.freedesktop.org/lumag/msm/-/commit/62c58ffe011d
[2/8] drm/msm: Clear aperture ownership outside of fbdev code
      https://gitlab.freedesktop.org/lumag/msm/-/commit/f4de16da5b40
[3/8] drm/msm: Remove fb from struct msm_fbdev
      https://gitlab.freedesktop.org/lumag/msm/-/commit/a5ddc0f1a7bc
[4/8] drm/msm: Remove struct msm_fbdev
      https://gitlab.freedesktop.org/lumag/msm/-/commit/09cbdbafbe9f
[5/8] drm/msm: Remove fbdev from struct msm_drm_private
      https://gitlab.freedesktop.org/lumag/msm/-/commit/37e8bad3ae5d
[6/8] drm/msm: Move module parameter 'fbdev' to fbdev code
      https://gitlab.freedesktop.org/lumag/msm/-/commit/2fa4748b5ad8
[7/8] drm/msm: Initialize fbdev DRM client
      https://gitlab.freedesktop.org/lumag/msm/-/commit/7e563538d210
[8/8] drm/msm: Implement fbdev emulation as in-kernel client
      https://gitlab.freedesktop.org/lumag/msm/-/commit/5ba5b96d3327

Best regards,
Thomas Zimmermann April 5, 2023, 7:13 a.m. UTC | #2
Am 05.04.23 um 03:35 schrieb Dmitry Baryshkov:
> 
> On Mon, 03 Apr 2023 14:45:30 +0200, Thomas Zimmermann wrote:
>> Convert msm' 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 msm 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.
>>
>> [...]
> 
> Applied, thanks!

Great, thanks a lot!

Best regards
Thomas

> 
> [1/8] drm/msm: Include <linux/io.h>
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/62c58ffe011d
> [2/8] drm/msm: Clear aperture ownership outside of fbdev code
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/f4de16da5b40
> [3/8] drm/msm: Remove fb from struct msm_fbdev
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/a5ddc0f1a7bc
> [4/8] drm/msm: Remove struct msm_fbdev
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/09cbdbafbe9f
> [5/8] drm/msm: Remove fbdev from struct msm_drm_private
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/37e8bad3ae5d
> [6/8] drm/msm: Move module parameter 'fbdev' to fbdev code
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/2fa4748b5ad8
> [7/8] drm/msm: Initialize fbdev DRM client
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/7e563538d210
> [8/8] drm/msm: Implement fbdev emulation as in-kernel client
>        https://gitlab.freedesktop.org/lumag/msm/-/commit/5ba5b96d3327
> 
> Best regards,