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.

v5:
- select DRM_CLIENT_SELECTION

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
Cc: Hans de Goede <hdego...@redhat.com>
Acked-by: Javier Martinez Canillas <javi...@redhat.com>
---
 drivers/gpu/drm/tiny/Kconfig    | 1 +
 drivers/gpu/drm/tiny/gm12u320.c | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
index d6194296d6da..86abd90d19aa 100644
--- a/drivers/gpu/drm/tiny/Kconfig
+++ b/drivers/gpu/drm/tiny/Kconfig
@@ -46,6 +46,7 @@ config DRM_CIRRUS_QEMU
 config DRM_GM12U320
        tristate "GM12U320 driver for USB projectors"
        depends on DRM && USB && MMU
+       select DRM_CLIENT_SELECTION
        select DRM_KMS_HELPER
        select DRM_GEM_SHMEM_HELPER
        help
diff --git a/drivers/gpu/drm/tiny/gm12u320.c b/drivers/gpu/drm/tiny/gm12u320.c
index 0bd7707c053e..0c17ae532fb4 100644
--- a/drivers/gpu/drm/tiny/gm12u320.c
+++ b/drivers/gpu/drm/tiny/gm12u320.c
@@ -9,6 +9,7 @@
 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_atomic_state_helper.h>
+#include <drm/drm_client_setup.h>
 #include <drm/drm_connector.h>
 #include <drm/drm_damage_helper.h>
 #include <drm/drm_drv.h>
@@ -632,6 +633,7 @@ static const struct drm_driver gm12u320_drm_driver = {
        .fops            = &gm12u320_fops,
        DRM_GEM_SHMEM_DRIVER_OPS,
        .gem_prime_import = gm12u320_gem_prime_import,
+       DRM_FBDEV_SHMEM_DRIVER_OPS,
 };
 
 static const struct drm_mode_config_funcs gm12u320_mode_config_funcs = {
@@ -706,7 +708,7 @@ static int gm12u320_usb_probe(struct usb_interface 
*interface,
        if (ret)
                goto err_put_device;
 
-       drm_fbdev_shmem_setup(dev, 0);
+       drm_client_setup(dev, NULL);
 
        return 0;
 
-- 
2.46.0

Reply via email to