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 amdgpu driver specifies a preferred color mode depending on
the available video memory, with a default of 32. Adapt this for
the new client interface.

v5:
- select DRM_CLIENT_SELECTION
v2:
- style changes

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
Cc: Alex Deucher <alexander.deuc...@amd.com>
Cc: "Christian König" <christian.koe...@amd.com>
Cc: Xinhui Pan <xinhui....@amd.com>
Tested-by: Hamza Mahfooz <hamza.mahf...@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahf...@amd.com>
Acked-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/Kconfig      |  1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 11 +++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig 
b/drivers/gpu/drm/amd/amdgpu/Kconfig
index fc3237da8090..680a94c361ba 100644
--- a/drivers/gpu/drm/amd/amdgpu/Kconfig
+++ b/drivers/gpu/drm/amd/amdgpu/Kconfig
@@ -5,6 +5,7 @@ config DRM_AMDGPU
        depends on DRM && PCI && MMU
        depends on !UML
        select FW_LOADER
+       select DRM_CLIENT_SELECTION
        select DRM_DISPLAY_DP_HELPER
        select DRM_DISPLAY_DSC_HELPER
        select DRM_DISPLAY_HDMI_HELPER
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 86cff30d5c4e..cd82437cf860 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -23,6 +23,7 @@
  */
 
 #include <drm/amdgpu_drm.h>
+#include <drm/drm_client_setup.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_fbdev_ttm.h>
 #include <drm/drm_gem.h>
@@ -2364,11 +2365,15 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
         */
        if (adev->mode_info.mode_config_initialized &&
            !list_empty(&adev_to_drm(adev)->mode_config.connector_list)) {
+               const struct drm_format_info *format;
+
                /* select 8 bpp console on low vram cards */
                if (adev->gmc.real_vram_size <= (32*1024*1024))
-                       drm_fbdev_ttm_setup(adev_to_drm(adev), 8);
+                       format = drm_format_info(DRM_FORMAT_C8);
                else
-                       drm_fbdev_ttm_setup(adev_to_drm(adev), 32);
+                       format = NULL;
+
+               drm_client_setup(adev_to_drm(adev), format);
        }
 
        ret = amdgpu_debugfs_init(adev);
@@ -2980,6 +2985,7 @@ static const struct drm_driver amdgpu_kms_driver = {
        .num_ioctls = ARRAY_SIZE(amdgpu_ioctls_kms),
        .dumb_create = amdgpu_mode_dumb_create,
        .dumb_map_offset = amdgpu_mode_dumb_mmap,
+       DRM_FBDEV_TTM_DRIVER_OPS,
        .fops = &amdgpu_driver_kms_fops,
        .release = &amdgpu_driver_release_kms,
 #ifdef CONFIG_PROC_FS
@@ -3006,6 +3012,7 @@ const struct drm_driver amdgpu_partition_driver = {
        .num_ioctls = ARRAY_SIZE(amdgpu_ioctls_kms),
        .dumb_create = amdgpu_mode_dumb_create,
        .dumb_map_offset = amdgpu_mode_dumb_mmap,
+       DRM_FBDEV_TTM_DRIVER_OPS,
        .fops = &amdgpu_driver_kms_fops,
        .release = &amdgpu_driver_release_kms,
 
-- 
2.46.0

Reply via email to