mbox series

[0/7] drm/tegra: Convert fbdev to DRM client

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

Message

Thomas Zimmermann March 30, 2023, 8:36 a.m. UTC
Convert tegra's 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 tegra 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 (7):
  drm/tegra: Include <linux/of.h>
  drm/tegra: Include <linux/i2c.h>
  drm/tegra: Removed fb from struct tegra_fbdev
  drm/tegra: Remove struct tegra_fbdev
  drm/tegra: Hide fbdev support behind config option
  drm/tegra: Initialize fbdev DRM client
  drm/tegra: Implement fbdev emulation as in-kernel client

 drivers/gpu/drm/tegra/Makefile |   2 +
 drivers/gpu/drm/tegra/drm.c    |  23 +---
 drivers/gpu/drm/tegra/drm.h    |  27 ++--
 drivers/gpu/drm/tegra/fb.c     | 242 +--------------------------------
 drivers/gpu/drm/tegra/fbdev.c  | 240 ++++++++++++++++++++++++++++++++
 drivers/gpu/drm/tegra/output.c |   3 +
 drivers/gpu/drm/tegra/rgb.c    |   1 +
 7 files changed, 265 insertions(+), 273 deletions(-)
 create mode 100644 drivers/gpu/drm/tegra/fbdev.c

Comments

Thierry Reding April 5, 2023, 2:55 p.m. UTC | #1
On Thu, Mar 30, 2023 at 10:36:00AM +0200, Thomas Zimmermann wrote:
> Convert tegra's 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 tegra 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 (7):
>   drm/tegra: Include <linux/of.h>
>   drm/tegra: Include <linux/i2c.h>
>   drm/tegra: Removed fb from struct tegra_fbdev
>   drm/tegra: Remove struct tegra_fbdev
>   drm/tegra: Hide fbdev support behind config option
>   drm/tegra: Initialize fbdev DRM client
>   drm/tegra: Implement fbdev emulation as in-kernel client
> 
>  drivers/gpu/drm/tegra/Makefile |   2 +
>  drivers/gpu/drm/tegra/drm.c    |  23 +---
>  drivers/gpu/drm/tegra/drm.h    |  27 ++--
>  drivers/gpu/drm/tegra/fb.c     | 242 +--------------------------------
>  drivers/gpu/drm/tegra/fbdev.c  | 240 ++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/tegra/output.c |   3 +
>  drivers/gpu/drm/tegra/rgb.c    |   1 +
>  7 files changed, 265 insertions(+), 273 deletions(-)
>  create mode 100644 drivers/gpu/drm/tegra/fbdev.c

Seems to be working just fine. Applied, thanks.

Thierry
Thierry Reding April 5, 2023, 3:04 p.m. UTC | #2
From: Thierry Reding <treding@nvidia.com>

On Thu, 30 Mar 2023 10:36:00 +0200, Thomas Zimmermann wrote:
> Convert tegra's 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 tegra 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/7] drm/tegra: Include <linux/of.h>
      commit: 162b2ae95e0887ea75883bc419d55dd714b8fbf5
[2/7] drm/tegra: Include <linux/i2c.h>
      commit: 0e4ec6d97a2c6e96a5ec8d0edc00aa658238ed3f
[3/7] drm/tegra: Removed fb from struct tegra_fbdev
      commit: 5705d5b6a21e75c095df29deec8a13aa6b59f83c
[4/7] drm/tegra: Remove struct tegra_fbdev
      commit: fc5646b848222601d8be78b66b6498130437abe1
[5/7] drm/tegra: Hide fbdev support behind config option
      commit: 63ab4848d1d2eda1658ae82a3cb6eb7e03d28cec
[6/7] drm/tegra: Initialize fbdev DRM client
      commit: d9d1e306e70db905f29d05952c1499fd3c6ef6ef
[7/7] drm/tegra: Implement fbdev emulation as in-kernel client
      commit: 8e5113c627334ed32748d95ababd548171d2333d

Best regards,
Thomas Zimmermann April 5, 2023, 3:06 p.m. UTC | #3
Am 05.04.23 um 16:55 schrieb Thierry Reding:
> On Thu, Mar 30, 2023 at 10:36:00AM +0200, Thomas Zimmermann wrote:
>> Convert tegra's 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 tegra 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 (7):
>>    drm/tegra: Include <linux/of.h>
>>    drm/tegra: Include <linux/i2c.h>
>>    drm/tegra: Removed fb from struct tegra_fbdev
>>    drm/tegra: Remove struct tegra_fbdev
>>    drm/tegra: Hide fbdev support behind config option
>>    drm/tegra: Initialize fbdev DRM client
>>    drm/tegra: Implement fbdev emulation as in-kernel client
>>
>>   drivers/gpu/drm/tegra/Makefile |   2 +
>>   drivers/gpu/drm/tegra/drm.c    |  23 +---
>>   drivers/gpu/drm/tegra/drm.h    |  27 ++--
>>   drivers/gpu/drm/tegra/fb.c     | 242 +--------------------------------
>>   drivers/gpu/drm/tegra/fbdev.c  | 240 ++++++++++++++++++++++++++++++++
>>   drivers/gpu/drm/tegra/output.c |   3 +
>>   drivers/gpu/drm/tegra/rgb.c    |   1 +
>>   7 files changed, 265 insertions(+), 273 deletions(-)
>>   create mode 100644 drivers/gpu/drm/tegra/fbdev.c
> 
> Seems to be working just fine. Applied, thanks.

Thanks a lot!

> 
> Thierry