[PATCH 3/3] drm/amdgpu: replace dce_virtual with amdgpu_vkms (v3)

Taylor, Ryan Ryan.Taylor at amd.com
Fri Jul 23 15:50:32 UTC 2021


[AMD Official Use Only]

Thanks Alex! I will make these changes.

Best,
Ryan
________________________________
From: Alex Deucher <alexdeucher at gmail.com>
Sent: Friday, July 23, 2021 7:33 AM
To: Taylor, Ryan <Ryan.Taylor at amd.com>
Cc: Maling list - DRI developers <dri-devel at lists.freedesktop.org>; amd-gfx list <amd-gfx at lists.freedesktop.org>; kernel test robot <lkp at intel.com>; Daniel Vetter <daniel.vetter at ffwll.ch>; Siqueira, Rodrigo <Rodrigo.Siqueira at amd.com>; Melissa Wen <melissa.srw at gmail.com>; Deucher, Alexander <Alexander.Deucher at amd.com>
Subject: Re: [PATCH 3/3] drm/amdgpu: replace dce_virtual with amdgpu_vkms (v3)

On Wed, Jul 21, 2021 at 1:07 PM Ryan Taylor <Ryan.Taylor at amd.com> wrote:
>
> Move dce_virtual into amdgpu_vkms and update all references to
> dce_virtual with amdgpu_vkms.
>
> v2: Removed more references to dce_virtual.
>
> v3: Restored display modes from previous implementation.
>
> Reported-by: kernel test robot <lkp at intel.com>
> Suggested-by: Alex Deucher <Alexander.Deucher at amd.com>
> Signed-off-by: Ryan Taylor <Ryan.Taylor at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/Makefile      |   3 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 234 ++++++++++++++++++++++-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h |   5 +-
>  drivers/gpu/drm/amd/amdgpu/cik.c         |  10 +-
>  drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 223 ---------------------
>  drivers/gpu/drm/amd/amdgpu/dce_virtual.h |  30 ---
>  drivers/gpu/drm/amd/amdgpu/nv.c          |  20 +-
>  drivers/gpu/drm/amd/amdgpu/si.c          |   8 +-
>  drivers/gpu/drm/amd/amdgpu/soc15.c       |  10 +-
>  drivers/gpu/drm/amd/amdgpu/vi.c          |  14 +-
>  10 files changed, 264 insertions(+), 293 deletions(-)
>  delete mode 100644 drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>  delete mode 100644 drivers/gpu/drm/amd/amdgpu/dce_virtual.h
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile
> index 30cbcd5ce1cc..0d814c957461 100644
> --- a/drivers/gpu/drm/amd/amdgpu/Makefile
> +++ b/drivers/gpu/drm/amd/amdgpu/Makefile
> @@ -120,8 +120,7 @@ amdgpu-y += \
>  amdgpu-y += \
>         dce_v10_0.o \
>         dce_v11_0.o \
> -       amdgpu_vkms.o \
> -       dce_virtual.o
> +       amdgpu_vkms.o
>
>  # add GFX block
>  amdgpu-y += \
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
> index d5c1f1c58f5f..538d41e6666a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
> @@ -5,6 +5,15 @@
>  #include <drm/drm_vblank.h>
>
>  #include "amdgpu.h"
> +#ifdef CONFIG_DRM_AMDGPU_SI
> +#include "dce_v6_0.h"
> +#endif
> +#ifdef CONFIG_DRM_AMDGPU_CIK
> +#include "dce_v8_0.h"
> +#endif
> +#include "dce_v10_0.h"
> +#include "dce_v11_0.h"
> +#include "ivsrcid/ivsrcid_vislands30.h"
>  #include "amdgpu_vkms.h"
>  #include "amdgpu_display.h"
>
> @@ -180,12 +189,45 @@ static const struct drm_connector_funcs amdgpu_vkms_connector_funcs = {
>
>  static int amdgpu_vkms_conn_get_modes(struct drm_connector *connector)
>  {
> -       int count;
> +       struct drm_device *dev = connector->dev;
> +       struct drm_display_mode *mode = NULL;
> +       unsigned i;
> +       static const struct mode_size {
> +               int w;
> +               int h;
> +       } common_modes[] = {
> +               { 640,  480},
> +               { 720,  480},
> +               { 800,  600},
> +               { 848,  480},
> +               {1024,  768},
> +               {1152,  768},
> +               {1280,  720},
> +               {1280,  800},
> +               {1280,  854},
> +               {1280,  960},
> +               {1280, 1024},
> +               {1440,  900},
> +               {1400, 1050},
> +               {1680, 1050},
> +               {1600, 1200},
> +               {1920, 1080},
> +               {1920, 1200},
> +               {2560, 1440},
> +               {4096, 3112},
> +               {3656, 2664},
> +               {3840, 2160},
> +               {4096, 2160},
> +       };
> +
> +       for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
> +               mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, 60, false, false, false);
> +               drm_mode_probed_add(connector, mode);
> +       }
>
> -       count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX);
>         drm_set_preferred_mode(connector, XRES_DEF, YRES_DEF);
>
> -       return count;
> +       return ARRAY_SIZE(common_modes);
>  }
>
>  static const struct drm_connector_helper_funcs amdgpu_vkms_conn_helper_funcs = {
> @@ -409,3 +451,189 @@ int amdgpu_vkms_output_init(struct drm_device *dev,
>
>         return ret;
>  }
> +
> +const struct drm_mode_config_funcs amdgpu_vkms_mode_funcs = {
> +       .fb_create = amdgpu_display_user_framebuffer_create,
> +       .atomic_check = drm_atomic_helper_check,
> +       .atomic_commit = drm_atomic_helper_commit,
> +};
> +
> +static int amdgpu_vkms_sw_init(void *handle)
> +{
> +       int r, i;
> +       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> +
> +       adev_to_drm(adev)->max_vblank_count = 0;
> +
> +       adev_to_drm(adev)->mode_config.funcs = &amdgpu_vkms_mode_funcs;
> +
> +       adev_to_drm(adev)->mode_config.max_width = XRES_MAX;
> +       adev_to_drm(adev)->mode_config.max_height = YRES_MAX;
> +
> +       adev_to_drm(adev)->mode_config.preferred_depth = 24;
> +       adev_to_drm(adev)->mode_config.prefer_shadow = 1;
> +
> +       adev_to_drm(adev)->mode_config.fb_base = adev->gmc.aper_base;
> +
> +       r = amdgpu_display_modeset_create_props(adev);
> +       if (r)
> +               return r;
> +
> +       adev->amdgpu_vkms_output = kzalloc(sizeof(struct amdgpu_vkms_output) * adev->mode_info.num_crtc, GFP_KERNEL);
> +
> +       /* allocate crtcs, encoders, connectors */
> +       for (i = 0; i < adev->mode_info.num_crtc; i++) {
> +               r = amdgpu_vkms_output_init(adev_to_drm(adev), &adev->amdgpu_vkms_output[i], i);
> +               if (r)
> +                       return r;
> +       }
> +
> +       drm_kms_helper_poll_init(adev_to_drm(adev));
> +
> +       adev->mode_info.mode_config_initialized = true;
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_sw_fini(void *handle)
> +{
> +       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> +       int i = 0;
> +
> +       for (i = 0; i < adev->mode_info.num_crtc; i++)
> +               if (adev->mode_info.crtcs[i])
> +                       hrtimer_cancel(&adev->mode_info.crtcs[i]->vblank_timer);
> +
> +       kfree(adev->mode_info.bios_hardcoded_edid);
> +       kfree(adev->amdgpu_vkms_output);
> +
> +       drm_kms_helper_poll_fini(adev_to_drm(adev));
> +
> +       adev->mode_info.mode_config_initialized = false;
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_hw_init(void *handle)
> +{
> +       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> +
> +       switch (adev->asic_type) {
> +#ifdef CONFIG_DRM_AMDGPU_SI
> +       case CHIP_TAHITI:
> +       case CHIP_PITCAIRN:
> +       case CHIP_VERDE:
> +       case CHIP_OLAND:
> +               dce_v6_0_disable_dce(adev);
> +               break;
> +#endif
> +#ifdef CONFIG_DRM_AMDGPU_CIK
> +       case CHIP_BONAIRE:
> +       case CHIP_HAWAII:
> +       case CHIP_KAVERI:
> +       case CHIP_KABINI:
> +       case CHIP_MULLINS:
> +               dce_v8_0_disable_dce(adev);
> +               break;
> +#endif
> +       case CHIP_FIJI:
> +       case CHIP_TONGA:
> +               dce_v10_0_disable_dce(adev);
> +               break;
> +       case CHIP_CARRIZO:
> +       case CHIP_STONEY:
> +       case CHIP_POLARIS10:
> +       case CHIP_POLARIS11:
> +       case CHIP_VEGAM:
> +               dce_v11_0_disable_dce(adev);
> +               break;
> +       case CHIP_TOPAZ:
> +#ifdef CONFIG_DRM_AMDGPU_SI
> +       case CHIP_HAINAN:
> +#endif
> +               /* no DCE */
> +               break;
> +       default:
> +               break;
> +       }
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_hw_fini(void *handle)
> +{
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_suspend(void *handle)
> +{
> +       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> +       int r;
> +
> +       r = drm_mode_config_helper_suspend(adev_to_drm(adev));
> +       if (r)
> +               return r;
> +       return amdgpu_vkms_hw_fini(handle);
> +}
> +
> +static int amdgpu_vkms_resume(void *handle)
> +{
> +       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> +       int r;
> +
> +       r = amdgpu_vkms_hw_init(handle);
> +       if (r)
> +               return r;
> +       return drm_mode_config_helper_resume(adev_to_drm(adev));
> +}
> +
> +static bool amdgpu_vkms_is_idle(void *handle)
> +{
> +       return true;
> +}
> +
> +static int amdgpu_vkms_wait_for_idle(void *handle)
> +{
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_soft_reset(void *handle)
> +{
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_set_clockgating_state(void *handle,
> +                                         enum amd_clockgating_state state)
> +{
> +       return 0;
> +}
> +
> +static int amdgpu_vkms_set_powergating_state(void *handle,
> +                                         enum amd_powergating_state state)
> +{
> +       return 0;
> +}
> +
> +static const struct amd_ip_funcs amdgpu_vkms_ip_funcs = {
> +       .name = "amdgpu_vkms",
> +       .early_init = NULL,
> +       .late_init = NULL,
> +       .sw_init = amdgpu_vkms_sw_init,
> +       .sw_fini = amdgpu_vkms_sw_fini,
> +       .hw_init = amdgpu_vkms_hw_init,
> +       .hw_fini = amdgpu_vkms_hw_fini,
> +       .suspend = amdgpu_vkms_suspend,
> +       .resume = amdgpu_vkms_resume,
> +       .is_idle = amdgpu_vkms_is_idle,
> +       .wait_for_idle = amdgpu_vkms_wait_for_idle,
> +       .soft_reset = amdgpu_vkms_soft_reset,
> +       .set_clockgating_state = amdgpu_vkms_set_clockgating_state,
> +       .set_powergating_state = amdgpu_vkms_set_powergating_state,
> +};
> +
> +const struct amdgpu_ip_block_version amdgpu_vkms_ip_block =
> +{
> +       .type = AMD_IP_BLOCK_TYPE_DCE,
> +       .major = 1,
> +       .minor = 0,
> +       .rev = 0,
> +       .funcs = &amdgpu_vkms_ip_funcs,
> +};
> +
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h
> index 5dab51fbecf3..97f1b79c0724 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h
> @@ -4,7 +4,7 @@
>  #define _AMDGPU_VKMS_H_
>
>  #define XRES_DEF  1024
> -#define YRES_DEF   764
> +#define YRES_DEF   768

Squash this fix into the original patch that added this macro.


>
>  #define XRES_MAX  16384
>  #define YRES_MAX  16384
> @@ -23,7 +23,4 @@ struct amdgpu_vkms_output {
>         struct drm_pending_vblank_event *event;
>  };
>
> -int amdgpu_vkms_output_init(struct drm_device *dev,
> -                           struct amdgpu_vkms_output *output, int index);
> -
>  #endif /* _AMDGPU_VKMS_H_ */
> diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
> index c0fcc41ee574..54f28c075f21 100644
> --- a/drivers/gpu/drm/amd/amdgpu/cik.c
> +++ b/drivers/gpu/drm/amd/amdgpu/cik.c
> @@ -70,7 +70,7 @@
>
>  #include "amdgpu_dm.h"
>  #include "amdgpu_amdkfd.h"
> -#include "dce_virtual.h"
> +#include "amdgpu_vkms.h"
>
>  static const struct amdgpu_video_codec_info cik_video_codecs_encode_array[] =
>  {
> @@ -2259,7 +2259,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2277,7 +2277,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2295,7 +2295,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2315,7 +2315,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
> deleted file mode 100644
> index 18369b47eac7..000000000000
> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
> +++ /dev/null
> @@ -1,223 +0,0 @@
> -/*
> - * Copyright 2014 Advanced Micro Devices, Inc.
> - *
> - * Permission is hereby granted, free of charge, to any person obtaining a
> - * copy of this software and associated documentation files (the "Software"),
> - * to deal in the Software without restriction, including without limitation
> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> - * and/or sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following conditions:
> - *
> - * The above copyright notice and this permission notice shall be included in
> - * all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> - *
> - */
> -
> -#include <drm/drm_atomic_helper.h>
> -
> -#include "amdgpu.h"
> -#ifdef CONFIG_DRM_AMDGPU_SI
> -#include "dce_v6_0.h"
> -#endif
> -#ifdef CONFIG_DRM_AMDGPU_CIK
> -#include "dce_v8_0.h"
> -#endif
> -#include "dce_v10_0.h"
> -#include "dce_v11_0.h"
> -#include "dce_virtual.h"
> -#include "ivsrcid/ivsrcid_vislands30.h"
> -#include "amdgpu_display.h"
> -#include "amdgpu_vkms.h"
> -
> -const struct drm_mode_config_funcs dce_virtual_mode_funcs = {
> -       .fb_create = amdgpu_display_user_framebuffer_create,
> -       .atomic_check = drm_atomic_helper_check,
> -       .atomic_commit = drm_atomic_helper_commit,
> -};
> -
> -static int dce_virtual_sw_init(void *handle)
> -{
> -       int r, i;
> -       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -
> -       adev_to_drm(adev)->max_vblank_count = 0;
> -
> -       adev_to_drm(adev)->mode_config.funcs = &dce_virtual_mode_funcs;
> -
> -       adev_to_drm(adev)->mode_config.max_width = XRES_MAX;
> -       adev_to_drm(adev)->mode_config.max_height = YRES_MAX;
> -
> -       adev_to_drm(adev)->mode_config.preferred_depth = 24;
> -       adev_to_drm(adev)->mode_config.prefer_shadow = 1;
> -
> -       adev_to_drm(adev)->mode_config.fb_base = adev->gmc.aper_base;
> -
> -       r = amdgpu_display_modeset_create_props(adev);
> -       if (r)
> -               return r;
> -
> -       adev->amdgpu_vkms_output = kzalloc(sizeof(struct amdgpu_vkms_output) * adev->mode_info.num_crtc, GFP_KERNEL);
> -
> -       /* allocate crtcs, encoders, connectors */
> -       for (i = 0; i < adev->mode_info.num_crtc; i++) {
> -               r = amdgpu_vkms_output_init(adev_to_drm(adev), &adev->amdgpu_vkms_output[i], i);
> -               if (r)
> -                       return r;
> -       }
> -
> -       drm_kms_helper_poll_init(adev_to_drm(adev));
> -
> -       adev->mode_info.mode_config_initialized = true;
> -       return 0;
> -}
> -
> -static int dce_virtual_sw_fini(void *handle)
> -{
> -       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -       int i = 0;
> -
> -       for (i = 0; i < adev->mode_info.num_crtc; i++)
> -               if (adev->mode_info.crtcs[i])
> -                       hrtimer_cancel(&adev->mode_info.crtcs[i]->vblank_timer);
> -
> -       kfree(adev->mode_info.bios_hardcoded_edid);
> -       kfree(adev->amdgpu_vkms_output);
> -
> -       drm_kms_helper_poll_fini(adev_to_drm(adev));
> -
> -       adev->mode_info.mode_config_initialized = false;
> -       return 0;
> -}
> -
> -static int dce_virtual_hw_init(void *handle)
> -{
> -       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -
> -       switch (adev->asic_type) {
> -#ifdef CONFIG_DRM_AMDGPU_SI
> -       case CHIP_TAHITI:
> -       case CHIP_PITCAIRN:
> -       case CHIP_VERDE:
> -       case CHIP_OLAND:
> -               dce_v6_0_disable_dce(adev);
> -               break;
> -#endif
> -#ifdef CONFIG_DRM_AMDGPU_CIK
> -       case CHIP_BONAIRE:
> -       case CHIP_HAWAII:
> -       case CHIP_KAVERI:
> -       case CHIP_KABINI:
> -       case CHIP_MULLINS:
> -               dce_v8_0_disable_dce(adev);
> -               break;
> -#endif
> -       case CHIP_FIJI:
> -       case CHIP_TONGA:
> -               dce_v10_0_disable_dce(adev);
> -               break;
> -       case CHIP_CARRIZO:
> -       case CHIP_STONEY:
> -       case CHIP_POLARIS10:
> -       case CHIP_POLARIS11:
> -       case CHIP_VEGAM:
> -               dce_v11_0_disable_dce(adev);
> -               break;
> -       case CHIP_TOPAZ:
> -#ifdef CONFIG_DRM_AMDGPU_SI
> -       case CHIP_HAINAN:
> -#endif
> -               /* no DCE */
> -               break;
> -       default:
> -               break;
> -       }
> -       return 0;
> -}
> -
> -static int dce_virtual_hw_fini(void *handle)
> -{
> -       return 0;
> -}
> -
> -static int dce_virtual_suspend(void *handle)
> -{
> -       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -       int r;
> -
> -       r = drm_mode_config_helper_suspend(adev_to_drm(adev));
> -       if (r)
> -               return r;
> -       return dce_virtual_hw_fini(handle);
> -}
> -
> -static int dce_virtual_resume(void *handle)
> -{
> -       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -       int r;
> -
> -       r = dce_virtual_hw_init(handle);
> -       if (r)
> -               return r;
> -       return drm_mode_config_helper_resume(adev_to_drm(adev));
> -}
> -
> -static bool dce_virtual_is_idle(void *handle)
> -{
> -       return true;
> -}
> -
> -static int dce_virtual_wait_for_idle(void *handle)
> -{
> -       return 0;
> -}
> -
> -static int dce_virtual_soft_reset(void *handle)
> -{
> -       return 0;
> -}
> -
> -static int dce_virtual_set_clockgating_state(void *handle,
> -                                         enum amd_clockgating_state state)
> -{
> -       return 0;
> -}
> -
> -static int dce_virtual_set_powergating_state(void *handle,
> -                                         enum amd_powergating_state state)
> -{
> -       return 0;
> -}
> -
> -static const struct amd_ip_funcs dce_virtual_ip_funcs = {
> -       .name = "dce_virtual",
> -       .early_init = NULL,
> -       .late_init = NULL,
> -       .sw_init = dce_virtual_sw_init,
> -       .sw_fini = dce_virtual_sw_fini,
> -       .hw_init = dce_virtual_hw_init,
> -       .hw_fini = dce_virtual_hw_fini,
> -       .suspend = dce_virtual_suspend,
> -       .resume = dce_virtual_resume,
> -       .is_idle = dce_virtual_is_idle,
> -       .wait_for_idle = dce_virtual_wait_for_idle,
> -       .soft_reset = dce_virtual_soft_reset,
> -       .set_clockgating_state = dce_virtual_set_clockgating_state,
> -       .set_powergating_state = dce_virtual_set_powergating_state,
> -};
> -
> -const struct amdgpu_ip_block_version dce_virtual_ip_block =
> -{
> -       .type = AMD_IP_BLOCK_TYPE_DCE,
> -       .major = 1,
> -       .minor = 0,
> -       .rev = 0,
> -       .funcs = &dce_virtual_ip_funcs,
> -};
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.h b/drivers/gpu/drm/amd/amdgpu/dce_virtual.h
> deleted file mode 100644
> index ed422012c8c6..000000000000
> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.h
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/*
> - * Copyright 2014 Advanced Micro Devices, Inc.
> - *
> - * Permission is hereby granted, free of charge, to any person obtaining a
> - * copy of this software and associated documentation files (the "Software"),
> - * to deal in the Software without restriction, including without limitation
> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> - * and/or sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following conditions:
> - *
> - * The above copyright notice and this permission notice shall be included in
> - * all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> - *
> - */
> -
> -#ifndef __DCE_VIRTUAL_H__
> -#define __DCE_VIRTUAL_H__
> -
> -extern const struct amdgpu_ip_block_version dce_virtual_ip_block;
> -
> -#endif
> -
> diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c
> index 436fb13e32f0..696ecc1ccb28 100644
> --- a/drivers/gpu/drm/amd/amdgpu/nv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/nv.c
> @@ -58,7 +58,7 @@
>  #include "jpeg_v2_0.h"
>  #include "vcn_v3_0.h"
>  #include "jpeg_v3_0.h"
> -#include "dce_virtual.h"
> +#include "amdgpu_vkms.h"
>  #include "mes_v10_1.h"
>  #include "mxgpu_nv.h"
>  #include "smuio_v11_0.h"
> @@ -721,7 +721,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                     !amdgpu_sriov_vf(adev))
>                         amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -749,7 +749,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP)
>                         amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -779,7 +779,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                     is_support_sw_smu(adev))
>                         amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -802,7 +802,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                     is_support_sw_smu(adev))
>                         amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -823,7 +823,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                         amdgpu_device_ip_block_add(adev, &psp_v11_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -843,7 +843,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                     is_support_sw_smu(adev))
>                         amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                  else if (amdgpu_device_has_dc_support(adev))
>                          amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -865,7 +865,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &gfx_v10_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &sdma_v5_2_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -883,11 +883,11 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)
>                         amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &smu_v13_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>                 amdgpu_device_ip_block_add(adev, &gfx_v10_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &sdma_v5_2_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> diff --git a/drivers/gpu/drm/amd/amdgpu/si.c b/drivers/gpu/drm/amd/amdgpu/si.c
> index 7cbc2bb03bc6..e6d2f74a7976 100644
> --- a/drivers/gpu/drm/amd/amdgpu/si.c
> +++ b/drivers/gpu/drm/amd/amdgpu/si.c
> @@ -44,7 +44,7 @@
>  #include "dce_v6_0.h"
>  #include "si.h"
>  #include "uvd_v3_1.h"
> -#include "dce_virtual.h"
> +#include "amdgpu_vkms.h"
>  #include "gca/gfx_6_0_d.h"
>  #include "oss/oss_1_0_d.h"
>  #include "oss/oss_1_0_sh_mask.h"
> @@ -2759,7 +2759,7 @@ int si_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &si_dma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &si_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC) && defined(CONFIG_DRM_AMD_DC_SI)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2777,7 +2777,7 @@ int si_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &si_dma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &si_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC) && defined(CONFIG_DRM_AMD_DC_SI)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2795,7 +2795,7 @@ int si_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &si_dma_ip_block);
>                 amdgpu_device_ip_block_add(adev, &si_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>                 break;
>         default:
>                 BUG();
> diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
> index a5e085e570f7..f7b56a746c15 100644
> --- a/drivers/gpu/drm/amd/amdgpu/soc15.c
> +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
> @@ -74,7 +74,7 @@
>  #include "smuio_v9_0.h"
>  #include "smuio_v11_0.h"
>  #include "smuio_v13_0.h"
> -#include "dce_virtual.h"
> +#include "amdgpu_vkms.h"
>  #include "mxgpu_ai.h"
>  #include "amdgpu_ras.h"
>  #include "amdgpu_xgmi.h"
> @@ -843,7 +843,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)
>                         amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 }
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -863,7 +863,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -885,7 +885,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)
>                 }
>
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>                 amdgpu_device_ip_block_add(adev, &gfx_v9_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);
> @@ -909,7 +909,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &gfx_v9_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                  else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
> index 3d21c0799037..fe9a7cc8d9eb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vi.c
> @@ -77,7 +77,7 @@
>  #if defined(CONFIG_DRM_AMD_ACP)
>  #include "amdgpu_acp.h"
>  #endif
> -#include "dce_virtual.h"
> +#include "amdgpu_vkms.h"
>  #include "mxgpu_vi.h"
>  #include "amdgpu_dm.h"
>
> @@ -2102,7 +2102,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v2_4_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>                 break;
>         case CHIP_FIJI:
>                 amdgpu_device_ip_block_add(adev, &vi_common_ip_block);
> @@ -2112,7 +2112,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2132,7 +2132,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2155,7 +2155,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v3_1_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2173,7 +2173,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> @@ -2194,7 +2194,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>                 amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);
>                 amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
>                 if (adev->enable_virtual_display)
> -                       amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
> +                       amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);
>  #if defined(CONFIG_DRM_AMD_DC)
>                 else if (amdgpu_device_has_dc_support(adev))
>                         amdgpu_device_ip_block_add(adev, &dm_ip_block);
> --
> 2.32.0
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20210723/41c22b0e/attachment-0001.htm>


More information about the dri-devel mailing list