Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: Add pciep method to register block

Move pcie port 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>

authored by

Lijo Lazar and committed by
Alex Deucher
5d82f451 72cc2e30

+42 -16
+2 -4
drivers/gpu/drm/amd/amdgpu/amdgpu.h
··· 906 906 spinlock_t pcie_idx_lock; 907 907 amdgpu_rreg_t pcie_rreg; 908 908 amdgpu_wreg_t pcie_wreg; 909 - amdgpu_rreg_t pciep_rreg; 910 - amdgpu_wreg_t pciep_wreg; 911 909 amdgpu_rreg_ext_t pcie_rreg_ext; 912 910 amdgpu_wreg_ext_t pcie_wreg_ext; 913 911 amdgpu_rreg64_t pcie_rreg64; ··· 1308 1310 #define WREG32_XCC(reg, v, inst) amdgpu_device_xcc_wreg(adev, (reg), (v), 0, inst) 1309 1311 #define RREG32_PCIE(reg) adev->pcie_rreg(adev, (reg)) 1310 1312 #define WREG32_PCIE(reg, v) adev->pcie_wreg(adev, (reg), (v)) 1311 - #define RREG32_PCIE_PORT(reg) adev->pciep_rreg(adev, (reg)) 1312 - #define WREG32_PCIE_PORT(reg, v) adev->pciep_wreg(adev, (reg), (v)) 1313 + #define RREG32_PCIE_PORT(reg) amdgpu_reg_pciep_rd32(adev, (reg)) 1314 + #define WREG32_PCIE_PORT(reg, v) amdgpu_reg_pciep_wr32(adev, (reg), (v)) 1313 1315 #define RREG32_PCIE_EXT(reg) adev->pcie_rreg_ext(adev, (reg)) 1314 1316 #define WREG32_PCIE_EXT(reg, v) adev->pcie_wreg_ext(adev, (reg), (v)) 1315 1317 #define RREG64_PCIE(reg) adev->pcie_rreg64(adev, (reg))
-2
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
··· 3794 3794 adev->pcie_wreg = &amdgpu_invalid_wreg; 3795 3795 adev->pcie_rreg_ext = &amdgpu_invalid_rreg_ext; 3796 3796 adev->pcie_wreg_ext = &amdgpu_invalid_wreg_ext; 3797 - adev->pciep_rreg = &amdgpu_invalid_rreg; 3798 - adev->pciep_wreg = &amdgpu_invalid_wreg; 3799 3797 adev->pcie_rreg64 = &amdgpu_invalid_rreg64; 3800 3798 adev->pcie_wreg64 = &amdgpu_invalid_wreg64; 3801 3799 adev->pcie_rreg64_ext = &amdgpu_invalid_rreg64_ext;
+21
drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.c
··· 58 58 spin_lock_init(&adev->reg.audio_endpt.lock); 59 59 adev->reg.audio_endpt.rreg = NULL; 60 60 adev->reg.audio_endpt.wreg = NULL; 61 + 62 + adev->reg.pcie.port_rreg = NULL; 63 + adev->reg.pcie.port_wreg = NULL; 61 64 } 62 65 63 66 uint32_t amdgpu_reg_smc_rd32(struct amdgpu_device *adev, uint32_t reg) ··· 180 177 return; 181 178 } 182 179 adev->reg.audio_endpt.wreg(adev, block, reg, v); 180 + } 181 + 182 + uint32_t amdgpu_reg_pciep_rd32(struct amdgpu_device *adev, uint32_t reg) 183 + { 184 + if (!adev->reg.pcie.port_rreg) { 185 + dev_err_once(adev->dev, "PCIEP register read not supported\n"); 186 + return 0; 187 + } 188 + return adev->reg.pcie.port_rreg(adev, reg); 189 + } 190 + 191 + void amdgpu_reg_pciep_wr32(struct amdgpu_device *adev, uint32_t reg, uint32_t v) 192 + { 193 + if (!adev->reg.pcie.port_wreg) { 194 + dev_err_once(adev->dev, "PCIEP register write not supported\n"); 195 + return; 196 + } 197 + adev->reg.pcie.port_wreg(adev, reg, v); 183 198 } 184 199 185 200 /*
+9
drivers/gpu/drm/amd/amdgpu/amdgpu_reg_access.h
··· 49 49 amdgpu_block_wreg_t wreg; 50 50 }; 51 51 52 + struct amdgpu_reg_pcie_ind { 53 + amdgpu_rreg_t port_rreg; 54 + amdgpu_wreg_t port_wreg; 55 + }; 56 + 52 57 struct amdgpu_reg_access { 53 58 struct amdgpu_reg_ind smc; 54 59 struct amdgpu_reg_ind uvd_ctx; ··· 61 56 struct amdgpu_reg_ind gc_cac; 62 57 struct amdgpu_reg_ind se_cac; 63 58 struct amdgpu_reg_ind_blk audio_endpt; 59 + struct amdgpu_reg_pcie_ind pcie; 64 60 }; 65 61 66 62 void amdgpu_reg_access_init(struct amdgpu_device *adev); ··· 81 75 uint32_t reg); 82 76 void amdgpu_reg_audio_endpt_wr32(struct amdgpu_device *adev, uint32_t block, 83 77 uint32_t reg, uint32_t v); 78 + uint32_t amdgpu_reg_pciep_rd32(struct amdgpu_device *adev, uint32_t reg); 79 + void amdgpu_reg_pciep_wr32(struct amdgpu_device *adev, uint32_t reg, 80 + uint32_t v); 84 81 85 82 typedef uint32_t (*amdgpu_rreg_ext_t)(struct amdgpu_device *, uint64_t); 86 83 typedef void (*amdgpu_wreg_ext_t)(struct amdgpu_device *, uint64_t, uint32_t);
+2 -2
drivers/gpu/drm/amd/amdgpu/nv.c
··· 639 639 adev->pcie_wreg = &amdgpu_device_indirect_wreg; 640 640 adev->pcie_rreg64 = &amdgpu_device_indirect_rreg64; 641 641 adev->pcie_wreg64 = &amdgpu_device_indirect_wreg64; 642 - adev->pciep_rreg = amdgpu_device_pcie_port_rreg; 643 - adev->pciep_wreg = amdgpu_device_pcie_port_wreg; 642 + adev->reg.pcie.port_rreg = &amdgpu_device_pcie_port_rreg; 643 + adev->reg.pcie.port_wreg = &amdgpu_device_pcie_port_wreg; 644 644 645 645 adev->reg.didt.rreg = &nv_didt_rreg; 646 646 adev->reg.didt.wreg = &nv_didt_wreg;
+2 -2
drivers/gpu/drm/amd/amdgpu/si.c
··· 2041 2041 adev->reg.smc.wreg = si_smc_wreg; 2042 2042 adev->pcie_rreg = &si_pcie_rreg; 2043 2043 adev->pcie_wreg = &si_pcie_wreg; 2044 - adev->pciep_rreg = &si_pciep_rreg; 2045 - adev->pciep_wreg = &si_pciep_wreg; 2044 + adev->reg.pcie.port_rreg = &si_pciep_rreg; 2045 + adev->reg.pcie.port_wreg = &si_pciep_wreg; 2046 2046 adev->reg.uvd_ctx.rreg = &si_uvd_ctx_rreg; 2047 2047 adev->reg.uvd_ctx.wreg = &si_uvd_ctx_wreg; 2048 2048
+2 -2
drivers/gpu/drm/amd/amdgpu/soc21.c
··· 593 593 adev->pcie_wreg = &amdgpu_device_indirect_wreg; 594 594 adev->pcie_rreg64 = &amdgpu_device_indirect_rreg64; 595 595 adev->pcie_wreg64 = &amdgpu_device_indirect_wreg64; 596 - adev->pciep_rreg = amdgpu_device_pcie_port_rreg; 597 - adev->pciep_wreg = amdgpu_device_pcie_port_wreg; 596 + adev->reg.pcie.port_rreg = &amdgpu_device_pcie_port_rreg; 597 + adev->reg.pcie.port_wreg = &amdgpu_device_pcie_port_wreg; 598 598 599 599 adev->reg.didt.rreg = &soc21_didt_rreg; 600 600 adev->reg.didt.wreg = &soc21_didt_wreg;
+2 -2
drivers/gpu/drm/amd/amdgpu/soc24.c
··· 366 366 adev->pcie_wreg = &amdgpu_device_indirect_wreg; 367 367 adev->pcie_rreg64 = &amdgpu_device_indirect_rreg64; 368 368 adev->pcie_wreg64 = &amdgpu_device_indirect_wreg64; 369 - adev->pciep_rreg = amdgpu_device_pcie_port_rreg; 370 - adev->pciep_wreg = amdgpu_device_pcie_port_wreg; 369 + adev->reg.pcie.port_rreg = &amdgpu_device_pcie_port_rreg; 370 + adev->reg.pcie.port_wreg = &amdgpu_device_pcie_port_wreg; 371 371 372 372 adev->asic_funcs = &soc24_asic_funcs; 373 373
+2 -2
drivers/gpu/drm/amd/amdgpu/soc_v1_0.c
··· 256 256 adev->pcie_wreg_ext = &amdgpu_device_indirect_wreg_ext; 257 257 adev->pcie_rreg64 = &amdgpu_device_indirect_rreg64; 258 258 adev->pcie_wreg64 = &amdgpu_device_indirect_wreg64; 259 - adev->pciep_rreg = amdgpu_device_pcie_port_rreg; 260 - adev->pciep_wreg = amdgpu_device_pcie_port_wreg; 259 + adev->reg.pcie.port_rreg = &amdgpu_device_pcie_port_rreg; 260 + adev->reg.pcie.port_wreg = &amdgpu_device_pcie_port_wreg; 261 261 adev->pcie_rreg64_ext = &amdgpu_device_indirect_rreg64_ext; 262 262 adev->pcie_wreg64_ext = &amdgpu_device_indirect_wreg64_ext; 263 263