diff options
| author | Lijo Lazar <lijo.lazar@amd.com> | 2025-12-08 18:26:09 +0530 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2026-03-02 16:42:38 -0500 |
| commit | f4eb08f8b216c334752246fe24e1304477d78968 (patch) | |
| tree | 5820c2ff24a9f14af214d174f60e506a4b52c1c5 /drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h | |
| parent | 3d77ca68eb0b48f88cc891d1b98f109b68e2ffcf (diff) | |
drm/amdgpu: Add smc method to register block
Define register access block which consolidates different register access
methods. Add smc method to register access block.
Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h index e03865c0c093..225d89eabed5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h @@ -25,15 +25,27 @@ #define __AMDGPU_REG_ACCESS_H__ #include <linux/types.h> +#include <linux/spinlock.h> struct amdgpu_device; -/* - * Registers read & write functions. - */ typedef uint32_t (*amdgpu_rreg_t)(struct amdgpu_device *, uint32_t); typedef void (*amdgpu_wreg_t)(struct amdgpu_device *, uint32_t, uint32_t); +struct amdgpu_reg_ind { + spinlock_t lock; + amdgpu_rreg_t rreg; + amdgpu_wreg_t wreg; +}; + +struct amdgpu_reg_access { + struct amdgpu_reg_ind smc; +}; + +void amdgpu_reg_access_init(struct amdgpu_device *adev); +uint32_t amdgpu_reg_smc_rd32(struct amdgpu_device *adev, uint32_t reg); +void amdgpu_reg_smc_wr32(struct amdgpu_device *adev, uint32_t reg, uint32_t v); + typedef uint32_t (*amdgpu_rreg_ext_t)(struct amdgpu_device *, uint64_t); typedef void (*amdgpu_wreg_ext_t)(struct amdgpu_device *, uint64_t, uint32_t); |
