Re: [PATCH] drm/rockchip: use generic fbdev setup
From: John Keeping
Date: Mon Nov 01 2021 - 07:34:29 EST
On Sun, 31 Oct 2021 19:09:39 +0100
Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
> Am 30.10.21 um 14:05 schrieb John Keeping:
> > On Fri, Oct 29, 2021 at 09:00:08PM +0200, Thomas Zimmermann wrote:
> >> Am 29.10.21 um 13:50 schrieb John Keeping:
> >>> The Rockchip fbdev code does not add anything compared to
> >>> drm_fbdev_generic_setup(); the one custom function for .fb_mmap does the
> >>> same thing as gem_prime_mmap which is called by the helper.
> >>>
> >>> Signed-off-by: John Keeping <john@xxxxxxxxxxxx>
> >>> ---
> >>> drivers/gpu/drm/rockchip/Makefile | 1 -
> >>> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 10 +-
> >>> drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 2 -
> >>> drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 164 ------------------
> >>> drivers/gpu/drm/rockchip/rockchip_drm_fbdev.h | 24 ---
> >>> 5 files changed, 2 insertions(+), 199 deletions(-)
> >>> delete mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
> >>> delete mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.h
> >>>
> >>> diff --git a/drivers/gpu/drm/rockchip/Makefile b/drivers/gpu/drm/rockchip/Makefile
> >>> index 17a9e7eb2130..1a56f696558c 100644
> >>> --- a/drivers/gpu/drm/rockchip/Makefile
> >>> +++ b/drivers/gpu/drm/rockchip/Makefile
> >>> @@ -5,7 +5,6 @@
> >>> rockchipdrm-y := rockchip_drm_drv.o rockchip_drm_fb.o \
> >>> rockchip_drm_gem.o rockchip_drm_vop.o rockchip_vop_reg.o
> >>> -rockchipdrm-$(CONFIG_DRM_FBDEV_EMULATION) += rockchip_drm_fbdev.o
> >>> rockchipdrm-$(CONFIG_ROCKCHIP_ANALOGIX_DP) += analogix_dp-rockchip.o
> >>> rockchipdrm-$(CONFIG_ROCKCHIP_CDN_DP) += cdn-dp-core.o cdn-dp-reg.o
> >>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> >>> index 69c699459dce..20d81ae69828 100644
> >>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> >>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> >>> @@ -26,7 +26,6 @@
> >>> #include "rockchip_drm_drv.h"
> >>> #include "rockchip_drm_fb.h"
> >>> -#include "rockchip_drm_fbdev.h"
> >>> #include "rockchip_drm_gem.h"
> >>> #define DRIVER_NAME "rockchip"
> >>> @@ -159,10 +158,6 @@ static int rockchip_drm_bind(struct device *dev)
> >>> drm_mode_config_reset(drm_dev);
> >>> - ret = rockchip_drm_fbdev_init(drm_dev);
> >>> - if (ret)
> >>> - goto err_unbind_all;
> >>> -
> >>> /* init kms poll for handling hpd */
> >>> drm_kms_helper_poll_init(drm_dev);
> >>> @@ -170,10 +165,11 @@ static int rockchip_drm_bind(struct device *dev)
> >>> if (ret)
> >>> goto err_kms_helper_poll_fini;
> >>> + drm_fbdev_generic_setup(drm_dev, 32);
> >>
> >> Please pass 0 for the final argument. The fbdev helpers pick 32 by default.
> >> Maybe leave a comment if you require 32 here.
> >
> > I wanted to minimise the changes introduced here - passing 32 matches
> > the value passed to drm_fb_helper_initial_config() in the deleted code
> > from rockchip_drm_fbdev.c.
>
> In that case
>
> Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
Thanks!
> >
> > What do you think about changing this to 0 in a follow-up patch?
> >
>
> Yes. If possible, please provide a follow-up patch for this and set
> modeconfig.prefered_depth to 24.
I'll follow up with a patch setting this to zero, but I'm not convinced
I understand mode_config.prefered_depth well enough to be confident
setting it to 24 is the right thing to do.
Looking at commits 23d4e55f7eeb ("drm/vkms: Unset preferred_depth") and
550f17441f53 ("drm/cirrus: flip default from 24bpp to 16bpp") it seems
that this will have a wider impact beyond fbdev. 32bpp has been used
since the Rockchip driver was added so I don't see any real need to
change to 24 now.
Regards,
John