Kevin Wang
155f85c0d5
drm/amd/powerplay: remove duplicate macro smu_get_uclk_dpm_states in amdgpu_smu.h
...
remove duplicate macro smu_get_uclk_dpm_states in amdgpu_smu.h
"
#define smu_get_uclk_dpm_states(smu, clocks_in_khz, num_states) \
((smu)->ppt_funcs->get_uclk_dpm_states ? (smu)->ppt_funcs->get_uclk_dpm_states((smu), (clocks_in_khz), (num_states)) : 0)
#define smu_get_max_sustainable_clocks_by_dc(smu, max_clocks) \
((smu)->funcs->get_max_sustainable_clocks_by_dc ? (smu)->funcs->get_max_sustainable_clocks_by_dc((smu), (max_clocks)) : 0)
#define smu_get_uclk_dpm_states(smu, clocks_in_khz, num_states) \
((smu)->ppt_funcs->get_uclk_dpm_states ? (smu)->ppt_funcs->get_uclk_dpm_states((smu), (clocks_in_khz), (num_states)) : 0)
"
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-08-21 17:31:12 -05:00
Evan Quan
b887011803
drm/amd/powerplay: correct navi10 vcn powergate
...
vcn dpm on is a prerequisite for vcn power gate control.
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 >
2019-08-02 21:55:47 -05:00
Kevin Wang
2c0f07fe3c
drm/amd/powerplay: add callback function of get_thermal_temperature_range
...
1. the thermal temperature is asic related data, move the code logic to
xxx_ppt.c.
2. replace data structure PP_TemperatureRange with
smu_temperature_range.
3. change temperature uint from temp*1000 to temp (temperature uint).
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Acked-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-31 00:00:49 -05:00
Alex Deucher
1bcff32679
drm/amdgpu/smu: move fan rpm query into the asic specific code
...
On vega20, there is an SMU message to query it. On navi, it's fetched
from the metrics table.
Reviewed-by: Evan Quan <evan.quan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-22 15:25:32 -05:00
Kevin Wang
b840e4d5fe
drm/amd/powerplay: custom peak clock freq for navi10
...
v2:
add function smu_default_set_performance_level as default dpm level handler.
change function name smu_set_performance_level to smu_asic_set_performance_level
v1:
1.NAVI10_PEAK_SCLK_XTX 1830 Mhz
2.NAVI10_PEAK_SCLK_XT 1755 Mhz
3.NAVI10_PEAK_SCLK_XL 1625 Mhz
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Jack Gui <Jack.Gui@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-22 15:23:07 -05:00
Evan Quan
cd6e0c4ba1
drm/amd/powerplay: update vega20 driver if to fit latest SMU firmware
...
Optimization for the socket power calculation is introduced.
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 >
2019-07-17 13:34:30 -05:00
Evan Quan
0d9d78b57b
drm/amd/powerplay: correct smu_update_table usage
...
The interface was used in a confusing way. In profile mode scenario,
the 2nd parameter of the interface was used in a different way from
other scenarios.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-17 13:34:30 -05:00
Kevin Wang
54728170e0
drm/amd/powerplay: add helper of smu_clk_dpm_is_enabled for smu
...
v2: change function name to smu_clk_dpm_is_enabled.
add this helper function to check dpm clk feature is enabled.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-16 13:08:23 -05:00
Kevin Wang
767acabdac
drm/amd/powerplay: add baco smu reset function for smu11
...
add baco reset support for smu11.
it can help gpu do asic reset when gpu recovery.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-05 15:59:08 -05:00
Evan Quan
04796a3e44
drm/amd/powerplay: use hardware fan control if no powerplay fan table
...
Otherwise, you may get divided-by-zero error or corrput the SMU fan
control feature.
Signed-off-by: Evan Quan <evan.quan@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Tested-by: Slava Abramov <slava.abramov@amd.com >
Acked-by: Slava Abramov <slava.abramov@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-07-01 14:54:22 -05:00
tiancyin
39b27ffef7
drm/amd/powerplay: update smu11_driver_if_navi10.h
...
update the smu11_driver_if_navi10.h since navi10 smu fw
update to 42.28
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: tiancyin <tianci.yin@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-28 09:08:03 -05:00
hersen wu
be9a7355e9
drm/amd/powerplay: add interface to get uclk dpm table
...
dc needs get uclk dpm table for bandwidth calculation
Signed-off-by: hersen wu <hersenxs.wu@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-22 09:34:06 -05:00
hersen wu
a18bf0ca41
drm/amd/powrplay: add interface for dc to get max clock values
...
dc (display component) needs maximum clock values of uclock,
socclk, dcefclk, to calculate display bandwidth.
Signed-off-by: hersen wu <hersenxs.wu@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-22 09:33:44 -05:00
Jack Xiao
4bc920a680
drm/amd/powerplay: update smu11_driver_if_navi10.h
...
update the smu11_driver_if_navi10.h since navi10 smu fw
update to 42.23
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:33 -05:00
Kevin Wang
0c83d32c56
drm/amd/powerplay: simplified od_settings for each asic
...
the od_settings is asic related data, so move it to asic file.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
Kevin Wang
8f30a16d3a
drm/amd/powerplay: move od_default_setting callback to asic file
...
the set default od_setting is asic related function,
so move thic code to vega20_ppt file.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
Kevin Wang
a259714bb2
drm/amd/powerplay: move od8_setting helper function to vega20_ppt
...
these callback functions is only used for vega20 asic, to be compatible
other asics,need to move this code to vega20_ppt file
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
Kevin Wang
c7a063a2f2
drm/amd/powerplay: fix clk type name error OD_SCLK OD_MCLK
...
use sw-smu clk type name to replace legacy clk type name
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
Alex Deucher
f5c1b7afff
drm/amdgpu/powerplay: add license to smu11 header
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
hersen wu
f4b3295fa2
drm/amd/powerplay: add interface to get uclk dpm table
...
dc needs get uclk dpm table for bandwidth calculation
Signed-off-by: hersen wu <hersenxs.wu@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
hersen wu
26e2b58148
drm/amd/powerplay: wake up azalia from d3 by sending smu message
...
this is hw workaround to wake up azalia from d3. display asic
and azalia are two different pci devices. while display asic
wake from d3, current hw does not send signal to azalia.
workaround: display driver ask smu send message to azalia device
to let azalia wake up.
Defintion of SMU message, like PPSMC_MSG_BacroAudioD3PME, is per
asic. It is shared by different OS.
Signed-off-by: hersen wu <hersenxs.wu@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:32 -05:00
hersen wu
2e13c7551c
drm/amd/powerplay: notify smu with active display count
...
when dc update clocks via smu, smu needs to know how many
displays active. this interface is for dc notify number
of active displays to smu.
Signed-off-by: hersen wu <hersenxs.wu@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:31 -05:00
Kevin Wang
576851345b
drm/amd/powerplay: remove smu callback funciton get_mclk(get_sclk)
...
remove smu callback: get_mclk, get_sclk.
because the function smu_get_dpm_freq_range has the same function.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:31 -05:00
Kevin Wang
5e6d266573
drm/amd/powerplay: add thermal ctf support for navi10
...
add sw-CTF support for navi10
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:31 -05:00
Hawking Zhang
e211580da9
drm/amd/powerplay: move get_thermal_temperature_range to ppt funcs
...
The thermal policy could be ASIC specific ones and depends on structures
in pptable. As a result, get_thermal_temperature_range should be implemented
as ppt funcs instead of smu funcs
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:31 -05:00
Kevin Wang
62b9a88c0e
drm/amd/powerplay: move function get_metrics_table to vega20_ppt
...
the SmuMetrics_t table is asic related data structure.
so move vega20_ppt file to implement.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:31 -05:00
Kevin Wang
a38470f0f8
drm/amd/powerplay: move power_dpm_force_performance_level to amdgpu_smu file
...
because this callback is not asic related function, so move it to top
code level to support more asic (eg: navi10)
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:31 -05:00
Kevin Wang
564c4c7f00
drm/amd/powerplay: simplify the interface of get_gpu_power
...
this callback function is only call in read_sensor in smu_v11_0.c,
so move this code to {asic}_ppt.c to implement as asic related function.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:30 -05:00
Kevin Wang
d573bb214d
drm/amd/powerplay: simplify the interface of get_current_activity_percent
...
this callback function is only call in read_sensor in smu_v11_0.c,
so move this code to {asic}_ppt.c to implement as asic related function.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:30 -05:00
Kenneth Feng
162aa5c31a
amd/powerplay: update the vcn pg
...
update the vcn pg function in navi10.
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Reviewed-by: Evan Quan <evan.quan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:30 -05:00
Kevin Wang
6c6187ece0
drm/amd/powerplay: add function get_workload_type_map for swsmu
...
1.add new callback function get_workload_byte for smu
2.remove old workload map function
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:30 -05:00
Kevin Wang
1316b71361
drm/amd/powerplay: remove upload_dpm_level function for vega20
...
the function upload_dpm_level is an internal function,
so remove public interface.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:30 -05:00
Kevin Wang
a43913ea50
drm/amd/powerplay: add function get_clock_by_type_with_latency for navi10
...
add callback function get_clock_by_type_with_latency for navi10 asic
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
db439ca21b
drm/amd/powerplay: add function force_clk_levels for navi10
...
add sysfs interface of force_clk_levels sysfs for navi10.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
3366561767
drm/amd/powerplay: add helper function of smu_set_hard_freq_range
...
add this function to get dpm clock information.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
0d7cbd2807
drm/amd/powerplay: add helper function of smu_set_soft_freq_range
...
add this helper function to get dpm clk information.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
8b3d243e47
drm/amd/powerplay: add helper function of smu_get_dpm_freq_range
...
add this helper function to get dpm clk information (min, max);
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
b1e7e22419
drm/amd/powerplay: add function print_clk_levels for navi10
...
add sysfs interface of print_clk_levels sysfs for navi10.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
3ac54a5043
drm/amd/powerplay: add helper function to get dpm freq informations
...
this function can help driver to get ppclk informations
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kevin Wang
98e1a543c7
drm/amd/powerplay: add function get current clock freq interface for navi10
...
add function of get_current_clk_freq_by_table for navi10.
Signed-off-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:29 -05:00
Kenneth Feng
a8179d62fb
drm/amd/powerplay: add new interface for vcn powergating
...
add new interface for vcn powrergating and vcn dpm as well.
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:27 -05:00
Kenneth Feng
eb0b49ea40
drm/amd/powerplay: update smu11_driver_if_navi10.h
...
update the smu11_driver_if_navi10.h since navi10 smu fw
update to 42.15.0
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com >
Reviewed-by: Xiaojie Yuan <xiaojie.yuan@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:27 -05:00
Kenneth Feng
4b2bb705a0
drm/amd/powerplay: fix the incorrect type of pptable
...
This patch is to fix the incorrect type of pptable, otherwise, the data will be
totally wrong in parsing phase.
Signed-off-by: Kenneth Feng <Kenneth.Feng@amd.com >
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Huang Rui
013fd3a61a
drm/amd/powerplay: don't include the smu11 driver if header in smu v11 (v2)
...
This header is actually for each asic, so we should not include in smu_v11_0.c.
And rename the one for navi10.
v2: add hack for XGMI (Alex)
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Huang Rui
8890fe5f43
drm/amd/powerplay: introduce smu power source type to handle AC/DC source for each asic
...
This patch introduces new smu power source type, it's to handle the different
AC/DC source defines for each asic with the same smu ip.
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Huang Rui
973849042e
drm/amd/powerplay: move Watermarks_t uses into asic level
...
This patch moves the rest of Watermarks_t uses into asic level. It's to avoid
the conflicts with different asic.
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Huang Rui
8b1f4c87a3
drm/amd/powerplay: move SmuMetrics_t uses into asic level
...
This patch moves the rest of SmuMetrics_t uses into asic level. It's to avoid the
conflicts with different asic.
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Huang Rui
ee0db82027
drm/amd/powerplay: move PPTable_t uses into asic level
...
This patch moves the rest of PPTable_t uses into asic level. It's to avoid the
conflicts with different asic.
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Alex Deucher
8b2ae145de
drm/amd/powerplay/smu11: remove smu_update_table_with_arg
...
Nothing was using it. Just replace with smu_update_table
which is what everything was using via a wrapper anyway.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00
Huang Rui
22c9c6ca96
drm/amd/powerplay: add tables_init interface for each asic
...
The smc tables defines should be in the asic level.
Signed-off-by: Huang Rui <ray.huang@amd.com >
Reviewed-by: Kevin Wang <kevin1.wang@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2019-06-21 18:59:26 -05:00