summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h
diff options
context:
space:
mode:
authorLijo Lazar <lijo.lazar@amd.com>2025-12-09 18:01:25 +0530
committerAlex Deucher <alexander.deucher@amd.com>2026-03-02 16:46:44 -0500
commit467ebfe65f6e70da92266b156c6fbf6e9e0e022f (patch)
treec9a5f05bf2564ba32e3710b1b3f5b3f97f577df0 /drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h
parentb2d55124712b3551842bab228f27db3df8068b30 (diff)
drm/amdgpu: Add smn callbacks to register block
Add smn block to register access and callback interface definition to get smn base. 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.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h
index dc0e81cef3b9..b3b941cc7b7c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h
@@ -27,6 +27,8 @@
#include <linux/types.h>
#include <linux/spinlock.h>
+#include "amdgpu_ip.h"
+
struct amdgpu_device;
typedef uint32_t (*amdgpu_rreg_t)(struct amdgpu_device *, uint32_t);
@@ -42,6 +44,9 @@ typedef uint32_t (*amdgpu_block_rreg_t)(struct amdgpu_device *, uint32_t,
uint32_t);
typedef void (*amdgpu_block_wreg_t)(struct amdgpu_device *, uint32_t, uint32_t,
uint32_t);
+typedef uint64_t (*amdgpu_reg_get_smn_base64_t)(struct amdgpu_device *adev,
+ enum amd_hw_ip_block_type block,
+ int die_inst);
struct amdgpu_reg_ind {
spinlock_t lock;
@@ -69,6 +74,10 @@ struct amdgpu_reg_pcie_ind {
amdgpu_wreg_t port_wreg;
};
+struct amdgpu_reg_smn_ext {
+ amdgpu_reg_get_smn_base64_t get_smn_base;
+};
+
struct amdgpu_reg_access {
struct amdgpu_reg_ind smc;
struct amdgpu_reg_ind uvd_ctx;
@@ -77,6 +86,7 @@ struct amdgpu_reg_access {
struct amdgpu_reg_ind se_cac;
struct amdgpu_reg_ind_blk audio_endpt;
struct amdgpu_reg_pcie_ind pcie;
+ struct amdgpu_reg_smn_ext smn;
};
void amdgpu_reg_access_init(struct amdgpu_device *adev);
@@ -109,6 +119,9 @@ void amdgpu_reg_pcie_ext_wr64(struct amdgpu_device *adev, uint64_t reg,
uint32_t amdgpu_reg_pciep_rd32(struct amdgpu_device *adev, uint32_t reg);
void amdgpu_reg_pciep_wr32(struct amdgpu_device *adev, uint32_t reg,
uint32_t v);
+uint64_t amdgpu_reg_get_smn_base64(struct amdgpu_device *adev,
+ enum amd_hw_ip_block_type block,
+ int die_inst);
uint32_t amdgpu_device_rreg(struct amdgpu_device *adev, uint32_t reg,
uint32_t acc_flags);