summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c
index 563b155b15c6..175fdfc5229b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c
@@ -58,6 +58,9 @@ void amdgpu_reg_access_init(struct amdgpu_device *adev)
spin_lock_init(&adev->reg.audio_endpt.lock);
adev->reg.audio_endpt.rreg = NULL;
adev->reg.audio_endpt.wreg = NULL;
+
+ adev->reg.pcie.port_rreg = NULL;
+ adev->reg.pcie.port_wreg = NULL;
}
uint32_t amdgpu_reg_smc_rd32(struct amdgpu_device *adev, uint32_t reg)
@@ -179,6 +182,24 @@ void amdgpu_reg_audio_endpt_wr32(struct amdgpu_device *adev, uint32_t block,
adev->reg.audio_endpt.wreg(adev, block, reg, v);
}
+uint32_t amdgpu_reg_pciep_rd32(struct amdgpu_device *adev, uint32_t reg)
+{
+ if (!adev->reg.pcie.port_rreg) {
+ dev_err_once(adev->dev, "PCIEP register read not supported\n");
+ return 0;
+ }
+ return adev->reg.pcie.port_rreg(adev, reg);
+}
+
+void amdgpu_reg_pciep_wr32(struct amdgpu_device *adev, uint32_t reg, uint32_t v)
+{
+ if (!adev->reg.pcie.port_wreg) {
+ dev_err_once(adev->dev, "PCIEP register write not supported\n");
+ return;
+ }
+ adev->reg.pcie.port_wreg(adev, reg, v);
+}
+
/*
* register access helper functions.
*/