104104#include "amdgpu_mes.h"
105105#include "amdgpu_umc.h"
106106#include "amdgpu_mmhub.h"
107+ #include "amdgpu_gfxhub.h"
107108#include "amdgpu_df.h"
108109
109110#define MAX_GPU_INSTANCE 16
@@ -881,6 +882,9 @@ struct amdgpu_device {
881882 /* mmhub */
882883 struct amdgpu_mmhub mmhub ;
883884
885+ /* gfxhub */
886+ struct amdgpu_gfxhub gfxhub ;
887+
884888 /* gfx */
885889 struct amdgpu_gfx gfx ;
886890
@@ -1016,18 +1020,32 @@ int amdgpu_gpu_wait_for_idle(struct amdgpu_device *adev);
10161020
10171021void amdgpu_device_vram_access (struct amdgpu_device * adev , loff_t pos ,
10181022 uint32_t * buf , size_t size , bool write );
1019- uint32_t amdgpu_mm_rreg (struct amdgpu_device * adev , uint32_t reg ,
1023+ uint32_t amdgpu_device_rreg (struct amdgpu_device * adev ,
1024+ uint32_t reg , uint32_t acc_flags );
1025+ void amdgpu_device_wreg (struct amdgpu_device * adev ,
1026+ uint32_t reg , uint32_t v ,
10201027 uint32_t acc_flags );
1021- void amdgpu_mm_wreg (struct amdgpu_device * adev , uint32_t reg , uint32_t v ,
1022- uint32_t acc_flags );
1023- void amdgpu_mm_wreg_mmio_rlc (struct amdgpu_device * adev , uint32_t reg , uint32_t v ,
1024- uint32_t acc_flags );
1028+ void amdgpu_mm_wreg_mmio_rlc (struct amdgpu_device * adev ,
1029+ uint32_t reg , uint32_t v );
10251030void amdgpu_mm_wreg8 (struct amdgpu_device * adev , uint32_t offset , uint8_t value );
10261031uint8_t amdgpu_mm_rreg8 (struct amdgpu_device * adev , uint32_t offset );
10271032
10281033u32 amdgpu_io_rreg (struct amdgpu_device * adev , u32 reg );
10291034void amdgpu_io_wreg (struct amdgpu_device * adev , u32 reg , u32 v );
10301035
1036+ u32 amdgpu_device_indirect_rreg (struct amdgpu_device * adev ,
1037+ u32 pcie_index , u32 pcie_data ,
1038+ u32 reg_addr );
1039+ u64 amdgpu_device_indirect_rreg64 (struct amdgpu_device * adev ,
1040+ u32 pcie_index , u32 pcie_data ,
1041+ u32 reg_addr );
1042+ void amdgpu_device_indirect_wreg (struct amdgpu_device * adev ,
1043+ u32 pcie_index , u32 pcie_data ,
1044+ u32 reg_addr , u32 reg_data );
1045+ void amdgpu_device_indirect_wreg64 (struct amdgpu_device * adev ,
1046+ u32 pcie_index , u32 pcie_data ,
1047+ u32 reg_addr , u64 reg_data );
1048+
10311049bool amdgpu_device_asic_has_dc_support (enum amd_asic_type asic_type );
10321050bool amdgpu_device_has_dc_support (struct amdgpu_device * adev );
10331051
@@ -1038,18 +1056,18 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
10381056 */
10391057#define AMDGPU_REGS_NO_KIQ (1<<1)
10401058
1041- #define RREG32_NO_KIQ (reg ) amdgpu_mm_rreg (adev, (reg), AMDGPU_REGS_NO_KIQ)
1042- #define WREG32_NO_KIQ (reg , v ) amdgpu_mm_wreg (adev, (reg), (v), AMDGPU_REGS_NO_KIQ)
1059+ #define RREG32_NO_KIQ (reg ) amdgpu_device_rreg (adev, (reg), AMDGPU_REGS_NO_KIQ)
1060+ #define WREG32_NO_KIQ (reg , v ) amdgpu_device_wreg (adev, (reg), (v), AMDGPU_REGS_NO_KIQ)
10431061
10441062#define RREG32_KIQ (reg ) amdgpu_kiq_rreg(adev, (reg))
10451063#define WREG32_KIQ (reg , v ) amdgpu_kiq_wreg(adev, (reg), (v))
10461064
10471065#define RREG8 (reg ) amdgpu_mm_rreg8(adev, (reg))
10481066#define WREG8 (reg , v ) amdgpu_mm_wreg8(adev, (reg), (v))
10491067
1050- #define RREG32 (reg ) amdgpu_mm_rreg (adev, (reg), 0)
1051- #define DREG32 (reg ) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", amdgpu_mm_rreg (adev, (reg), 0))
1052- #define WREG32 (reg , v ) amdgpu_mm_wreg (adev, (reg), (v), 0)
1068+ #define RREG32 (reg ) amdgpu_device_rreg (adev, (reg), 0)
1069+ #define DREG32 (reg ) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", amdgpu_device_rreg (adev, (reg), 0))
1070+ #define WREG32 (reg , v ) amdgpu_device_wreg (adev, (reg), (v), 0)
10531071#define REG_SET (FIELD , v ) (((v) << FIELD##_SHIFT) & FIELD##_MASK)
10541072#define REG_GET (FIELD , v ) (((v) << FIELD##_SHIFT) & FIELD##_MASK)
10551073#define RREG32_PCIE (reg ) adev->pcie_rreg(adev, (reg))
@@ -1095,7 +1113,7 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
10951113 WREG32_SMC(_Reg, tmp); \
10961114 } while (0)
10971115
1098- #define DREG32_SYS (sqf , adev , reg ) seq_printf((sqf), #reg " : 0x%08X\n", amdgpu_mm_rreg ((adev), (reg), false))
1116+ #define DREG32_SYS (sqf , adev , reg ) seq_printf((sqf), #reg " : 0x%08X\n", amdgpu_device_rreg ((adev), (reg), false))
10991117#define RREG32_IO (reg ) amdgpu_io_rreg(adev, (reg))
11001118#define WREG32_IO (reg , v ) amdgpu_io_wreg(adev, (reg), (v))
11011119
0 commit comments