Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/logicvc: Run DRM default client setup

Call drm_client_setup() to run the kernel's default client setup
for DRM. Set fbdev_probe in struct drm_driver, so that the client
setup can start the common fbdev client.

The logicvc driver specifies a preferred color mode from the value
in struct drm_mode_config.preferred_depth. The fbdev client also
looks at this value for the default pixel format. Thus remove the
format selection from logicvc.

v5:
- select DRM_CLIENT_SELECTION

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Acked-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240924071734.98201-25-tzimmermann@suse.de

+5 -12
+1
drivers/gpu/drm/logicvc/Kconfig
··· 2 2 tristate "LogiCVC DRM" 3 3 depends on DRM 4 4 depends on OF || COMPILE_TEST 5 + select DRM_CLIENT_SELECTION 5 6 select DRM_KMS_HELPER 6 7 select DRM_KMS_DMA_HELPER 7 8 select DRM_GEM_DMA_HELPER
+4 -12
drivers/gpu/drm/logicvc/logicvc_drm.c
··· 16 16 #include <linux/types.h> 17 17 18 18 #include <drm/drm_atomic_helper.h> 19 + #include <drm/drm_client_setup.h> 19 20 #include <drm/drm_drv.h> 20 21 #include <drm/drm_fbdev_dma.h> 22 + #include <drm/drm_fourcc.h> 21 23 #include <drm/drm_gem_dma_helper.h> 22 24 #include <drm/drm_print.h> 23 25 ··· 57 55 .minor = 0, 58 56 59 57 DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(logicvc_drm_gem_dma_dumb_create), 58 + DRM_FBDEV_DMA_DRIVER_OPS, 60 59 }; 61 60 62 61 static struct regmap_config logicvc_drm_regmap_config = { ··· 304 301 struct regmap *regmap = NULL; 305 302 struct resource res; 306 303 void __iomem *base; 307 - unsigned int preferred_bpp; 308 304 int irq; 309 305 int ret; 310 306 ··· 441 439 goto error_mode; 442 440 } 443 441 444 - switch (drm_dev->mode_config.preferred_depth) { 445 - case 16: 446 - preferred_bpp = 16; 447 - break; 448 - case 24: 449 - case 32: 450 - default: 451 - preferred_bpp = 32; 452 - break; 453 - } 454 - drm_fbdev_dma_setup(drm_dev, preferred_bpp); 442 + drm_client_setup(drm_dev, NULL); 455 443 456 444 return 0; 457 445