<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:10pt;color:#0000FF;margin:5pt;" align="Left">
[AMD Official Use Only]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Thanks Alex! I will make these changes.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Best,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Ryan<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Alex Deucher <alexdeucher@gmail.com><br>
<b>Sent:</b> Friday, July 23, 2021 7:33 AM<br>
<b>To:</b> Taylor, Ryan <Ryan.Taylor@amd.com><br>
<b>Cc:</b> Maling list - DRI developers <dri-devel@lists.freedesktop.org>; amd-gfx list <amd-gfx@lists.freedesktop.org>; kernel test robot <lkp@intel.com>; Daniel Vetter <daniel.vetter@ffwll.ch>; Siqueira, Rodrigo <Rodrigo.Siqueira@amd.com>; Melissa Wen <melissa.srw@gmail.com>;
Deucher, Alexander <Alexander.Deucher@amd.com><br>
<b>Subject:</b> Re: [PATCH 3/3] drm/amdgpu: replace dce_virtual with amdgpu_vkms (v3)</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Wed, Jul 21, 2021 at 1:07 PM Ryan Taylor <Ryan.Taylor@amd.com> wrote:<br>
><br>
> Move dce_virtual into amdgpu_vkms and update all references to<br>
> dce_virtual with amdgpu_vkms.<br>
><br>
> v2: Removed more references to dce_virtual.<br>
><br>
> v3: Restored display modes from previous implementation.<br>
><br>
> Reported-by: kernel test robot <lkp@intel.com><br>
> Suggested-by: Alex Deucher <Alexander.Deucher@amd.com><br>
> Signed-off-by: Ryan Taylor <Ryan.Taylor@amd.com><br>
> ---<br>
> drivers/gpu/drm/amd/amdgpu/Makefile | 3 +-<br>
> drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 234 ++++++++++++++++++++++-<br>
> drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h | 5 +-<br>
> drivers/gpu/drm/amd/amdgpu/cik.c | 10 +-<br>
> drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 223 ---------------------<br>
> drivers/gpu/drm/amd/amdgpu/dce_virtual.h | 30 ---<br>
> drivers/gpu/drm/amd/amdgpu/nv.c | 20 +-<br>
> drivers/gpu/drm/amd/amdgpu/si.c | 8 +-<br>
> drivers/gpu/drm/amd/amdgpu/soc15.c | 10 +-<br>
> drivers/gpu/drm/amd/amdgpu/vi.c | 14 +-<br>
> 10 files changed, 264 insertions(+), 293 deletions(-)<br>
> delete mode 100644 drivers/gpu/drm/amd/amdgpu/dce_virtual.c<br>
> delete mode 100644 drivers/gpu/drm/amd/amdgpu/dce_virtual.h<br>
><br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile<br>
> index 30cbcd5ce1cc..0d814c957461 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/Makefile<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/Makefile<br>
> @@ -120,8 +120,7 @@ amdgpu-y += \<br>
> amdgpu-y += \<br>
> dce_v10_0.o \<br>
> dce_v11_0.o \<br>
> - amdgpu_vkms.o \<br>
> - dce_virtual.o<br>
> + amdgpu_vkms.o<br>
><br>
> # add GFX block<br>
> amdgpu-y += \<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c<br>
> index d5c1f1c58f5f..538d41e6666a 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c<br>
> @@ -5,6 +5,15 @@<br>
> #include <drm/drm_vblank.h><br>
><br>
> #include "amdgpu.h"<br>
> +#ifdef CONFIG_DRM_AMDGPU_SI<br>
> +#include "dce_v6_0.h"<br>
> +#endif<br>
> +#ifdef CONFIG_DRM_AMDGPU_CIK<br>
> +#include "dce_v8_0.h"<br>
> +#endif<br>
> +#include "dce_v10_0.h"<br>
> +#include "dce_v11_0.h"<br>
> +#include "ivsrcid/ivsrcid_vislands30.h"<br>
> #include "amdgpu_vkms.h"<br>
> #include "amdgpu_display.h"<br>
><br>
> @@ -180,12 +189,45 @@ static const struct drm_connector_funcs amdgpu_vkms_connector_funcs = {<br>
><br>
> static int amdgpu_vkms_conn_get_modes(struct drm_connector *connector)<br>
> {<br>
> - int count;<br>
> + struct drm_device *dev = connector->dev;<br>
> + struct drm_display_mode *mode = NULL;<br>
> + unsigned i;<br>
> + static const struct mode_size {<br>
> + int w;<br>
> + int h;<br>
> + } common_modes[] = {<br>
> + { 640, 480},<br>
> + { 720, 480},<br>
> + { 800, 600},<br>
> + { 848, 480},<br>
> + {1024, 768},<br>
> + {1152, 768},<br>
> + {1280, 720},<br>
> + {1280, 800},<br>
> + {1280, 854},<br>
> + {1280, 960},<br>
> + {1280, 1024},<br>
> + {1440, 900},<br>
> + {1400, 1050},<br>
> + {1680, 1050},<br>
> + {1600, 1200},<br>
> + {1920, 1080},<br>
> + {1920, 1200},<br>
> + {2560, 1440},<br>
> + {4096, 3112},<br>
> + {3656, 2664},<br>
> + {3840, 2160},<br>
> + {4096, 2160},<br>
> + };<br>
> +<br>
> + for (i = 0; i < ARRAY_SIZE(common_modes); i++) {<br>
> + mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, 60, false, false, false);<br>
> + drm_mode_probed_add(connector, mode);<br>
> + }<br>
><br>
> - count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX);<br>
> drm_set_preferred_mode(connector, XRES_DEF, YRES_DEF);<br>
><br>
> - return count;<br>
> + return ARRAY_SIZE(common_modes);<br>
> }<br>
><br>
> static const struct drm_connector_helper_funcs amdgpu_vkms_conn_helper_funcs = {<br>
> @@ -409,3 +451,189 @@ int amdgpu_vkms_output_init(struct drm_device *dev,<br>
><br>
> return ret;<br>
> }<br>
> +<br>
> +const struct drm_mode_config_funcs amdgpu_vkms_mode_funcs = {<br>
> + .fb_create = amdgpu_display_user_framebuffer_create,<br>
> + .atomic_check = drm_atomic_helper_check,<br>
> + .atomic_commit = drm_atomic_helper_commit,<br>
> +};<br>
> +<br>
> +static int amdgpu_vkms_sw_init(void *handle)<br>
> +{<br>
> + int r, i;<br>
> + struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> +<br>
> + adev_to_drm(adev)->max_vblank_count = 0;<br>
> +<br>
> + adev_to_drm(adev)->mode_config.funcs = &amdgpu_vkms_mode_funcs;<br>
> +<br>
> + adev_to_drm(adev)->mode_config.max_width = XRES_MAX;<br>
> + adev_to_drm(adev)->mode_config.max_height = YRES_MAX;<br>
> +<br>
> + adev_to_drm(adev)->mode_config.preferred_depth = 24;<br>
> + adev_to_drm(adev)->mode_config.prefer_shadow = 1;<br>
> +<br>
> + adev_to_drm(adev)->mode_config.fb_base = adev->gmc.aper_base;<br>
> +<br>
> + r = amdgpu_display_modeset_create_props(adev);<br>
> + if (r)<br>
> + return r;<br>
> +<br>
> + adev->amdgpu_vkms_output = kzalloc(sizeof(struct amdgpu_vkms_output) * adev->mode_info.num_crtc, GFP_KERNEL);<br>
> +<br>
> + /* allocate crtcs, encoders, connectors */<br>
> + for (i = 0; i < adev->mode_info.num_crtc; i++) {<br>
> + r = amdgpu_vkms_output_init(adev_to_drm(adev), &adev->amdgpu_vkms_output[i], i);<br>
> + if (r)<br>
> + return r;<br>
> + }<br>
> +<br>
> + drm_kms_helper_poll_init(adev_to_drm(adev));<br>
> +<br>
> + adev->mode_info.mode_config_initialized = true;<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_sw_fini(void *handle)<br>
> +{<br>
> + struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> + int i = 0;<br>
> +<br>
> + for (i = 0; i < adev->mode_info.num_crtc; i++)<br>
> + if (adev->mode_info.crtcs[i])<br>
> + hrtimer_cancel(&adev->mode_info.crtcs[i]->vblank_timer);<br>
> +<br>
> + kfree(adev->mode_info.bios_hardcoded_edid);<br>
> + kfree(adev->amdgpu_vkms_output);<br>
> +<br>
> + drm_kms_helper_poll_fini(adev_to_drm(adev));<br>
> +<br>
> + adev->mode_info.mode_config_initialized = false;<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_hw_init(void *handle)<br>
> +{<br>
> + struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> +<br>
> + switch (adev->asic_type) {<br>
> +#ifdef CONFIG_DRM_AMDGPU_SI<br>
> + case CHIP_TAHITI:<br>
> + case CHIP_PITCAIRN:<br>
> + case CHIP_VERDE:<br>
> + case CHIP_OLAND:<br>
> + dce_v6_0_disable_dce(adev);<br>
> + break;<br>
> +#endif<br>
> +#ifdef CONFIG_DRM_AMDGPU_CIK<br>
> + case CHIP_BONAIRE:<br>
> + case CHIP_HAWAII:<br>
> + case CHIP_KAVERI:<br>
> + case CHIP_KABINI:<br>
> + case CHIP_MULLINS:<br>
> + dce_v8_0_disable_dce(adev);<br>
> + break;<br>
> +#endif<br>
> + case CHIP_FIJI:<br>
> + case CHIP_TONGA:<br>
> + dce_v10_0_disable_dce(adev);<br>
> + break;<br>
> + case CHIP_CARRIZO:<br>
> + case CHIP_STONEY:<br>
> + case CHIP_POLARIS10:<br>
> + case CHIP_POLARIS11:<br>
> + case CHIP_VEGAM:<br>
> + dce_v11_0_disable_dce(adev);<br>
> + break;<br>
> + case CHIP_TOPAZ:<br>
> +#ifdef CONFIG_DRM_AMDGPU_SI<br>
> + case CHIP_HAINAN:<br>
> +#endif<br>
> + /* no DCE */<br>
> + break;<br>
> + default:<br>
> + break;<br>
> + }<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_hw_fini(void *handle)<br>
> +{<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_suspend(void *handle)<br>
> +{<br>
> + struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> + int r;<br>
> +<br>
> + r = drm_mode_config_helper_suspend(adev_to_drm(adev));<br>
> + if (r)<br>
> + return r;<br>
> + return amdgpu_vkms_hw_fini(handle);<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_resume(void *handle)<br>
> +{<br>
> + struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> + int r;<br>
> +<br>
> + r = amdgpu_vkms_hw_init(handle);<br>
> + if (r)<br>
> + return r;<br>
> + return drm_mode_config_helper_resume(adev_to_drm(adev));<br>
> +}<br>
> +<br>
> +static bool amdgpu_vkms_is_idle(void *handle)<br>
> +{<br>
> + return true;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_wait_for_idle(void *handle)<br>
> +{<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_soft_reset(void *handle)<br>
> +{<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_set_clockgating_state(void *handle,<br>
> + enum amd_clockgating_state state)<br>
> +{<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static int amdgpu_vkms_set_powergating_state(void *handle,<br>
> + enum amd_powergating_state state)<br>
> +{<br>
> + return 0;<br>
> +}<br>
> +<br>
> +static const struct amd_ip_funcs amdgpu_vkms_ip_funcs = {<br>
> + .name = "amdgpu_vkms",<br>
> + .early_init = NULL,<br>
> + .late_init = NULL,<br>
> + .sw_init = amdgpu_vkms_sw_init,<br>
> + .sw_fini = amdgpu_vkms_sw_fini,<br>
> + .hw_init = amdgpu_vkms_hw_init,<br>
> + .hw_fini = amdgpu_vkms_hw_fini,<br>
> + .suspend = amdgpu_vkms_suspend,<br>
> + .resume = amdgpu_vkms_resume,<br>
> + .is_idle = amdgpu_vkms_is_idle,<br>
> + .wait_for_idle = amdgpu_vkms_wait_for_idle,<br>
> + .soft_reset = amdgpu_vkms_soft_reset,<br>
> + .set_clockgating_state = amdgpu_vkms_set_clockgating_state,<br>
> + .set_powergating_state = amdgpu_vkms_set_powergating_state,<br>
> +};<br>
> +<br>
> +const struct amdgpu_ip_block_version amdgpu_vkms_ip_block =<br>
> +{<br>
> + .type = AMD_IP_BLOCK_TYPE_DCE,<br>
> + .major = 1,<br>
> + .minor = 0,<br>
> + .rev = 0,<br>
> + .funcs = &amdgpu_vkms_ip_funcs,<br>
> +};<br>
> +<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h<br>
> index 5dab51fbecf3..97f1b79c0724 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.h<br>
> @@ -4,7 +4,7 @@<br>
> #define _AMDGPU_VKMS_H_<br>
><br>
> #define XRES_DEF 1024<br>
> -#define YRES_DEF 764<br>
> +#define YRES_DEF 768<br>
<br>
Squash this fix into the original patch that added this macro.<br>
<br>
<br>
><br>
> #define XRES_MAX 16384<br>
> #define YRES_MAX 16384<br>
> @@ -23,7 +23,4 @@ struct amdgpu_vkms_output {<br>
> struct drm_pending_vblank_event *event;<br>
> };<br>
><br>
> -int amdgpu_vkms_output_init(struct drm_device *dev,<br>
> - struct amdgpu_vkms_output *output, int index);<br>
> -<br>
> #endif /* _AMDGPU_VKMS_H_ */<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c<br>
> index c0fcc41ee574..54f28c075f21 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/cik.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/cik.c<br>
> @@ -70,7 +70,7 @@<br>
><br>
> #include "amdgpu_dm.h"<br>
> #include "amdgpu_amdkfd.h"<br>
> -#include "dce_virtual.h"<br>
> +#include "amdgpu_vkms.h"<br>
><br>
> static const struct amdgpu_video_codec_info cik_video_codecs_encode_array[] =<br>
> {<br>
> @@ -2259,7 +2259,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2277,7 +2277,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2295,7 +2295,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2315,7 +2315,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c<br>
> deleted file mode 100644<br>
> index 18369b47eac7..000000000000<br>
> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c<br>
> +++ /dev/null<br>
> @@ -1,223 +0,0 @@<br>
> -/*<br>
> - * Copyright 2014 Advanced Micro Devices, Inc.<br>
> - *<br>
> - * Permission is hereby granted, free of charge, to any person obtaining a<br>
> - * copy of this software and associated documentation files (the "Software"),<br>
> - * to deal in the Software without restriction, including without limitation<br>
> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
> - * and/or sell copies of the Software, and to permit persons to whom the<br>
> - * Software is furnished to do so, subject to the following conditions:<br>
> - *<br>
> - * The above copyright notice and this permission notice shall be included in<br>
> - * all copies or substantial portions of the Software.<br>
> - *<br>
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br>
> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL<br>
> - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR<br>
> - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,<br>
> - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br>
> - * OTHER DEALINGS IN THE SOFTWARE.<br>
> - *<br>
> - */<br>
> -<br>
> -#include <drm/drm_atomic_helper.h><br>
> -<br>
> -#include "amdgpu.h"<br>
> -#ifdef CONFIG_DRM_AMDGPU_SI<br>
> -#include "dce_v6_0.h"<br>
> -#endif<br>
> -#ifdef CONFIG_DRM_AMDGPU_CIK<br>
> -#include "dce_v8_0.h"<br>
> -#endif<br>
> -#include "dce_v10_0.h"<br>
> -#include "dce_v11_0.h"<br>
> -#include "dce_virtual.h"<br>
> -#include "ivsrcid/ivsrcid_vislands30.h"<br>
> -#include "amdgpu_display.h"<br>
> -#include "amdgpu_vkms.h"<br>
> -<br>
> -const struct drm_mode_config_funcs dce_virtual_mode_funcs = {<br>
> - .fb_create = amdgpu_display_user_framebuffer_create,<br>
> - .atomic_check = drm_atomic_helper_check,<br>
> - .atomic_commit = drm_atomic_helper_commit,<br>
> -};<br>
> -<br>
> -static int dce_virtual_sw_init(void *handle)<br>
> -{<br>
> - int r, i;<br>
> - struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> -<br>
> - adev_to_drm(adev)->max_vblank_count = 0;<br>
> -<br>
> - adev_to_drm(adev)->mode_config.funcs = &dce_virtual_mode_funcs;<br>
> -<br>
> - adev_to_drm(adev)->mode_config.max_width = XRES_MAX;<br>
> - adev_to_drm(adev)->mode_config.max_height = YRES_MAX;<br>
> -<br>
> - adev_to_drm(adev)->mode_config.preferred_depth = 24;<br>
> - adev_to_drm(adev)->mode_config.prefer_shadow = 1;<br>
> -<br>
> - adev_to_drm(adev)->mode_config.fb_base = adev->gmc.aper_base;<br>
> -<br>
> - r = amdgpu_display_modeset_create_props(adev);<br>
> - if (r)<br>
> - return r;<br>
> -<br>
> - adev->amdgpu_vkms_output = kzalloc(sizeof(struct amdgpu_vkms_output) * adev->mode_info.num_crtc, GFP_KERNEL);<br>
> -<br>
> - /* allocate crtcs, encoders, connectors */<br>
> - for (i = 0; i < adev->mode_info.num_crtc; i++) {<br>
> - r = amdgpu_vkms_output_init(adev_to_drm(adev), &adev->amdgpu_vkms_output[i], i);<br>
> - if (r)<br>
> - return r;<br>
> - }<br>
> -<br>
> - drm_kms_helper_poll_init(adev_to_drm(adev));<br>
> -<br>
> - adev->mode_info.mode_config_initialized = true;<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_sw_fini(void *handle)<br>
> -{<br>
> - struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> - int i = 0;<br>
> -<br>
> - for (i = 0; i < adev->mode_info.num_crtc; i++)<br>
> - if (adev->mode_info.crtcs[i])<br>
> - hrtimer_cancel(&adev->mode_info.crtcs[i]->vblank_timer);<br>
> -<br>
> - kfree(adev->mode_info.bios_hardcoded_edid);<br>
> - kfree(adev->amdgpu_vkms_output);<br>
> -<br>
> - drm_kms_helper_poll_fini(adev_to_drm(adev));<br>
> -<br>
> - adev->mode_info.mode_config_initialized = false;<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_hw_init(void *handle)<br>
> -{<br>
> - struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> -<br>
> - switch (adev->asic_type) {<br>
> -#ifdef CONFIG_DRM_AMDGPU_SI<br>
> - case CHIP_TAHITI:<br>
> - case CHIP_PITCAIRN:<br>
> - case CHIP_VERDE:<br>
> - case CHIP_OLAND:<br>
> - dce_v6_0_disable_dce(adev);<br>
> - break;<br>
> -#endif<br>
> -#ifdef CONFIG_DRM_AMDGPU_CIK<br>
> - case CHIP_BONAIRE:<br>
> - case CHIP_HAWAII:<br>
> - case CHIP_KAVERI:<br>
> - case CHIP_KABINI:<br>
> - case CHIP_MULLINS:<br>
> - dce_v8_0_disable_dce(adev);<br>
> - break;<br>
> -#endif<br>
> - case CHIP_FIJI:<br>
> - case CHIP_TONGA:<br>
> - dce_v10_0_disable_dce(adev);<br>
> - break;<br>
> - case CHIP_CARRIZO:<br>
> - case CHIP_STONEY:<br>
> - case CHIP_POLARIS10:<br>
> - case CHIP_POLARIS11:<br>
> - case CHIP_VEGAM:<br>
> - dce_v11_0_disable_dce(adev);<br>
> - break;<br>
> - case CHIP_TOPAZ:<br>
> -#ifdef CONFIG_DRM_AMDGPU_SI<br>
> - case CHIP_HAINAN:<br>
> -#endif<br>
> - /* no DCE */<br>
> - break;<br>
> - default:<br>
> - break;<br>
> - }<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_hw_fini(void *handle)<br>
> -{<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_suspend(void *handle)<br>
> -{<br>
> - struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> - int r;<br>
> -<br>
> - r = drm_mode_config_helper_suspend(adev_to_drm(adev));<br>
> - if (r)<br>
> - return r;<br>
> - return dce_virtual_hw_fini(handle);<br>
> -}<br>
> -<br>
> -static int dce_virtual_resume(void *handle)<br>
> -{<br>
> - struct amdgpu_device *adev = (struct amdgpu_device *)handle;<br>
> - int r;<br>
> -<br>
> - r = dce_virtual_hw_init(handle);<br>
> - if (r)<br>
> - return r;<br>
> - return drm_mode_config_helper_resume(adev_to_drm(adev));<br>
> -}<br>
> -<br>
> -static bool dce_virtual_is_idle(void *handle)<br>
> -{<br>
> - return true;<br>
> -}<br>
> -<br>
> -static int dce_virtual_wait_for_idle(void *handle)<br>
> -{<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_soft_reset(void *handle)<br>
> -{<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_set_clockgating_state(void *handle,<br>
> - enum amd_clockgating_state state)<br>
> -{<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static int dce_virtual_set_powergating_state(void *handle,<br>
> - enum amd_powergating_state state)<br>
> -{<br>
> - return 0;<br>
> -}<br>
> -<br>
> -static const struct amd_ip_funcs dce_virtual_ip_funcs = {<br>
> - .name = "dce_virtual",<br>
> - .early_init = NULL,<br>
> - .late_init = NULL,<br>
> - .sw_init = dce_virtual_sw_init,<br>
> - .sw_fini = dce_virtual_sw_fini,<br>
> - .hw_init = dce_virtual_hw_init,<br>
> - .hw_fini = dce_virtual_hw_fini,<br>
> - .suspend = dce_virtual_suspend,<br>
> - .resume = dce_virtual_resume,<br>
> - .is_idle = dce_virtual_is_idle,<br>
> - .wait_for_idle = dce_virtual_wait_for_idle,<br>
> - .soft_reset = dce_virtual_soft_reset,<br>
> - .set_clockgating_state = dce_virtual_set_clockgating_state,<br>
> - .set_powergating_state = dce_virtual_set_powergating_state,<br>
> -};<br>
> -<br>
> -const struct amdgpu_ip_block_version dce_virtual_ip_block =<br>
> -{<br>
> - .type = AMD_IP_BLOCK_TYPE_DCE,<br>
> - .major = 1,<br>
> - .minor = 0,<br>
> - .rev = 0,<br>
> - .funcs = &dce_virtual_ip_funcs,<br>
> -};<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.h b/drivers/gpu/drm/amd/amdgpu/dce_virtual.h<br>
> deleted file mode 100644<br>
> index ed422012c8c6..000000000000<br>
> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.h<br>
> +++ /dev/null<br>
> @@ -1,30 +0,0 @@<br>
> -/*<br>
> - * Copyright 2014 Advanced Micro Devices, Inc.<br>
> - *<br>
> - * Permission is hereby granted, free of charge, to any person obtaining a<br>
> - * copy of this software and associated documentation files (the "Software"),<br>
> - * to deal in the Software without restriction, including without limitation<br>
> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,<br>
> - * and/or sell copies of the Software, and to permit persons to whom the<br>
> - * Software is furnished to do so, subject to the following conditions:<br>
> - *<br>
> - * The above copyright notice and this permission notice shall be included in<br>
> - * all copies or substantial portions of the Software.<br>
> - *<br>
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br>
> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br>
> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL<br>
> - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR<br>
> - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,<br>
> - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br>
> - * OTHER DEALINGS IN THE SOFTWARE.<br>
> - *<br>
> - */<br>
> -<br>
> -#ifndef __DCE_VIRTUAL_H__<br>
> -#define __DCE_VIRTUAL_H__<br>
> -<br>
> -extern const struct amdgpu_ip_block_version dce_virtual_ip_block;<br>
> -<br>
> -#endif<br>
> -<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c<br>
> index 436fb13e32f0..696ecc1ccb28 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/nv.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/nv.c<br>
> @@ -58,7 +58,7 @@<br>
> #include "jpeg_v2_0.h"<br>
> #include "vcn_v3_0.h"<br>
> #include "jpeg_v3_0.h"<br>
> -#include "dce_virtual.h"<br>
> +#include "amdgpu_vkms.h"<br>
> #include "mes_v10_1.h"<br>
> #include "mxgpu_nv.h"<br>
> #include "smuio_v11_0.h"<br>
> @@ -721,7 +721,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> !amdgpu_sriov_vf(adev))<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -749,7 +749,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP)<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -779,7 +779,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> is_support_sw_smu(adev))<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -802,7 +802,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> is_support_sw_smu(adev))<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -823,7 +823,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &psp_v11_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -843,7 +843,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> is_support_sw_smu(adev))<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -865,7 +865,7 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &gfx_v10_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &sdma_v5_2_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -883,11 +883,11 @@ int nv_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &smu_v13_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &gfx_v10_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &sdma_v5_2_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/si.c b/drivers/gpu/drm/amd/amdgpu/si.c<br>
> index 7cbc2bb03bc6..e6d2f74a7976 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/si.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/si.c<br>
> @@ -44,7 +44,7 @@<br>
> #include "dce_v6_0.h"<br>
> #include "si.h"<br>
> #include "uvd_v3_1.h"<br>
> -#include "dce_virtual.h"<br>
> +#include "amdgpu_vkms.h"<br>
> #include "gca/gfx_6_0_d.h"<br>
> #include "oss/oss_1_0_d.h"<br>
> #include "oss/oss_1_0_sh_mask.h"<br>
> @@ -2759,7 +2759,7 @@ int si_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &si_dma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &si_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC) && defined(CONFIG_DRM_AMD_DC_SI)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2777,7 +2777,7 @@ int si_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &si_dma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &si_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC) && defined(CONFIG_DRM_AMD_DC_SI)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2795,7 +2795,7 @@ int si_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &si_dma_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &si_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> break;<br>
> default:<br>
> BUG();<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c<br>
> index a5e085e570f7..f7b56a746c15 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/soc15.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c<br>
> @@ -74,7 +74,7 @@<br>
> #include "smuio_v9_0.h"<br>
> #include "smuio_v11_0.h"<br>
> #include "smuio_v13_0.h"<br>
> -#include "dce_virtual.h"<br>
> +#include "amdgpu_vkms.h"<br>
> #include "mxgpu_ai.h"<br>
> #include "amdgpu_ras.h"<br>
> #include "amdgpu_xgmi.h"<br>
> @@ -843,7 +843,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> }<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -863,7 +863,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -885,7 +885,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)<br>
> }<br>
><br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &gfx_v9_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &smu_v11_0_ip_block);<br>
> @@ -909,7 +909,7 @@ int soc15_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &gfx_v9_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c<br>
> index 3d21c0799037..fe9a7cc8d9eb 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/vi.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/vi.c<br>
> @@ -77,7 +77,7 @@<br>
> #if defined(CONFIG_DRM_AMD_ACP)<br>
> #include "amdgpu_acp.h"<br>
> #endif<br>
> -#include "dce_virtual.h"<br>
> +#include "amdgpu_vkms.h"<br>
> #include "mxgpu_vi.h"<br>
> #include "amdgpu_dm.h"<br>
><br>
> @@ -2102,7 +2102,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v2_4_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> break;<br>
> case CHIP_FIJI:<br>
> amdgpu_device_ip_block_add(adev, &vi_common_ip_block);<br>
> @@ -2112,7 +2112,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2132,7 +2132,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display || amdgpu_sriov_vf(adev))<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2155,7 +2155,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v3_1_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2173,7 +2173,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> @@ -2194,7 +2194,7 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)<br>
> amdgpu_device_ip_block_add(adev, &sdma_v3_0_ip_block);<br>
> amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);<br>
> if (adev->enable_virtual_display)<br>
> - amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);<br>
> + amdgpu_device_ip_block_add(adev, &amdgpu_vkms_ip_block);<br>
> #if defined(CONFIG_DRM_AMD_DC)<br>
> else if (amdgpu_device_has_dc_support(adev))<br>
> amdgpu_device_ip_block_add(adev, &dm_ip_block);<br>
> --<br>
> 2.32.0<br>
><br>
</div>
</span></font></div>
</div>
</body>
</html>