aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3165-drm-amd-powerplay-add-smcdpminfo-table-v4_6-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3165-drm-amd-powerplay-add-smcdpminfo-table-v4_6-support.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3165-drm-amd-powerplay-add-smcdpminfo-table-v4_6-support.patch115
1 files changed, 115 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3165-drm-amd-powerplay-add-smcdpminfo-table-v4_6-support.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3165-drm-amd-powerplay-add-smcdpminfo-table-v4_6-support.patch
new file mode 100644
index 00000000..eebd16b4
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3165-drm-amd-powerplay-add-smcdpminfo-table-v4_6-support.patch
@@ -0,0 +1,115 @@
+From 96be0cef1b429617106a8a7955f3e20066365dd7 Mon Sep 17 00:00:00 2001
+From: Evan Quan <evan.quan@amd.com>
+Date: Wed, 10 Jul 2019 09:29:57 +0800
+Subject: [PATCH 3165/4256] drm/amd/powerplay: add smcdpminfo table v4_6
+ support
+
+New smcdpminfo table used in arcturus.
+
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/include/atomfirmware.h | 86 ++++++++++++++++++++++
+ 1 file changed, 86 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/include/atomfirmware.h b/drivers/gpu/drm/amd/include/atomfirmware.h
+index 3ec0aadee03f..73e31c377402 100644
+--- a/drivers/gpu/drm/amd/include/atomfirmware.h
++++ b/drivers/gpu/drm/amd/include/atomfirmware.h
+@@ -1789,6 +1789,92 @@ struct atom_smc_dpm_info_v4_5
+
+ };
+
++struct atom_smc_dpm_info_v4_6
++{
++ struct atom_common_table_header table_header;
++ // section: board parameters
++ uint32_t i2c_padding[3]; // old i2c control are moved to new area
++
++ uint16_t maxvoltagestepgfx; // in mv(q2) max voltage step that smu will request. multiple steps are taken if voltage change exceeds this value.
++ uint16_t maxvoltagestepsoc; // in mv(q2) max voltage step that smu will request. multiple steps are taken if voltage change exceeds this value.
++
++ uint8_t vddgfxvrmapping; // use vr_mapping* bitfields
++ uint8_t vddsocvrmapping; // use vr_mapping* bitfields
++ uint8_t vddmemvrmapping; // use vr_mapping* bitfields
++ uint8_t boardvrmapping; // use vr_mapping* bitfields
++
++ uint8_t gfxulvphasesheddingmask; // set this to 1 to set psi0/1 to 1 in ulv mode
++ uint8_t externalsensorpresent; // external rdi connected to tmon (aka temp in)
++ uint8_t padding8_v[2];
++
++ // telemetry settings
++ uint16_t gfxmaxcurrent; // in amps
++ uint8_t gfxoffset; // in amps
++ uint8_t padding_telemetrygfx;
++
++ uint16_t socmaxcurrent; // in amps
++ uint8_t socoffset; // in amps
++ uint8_t padding_telemetrysoc;
++
++ uint16_t memmaxcurrent; // in amps
++ uint8_t memoffset; // in amps
++ uint8_t padding_telemetrymem;
++
++ uint16_t boardmaxcurrent; // in amps
++ uint8_t boardoffset; // in amps
++ uint8_t padding_telemetryboardinput;
++
++ // gpio settings
++ uint8_t vr0hotgpio; // gpio pin configured for vr0 hot event
++ uint8_t vr0hotpolarity; // gpio polarity for vr0 hot event
++ uint8_t vr1hotgpio; // gpio pin configured for vr1 hot event
++ uint8_t vr1hotpolarity; // gpio polarity for vr1 hot event
++
++ // gfxclk pll spread spectrum
++ uint8_t pllgfxclkspreadenabled; // on or off
++ uint8_t pllgfxclkspreadpercent; // q4.4
++ uint16_t pllgfxclkspreadfreq; // khz
++
++ // uclk spread spectrum
++ uint8_t uclkspreadenabled; // on or off
++ uint8_t uclkspreadpercent; // q4.4
++ uint16_t uclkspreadfreq; // khz
++
++ // fclk spread spectrum
++ uint8_t fclkspreadenabled; // on or off
++ uint8_t fclkspreadpercent; // q4.4
++ uint16_t fclkspreadfreq; // khz
++
++
++ // gfxclk fll spread spectrum
++ uint8_t fllgfxclkspreadenabled; // on or off
++ uint8_t fllgfxclkspreadpercent; // q4.4
++ uint16_t fllgfxclkspreadfreq; // khz
++
++ // i2c controller structure
++ struct smudpm_i2c_controller_config_v2 i2ccontrollers[8];
++
++ // memory section
++ uint32_t memorychannelenabled; // for dram use only, max 32 channels enabled bit mask.
++
++ uint8_t drambitwidth; // for dram use only. see dram bit width type defines
++ uint8_t paddingmem[3];
++
++ // total board power
++ uint16_t totalboardpower; //only needed for tcp estimated case, where tcp = tgp+total board power
++ uint16_t boardpadding;
++
++ // section: xgmi training
++ uint8_t xgmilinkspeed[4];
++ uint8_t xgmilinkwidth[4];
++
++ uint16_t xgmifclkfreq[4];
++ uint16_t xgmisocvoltage[4];
++
++ // reserved
++ uint32_t boardreserved[10];
++};
++
+ /*
+ ***************************************************************************
+ Data Table asic_profiling_info structure
+--
+2.17.1
+