From ed604594d3fc298567ef7245fd596da6d1ea909f Mon Sep 17 00:00:00 2001 From: Adam Madsen Date: Wed, 18 Nov 2020 17:43:28 -0600 Subject: [PATCH] [amd] common: fix indirect register access --- src/amd/common.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/amd/common.h b/src/amd/common.h index 5e32fcd..ef0bc85 100644 --- a/src/amd/common.h +++ b/src/amd/common.h @@ -38,11 +38,11 @@ static inline bool drm_can_sleep(void) #define RREG32(reg) \ ({ \ u32 __out; \ - if ((reg) < adev_to_amd_private(adev)->mmio_size) \ + if (((reg) * 4) < adev_to_amd_private(adev)->mmio_size) \ __out = readl(adev_to_amd_private(adev)->mmio + (reg)); \ else \ { \ - writel((reg), adev_to_amd_private(adev)->mmio + mmMM_INDEX); \ + writel(((reg) * 4), adev_to_amd_private(adev)->mmio + mmMM_INDEX); \ __out = readl(adev_to_amd_private(adev)->mmio + mmMM_DATA); \ } \ __out; \ @@ -51,11 +51,11 @@ static inline bool drm_can_sleep(void) #define WREG32(reg, v) \ do \ { \ - if ((reg) < adev_to_amd_private(adev)->mmio_size) \ + if (((reg) * 4) < adev_to_amd_private(adev)->mmio_size) \ writel(v, adev_to_amd_private(adev)->mmio + (reg)); \ else \ { \ - writel((reg), adev_to_amd_private(adev)->mmio + mmMM_INDEX); \ + writel(((reg) * 4), adev_to_amd_private(adev)->mmio + mmMM_INDEX); \ writel(v, adev_to_amd_private(adev)->mmio + mmMM_DATA); \ } \ } while (0)