aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1823-drm-amd-powerplay-raven-4k-60hz-dp-monitor-always-fl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1823-drm-amd-powerplay-raven-4k-60hz-dp-monitor-always-fl.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1823-drm-amd-powerplay-raven-4k-60hz-dp-monitor-always-fl.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1823-drm-amd-powerplay-raven-4k-60hz-dp-monitor-always-fl.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1823-drm-amd-powerplay-raven-4k-60hz-dp-monitor-always-fl.patch
new file mode 100644
index 00000000..e48cf011
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1823-drm-amd-powerplay-raven-4k-60hz-dp-monitor-always-fl.patch
@@ -0,0 +1,89 @@
+From a7076e088febaba8e441589c98ef48ea77e3ad83 Mon Sep 17 00:00:00 2001
+From: hersen wu <hersenxs.wu@amd.com>
+Date: Wed, 3 Apr 2019 16:14:08 -0400
+Subject: [PATCH 1823/2940] drm/amd/powerplay: raven 4k@60hz dp monitor always
+ flicking
+
+[WHY] clock unit mis-match between caller DC and SMU interface.
+ dc pass lock in mhz. the same unit as smu. no covert is needed.
+
+[HOW] remove covert_10k_to_mhz in smu interface
+ this fixes corruption issue with 4k @60 display and stutter
+ mode enable
+
+Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
+Signed-off-by: hersen wu <hersenxs.wu@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com>
+---
+ .../gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c | 17 ++++++-----------
+ include/uapi/linux/kfd_ioctl.h | 7 +++++++
+ 2 files changed, 13 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
+index 5f5dec9b97e2..9a595f7525e6 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
+@@ -205,18 +205,13 @@ static int smu10_set_clock_limit(struct pp_hwmgr *hwmgr, const void *input)
+ return 0;
+ }
+
+-static inline uint32_t convert_10k_to_mhz(uint32_t clock)
+-{
+- return (clock + 99) / 100;
+-}
+-
+ static int smu10_set_min_deep_sleep_dcefclk(struct pp_hwmgr *hwmgr, uint32_t clock)
+ {
+ struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
+
+ if (smu10_data->need_min_deep_sleep_dcefclk &&
+- smu10_data->deep_sleep_dcefclk != convert_10k_to_mhz(clock)) {
+- smu10_data->deep_sleep_dcefclk = convert_10k_to_mhz(clock);
++ smu10_data->deep_sleep_dcefclk != clock) {
++ smu10_data->deep_sleep_dcefclk = clock;
+ smum_send_msg_to_smc_with_parameter(hwmgr,
+ PPSMC_MSG_SetMinDeepSleepDcefclk,
+ smu10_data->deep_sleep_dcefclk);
+@@ -229,8 +224,8 @@ static int smu10_set_hard_min_dcefclk_by_freq(struct pp_hwmgr *hwmgr, uint32_t c
+ struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
+
+ if (smu10_data->dcf_actual_hard_min_freq &&
+- smu10_data->dcf_actual_hard_min_freq != convert_10k_to_mhz(clock)) {
+- smu10_data->dcf_actual_hard_min_freq = convert_10k_to_mhz(clock);
++ smu10_data->dcf_actual_hard_min_freq != clock) {
++ smu10_data->dcf_actual_hard_min_freq = clock;
+ smum_send_msg_to_smc_with_parameter(hwmgr,
+ PPSMC_MSG_SetHardMinDcefclkByFreq,
+ smu10_data->dcf_actual_hard_min_freq);
+@@ -243,8 +238,8 @@ static int smu10_set_hard_min_fclk_by_freq(struct pp_hwmgr *hwmgr, uint32_t cloc
+ struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
+
+ if (smu10_data->f_actual_hard_min_freq &&
+- smu10_data->f_actual_hard_min_freq != convert_10k_to_mhz(clock)) {
+- smu10_data->f_actual_hard_min_freq = convert_10k_to_mhz(clock);
++ smu10_data->f_actual_hard_min_freq != clock) {
++ smu10_data->f_actual_hard_min_freq = clock;
+ smum_send_msg_to_smc_with_parameter(hwmgr,
+ PPSMC_MSG_SetHardMinFclkByFreq,
+ smu10_data->f_actual_hard_min_freq);
+diff --git a/include/uapi/linux/kfd_ioctl.h b/include/uapi/linux/kfd_ioctl.h
+index 71a87c36e2b6..e02346d26c59 100644
+--- a/include/uapi/linux/kfd_ioctl.h
++++ b/include/uapi/linux/kfd_ioctl.h
+@@ -390,6 +390,13 @@ struct kfd_ioctl_unmap_memory_from_gpu_args {
+ __u32 n_success; /* to/from KFD */
+ };
+
++/* Register offset inside the remapped mmio page
++ */
++enum kfd_mmio_remap {
++ KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
++ KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
++};
++
+ #define AMDKFD_IOCTL_BASE 'K'
+ #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
+ #define AMDKFD_IOR(nr, type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
+--
+2.17.1
+