summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon
AgeCommit message (Collapse)AuthorFilesLines
2024-04-17drm/radeon: silence UBSAN warning (v3)Alex Deucher1-5/+5
Convert a variable sized array from [1] to []. v2: fix up a few more. v3: integrate comments from Kees. Reviewed-by: Kees Cook <keescook@chromium.org> Tested-by: Jeff Johnson <quic_jjohnson@quicinc.com> (v2) Acked-by: Christian König <christian.koenig@amd.com> (v1) Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: keescook@chromium.org
2024-04-17drm/radeon: make -fstrict-flex-arrays=3 happyAlex Deucher1-2/+6
The driver parses a union where the layout up through the first array is the same, however, the array has different sizes depending on the elements in the union. Be explicit to fix the UBSAN checker. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3323 Fixes: df8fc4e934c1 ("kbuild: Enable -fstrict-flex-arrays=3") Acked-by: Christian König <christian.koenig@amd.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: Kees Cook <keescook@chromium.org>
2024-03-08Merge tag 'amd-drm-next-6.9-2024-03-01' of ↵Dave Airlie2-50/+30
https://gitlab.freedesktop.org/agd5f/linux into drm-next amd-drm-next-6.9-2024-03-01: amdgpu: - GC 11.5.1 updates - Misc display cleanups - NBIO 7.9 updates - Backlight fixes - DMUB fixes - MPO fixes - atomfirmware table updates - SR-IOV fixes - VCN 4.x updates - use RMW accessors for pci config registers - PSR fixes - Suspend/resume fixes - RAS fixes - ABM fixes - Misc code cleanups - SI DPM fix - Revert freesync video amdkfd: - Misc cleanups - Error handling fixes radeon: - use RMW accessors for pci config registers From: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240301204857.13960-1-alexander.deucher@amd.com Signed-off-by: Dave Airlie <airlied@redhat.com>
2024-02-22drm/radeon: Use RMW accessors for changing LNKCTL2Ilpo Järvinen2-50/+30
Convert open coded RMW accesses for LNKCTL2 to use pcie_capability_clear_and_set_word() which makes its easier to understand what the code tries to do. LNKCTL2 is not really owned by any driver because it is a collection of control bits that PCI core might need to touch. RMW accessors already have support for proper locking for a selected set of registers (LNKCTL2 is not yet among them but likely will be in the future) to avoid losing concurrent updates. Acked-by: Alex Deucher <alexander.deucher@amd.com> Suggested-by: Lukas Wunner <lukas@wunner.de> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-02-22Merge tag 'amd-drm-next-6.9-2024-02-19' of ↵Dave Airlie1-1/+1
https://gitlab.freedesktop.org/agd5f/linux into drm-next amd-drm-next-6.9-2024-02-19: amdgpu: - ATHUB 4.1 support - EEPROM support updates - RAS updates - LSDMA 7.0 support - JPEG DPG support - IH 7.0 support - HDP 7.0 support - VCN 5.0 support - Misc display fixes - Retimer fixes - DCN 3.5 fixes - VCN 4.x fixes - PSR fixes - PSP 14.0 support - VA_RESERVED cleanup - SMU 13.0.6 updates - NBIO 7.11 updates - SDMA 6.1 updates - MMHUB 3.3 updates - Suspend/resume fixes - DMUB updates amdkfd: - Trap handler enhancements - Fix cache size reporting - Relocate the trap handler radeon: - fix typo in print statement Signed-off-by: Dave Airlie <airlied@redhat.com> From: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240219214810.4911-1-alexander.deucher@amd.com
2024-02-13Merge tag 'amd-drm-next-6.9-2024-02-09' of ↵Dave Airlie51-563/+372
https://gitlab.freedesktop.org/agd5f/linux into drm-next amd-drm-next-6.9-2024-02-09: amdgpu: - Validate DMABuf imports in compute VMs - Add RAS ACA framework - PSP 13 fixes - Misc code cleanups - Replay fixes - Atom interpretor PS, WS bounds checking - DML2 fixes - Audio fixes - DCN 3.5 Z state fixes - Remove deprecated ida_simple usage - UBSAN fixes - RAS fixes - Enable seq64 infrastructure - DC color block enablement - Documentation updates - DC documentation updates - DMCUB updates - S3 fixes - VCN 4.0.5 fixes - DP MST fixes - SR-IOV fixes amdkfd: - Validate DMABuf imports in compute VMs - SVM fixes - Trap handler updates radeon: - Atom interpretor PS, WS bounds checking - Misc code cleanups UAPI: - Bump KFD version so UMDs know that the fixes that enable the management of VA mappings in compute VMs using the GEM_VA ioctl for DMABufs exported from KFD are present - Add INFO query for input power. This matches the existing INFO query for average power. Used in gaming HUDs, etc. Example userspace: https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs/tree/input_power From: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240209221459.5453-1-alexander.deucher@amd.com
2024-02-13drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()Nikita Zhandarovich1-1/+1
Clean up a typo in pr_err() erroneously printing NI MC 'rdev->mc_fw->size' during SMC firmware load. Log 'rdev->smc_fw->size' instead. Found by Linux Verification Center (linuxtesting.org) with static analysis tool SVACE. Fixes: 6596afd48af4 ("drm/radeon/kms: add dpm support for btc (v3)") Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-29Merge drm/drm-next into drm-misc-nextMaxime Ripard21-17/+44
Kickstart 6.9 development cycle. Signed-off-by: Maxime Ripard <mripard@kernel.org>
2024-01-25drm/ttm: replace busy placement with flags v6Somalapuram Amaranath3-10/+1
Instead of a list of separate busy placement add flags which indicate that a placement should only be used when there is room or if we need to evict. v2: add missing TTM_PL_FLAG_IDLE for i915 v3: fix auto build test ERROR on drm-tip/drm-tip v4: fix some typos pointed out by checkpatch v5: cleanup some rebase problems with VMWGFX v6: implement some missing VMWGFX functionality pointed out by Zack, rename the flags as suggested by Michel, rebase on drm-tip and adjust XE as well Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Somalapuram Amaranath <Amaranath.Somalapuram@amd.com> Reviewed-by: Zack Rusin <zack.rusin@broadcom.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240112125158.2748-4-christian.koenig@amd.com
2024-01-23drm/radeon/ni_dpm: remove redundant NULL checkNikita Zhandarovich1-3/+0
'leakage_table' will always be successfully initialized as a pointer to '&rdev->pm.dpm.dyn_state.cac_leakage_table'. Remove unnecessary check if only to silence static checkers. Found by Linux Verification Center (linuxtesting.org) with static analysis tool Svace. Fixes: 69e0b57a91ad ("drm/radeon/kms: add dpm support for cayman (v5)") Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-23drm/radeon: remove dead code in ni_mc_load_microcode()Nikita Zhandarovich1-9/+1
Inside the if block with (running == 0), the checks for 'running' possibly being non-zero are redundant. Remove them altogether. This change is similar to the one authored by Heinrich Schuchardt <xypron.glpk@gmx.de> in commit ddbbd3be9679 ("drm/radeon: remove dead code, si_mc_load_microcode (v2)") Found by Linux Verification Center (linuxtesting.org) with static analysis tool Svace. Fixes: 0af62b016804 ("drm/radeon/kms: add ucode loader for NI") Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-19Merge tag 'i2c-for-6.8-rc1-rebased' of ↵Linus Torvalds1-1/+0
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: "This removes the currently unused CLASS_DDC support (controllers set the flag, but there is no client to use it). Also, CLASS_SPD support gets simplified to prepare removal in the future. Class based instantiation is not recommended these days anyhow. Furthermore, I2C core now creates a debugfs directory per I2C adapter. Current bus driver users were converted to use it. Finally, quite some driver updates. Standing out are patches for the wmt-driver which is refactored to support more variants. This is the rebased pull request where a large series for the designware driver was dropped" * tag 'i2c-for-6.8-rc1-rebased' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (38 commits) MAINTAINERS: use proper email for my I2C work i2c: stm32f7: add support for stm32mp25 soc i2c: stm32f7: perform I2C_ISR read once at beginning of event isr dt-bindings: i2c: document st,stm32mp25-i2c compatible i2c: stm32f7: simplify status messages in case of errors i2c: stm32f7: perform most of irq job in threaded handler i2c: stm32f7: use dev_err_probe upon calls of devm_request_irq i2c: i801: Add lis3lv02d for Dell XPS 15 7590 i2c: i801: Add lis3lv02d for Dell Precision 3540 i2c: wmt: Reduce redundant: REG_CR setting i2c: wmt: Reduce redundant: function parameter i2c: wmt: Reduce redundant: clock mode setting i2c: wmt: Reduce redundant: wait event complete i2c: wmt: Reduce redundant: bus busy check i2c: mux: reg: Remove class-based device auto-detection support i2c: make i2c_bus_type const dt-bindings: at24: add ROHM BR24G04 eeprom: at24: use of_match_ptr() i2c: cpm: Remove linux,i2c-index conversion from be32 i2c: imx: Make SDA actually optional for bus recovering ...
2024-01-18drm/radeon/ni_dpm: Clean up errors in nislands_smc.hXueBing Chen1-34/+17
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/evergreen_cs: Clean up errors in evergreen_cs.cXueBing Chen1-2/+2
Fix the following errors reported by checkpatch: ERROR: space required after that ',' (ctx:VxV) ERROR: spaces required around that '>' (ctx:VxV) ERROR: spaces required around that '<' (ctx:VxV) Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in si.cXueBing Chen1-41/+22
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: trailing statements should be on next lineo Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in radeon.hXueBing Chen1-4/+2
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in ci_dpm.hXueBing Chen1-4/+2
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/dpm: Clean up errors in evergreen_smc.hXueBing Chen1-6/+3
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in clearstate_cayman.hXueBing Chen1-6/+3
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in clearstate_ci.hXueBing Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/kms: Clean up errors in radeon_pm.cXueBing Chen1-2/+2
Fix the following errors reported by checkpatch: ERROR: space required before the open parenthesis '(' Signed-off-by: XueBing Chen <chenxb_99091@126.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/kms: Clean up errors in smu7.hGuoHua Chen1-4/+2
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/kms: Clean up errors in smu7_fusion.hGuoHua Chen1-26/+16
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line ERROR: space prohibited before open square bracket '[' Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in r600_dpm.cGuoHua Chen1-4/+2
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in rv515.cGuoHua Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in radeon_mode.hGuoHua Chen1-6/+3
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in evergreen_reg.hGuoHua Chen1-5/+5
Fix the following errors reported by checkpatch: ERROR: space prohibited before that close parenthesis ')' ERROR: need consistent spacing around '<<' (ctx:WxV) ERROR: need consistent spacing around '-' (ctx:WxV) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in kv_smc.cGuoHua Chen1-1/+1
Fix the following errors reported by checkpatch: ERROR: spaces required around that '=' (ctx:VxW) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18gpu/drm/radeon: Clean up errors in evergreen.cGuoHua Chen1-1/+1
Fix the following errors reported by checkpatch: ERROR: space prohibited after that open parenthesis '(' ERROR: space prohibited before that close parenthesis ')' Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in evergreen.cGuoHua Chen1-12/+8
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: spaces required around that '&=' (ctx:WxO) ERROR: space required before that '~' (ctx:OxV) ERROR: space prohibited before that close parenthesis ')' ERROR: space required after that ',' (ctx:WxO) ERROR: space required before that '&' (ctx:OxV) ERROR: need consistent spacing around '*' (ctx:VxW) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in rv770_smc.hGuoHua Chen1-18/+9
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line ERROR: open brace '{' following union go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/ci_dpm: Clean up errors in ci_dpm.cGuoHua Chen1-18/+13
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: need consistent spacing around '-' (ctx:WxV) ERROR: space required before the open parenthesis '(' ERROR: "foo* bar" should be "foo *bar" Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in r600.cGuoHua Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in rs600.cGuoHua Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in si_dpm.hGuoHua Chen1-14/+7
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line ERROR: open brace '{' following enum go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in radeon_audio.cGuoHua Chen1-6/+5
Fix the following errors reported by checkpatch: ERROR: "foo* bar" should be "foo *bar" ERROR: that open brace { should be on the previous line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in rs400.cGuoHua Chen1-2/+2
Fix the following errors reported by checkpatch: ERROR: space required before the open parenthesis '(' Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in radeon_audio.hGuoHua Chen1-4/+2
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in uvd_v1_0.cGuoHua Chen1-1/+1
Fix the following errors reported by checkpatch: ERROR: "(foo*)" should be "(foo *)" Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in radeon_asic.cGuoHua Chen1-4/+4
Fix the following errors reported by checkpatch: ERROR: spaces required around that '||' (ctx:VxE) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/kms: Clean up errors in rv6xx_dpm.hGuoHua Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/btc_dpm: Clean up errors in btc_dpm.cGuoHua Chen1-59/+31
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: space required before the open parenthesis '(' ERROR: spaces required around that '+=' (ctx:VxV) ERROR: spaces required around that '=' (ctx:VxW) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/dpm: Clean up errors in trinity_dpm.hGuoHua Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/rv770: Clean up errors in rv770_dpm.cGuoHua Chen1-2/+2
Fix the following errors reported by checkpatch: ERROR: space prohibited before that close parenthesis ')' Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in smu7_discrete.hGuoHua Chen1-34/+17
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in ni_dpm.cGuoHua Chen1-1/+1
Fix the following errors reported by checkpatch: ERROR: space prohibited before that ',' (ctx:WxV) ERROR: space required after that ',' (ctx:WxV) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/ni_dpm: Clean up errors in ni_dpm.cGuoHua Chen1-8/+4
Fix the following errors reported by checkpatch: ERROR: open brace '{' following struct go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon/dpm: Clean up errors in sumo_dpm.cGuoHua Chen1-10/+8
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: space prohibited before that close parenthesis ')' ERROR: spaces required around that '?' (ctx:VxW) Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in ni.cGuoHua Chen1-13/+8
Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: trailing statements should be on next line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2024-01-18drm/radeon: Clean up errors in r600_dpm.hGuoHua Chen1-2/+1
Fix the following errors reported by checkpatch: ERROR: open brace '{' following enum go on the same line Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>