diff options
author | Hawking Zhang <Hawking.Zhang@amd.com> | 2017-11-02 05:53:37 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-12-04 16:41:43 -0500 |
commit | b2b7e457ba752029c5c9978b0af941313ff706af (patch) | |
tree | 58e4ef490718300ae274e34fac252db9114d50df | |
parent | d6895ad39f3b396be199f5b6fdfb8cde4be7bbf7 (diff) |
drm/amdgpu: switch to use new SOC15 reg read/write macros for soc15 ih
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c index 697325737ba8..9d8bf3b1b52e 100644 --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c | |||
@@ -46,11 +46,11 @@ static void vega10_ih_set_interrupt_funcs(struct amdgpu_device *adev); | |||
46 | */ | 46 | */ |
47 | static void vega10_ih_enable_interrupts(struct amdgpu_device *adev) | 47 | static void vega10_ih_enable_interrupts(struct amdgpu_device *adev) |
48 | { | 48 | { |
49 | u32 ih_rb_cntl = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL)); | 49 | u32 ih_rb_cntl = RREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL); |
50 | 50 | ||
51 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, RB_ENABLE, 1); | 51 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, RB_ENABLE, 1); |
52 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, ENABLE_INTR, 1); | 52 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, ENABLE_INTR, 1); |
53 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL), ih_rb_cntl); | 53 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL, ih_rb_cntl); |
54 | adev->irq.ih.enabled = true; | 54 | adev->irq.ih.enabled = true; |
55 | } | 55 | } |
56 | 56 | ||
@@ -63,14 +63,14 @@ static void vega10_ih_enable_interrupts(struct amdgpu_device *adev) | |||
63 | */ | 63 | */ |
64 | static void vega10_ih_disable_interrupts(struct amdgpu_device *adev) | 64 | static void vega10_ih_disable_interrupts(struct amdgpu_device *adev) |
65 | { | 65 | { |
66 | u32 ih_rb_cntl = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL)); | 66 | u32 ih_rb_cntl = RREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL); |
67 | 67 | ||
68 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, RB_ENABLE, 0); | 68 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, RB_ENABLE, 0); |
69 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, ENABLE_INTR, 0); | 69 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, ENABLE_INTR, 0); |
70 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL), ih_rb_cntl); | 70 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL, ih_rb_cntl); |
71 | /* set rptr, wptr to 0 */ | 71 | /* set rptr, wptr to 0 */ |
72 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_RPTR), 0); | 72 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_RPTR, 0); |
73 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_WPTR), 0); | 73 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_WPTR, 0); |
74 | adev->irq.ih.enabled = false; | 74 | adev->irq.ih.enabled = false; |
75 | adev->irq.ih.rptr = 0; | 75 | adev->irq.ih.rptr = 0; |
76 | } | 76 | } |
@@ -102,15 +102,15 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev) | |||
102 | else | 102 | else |
103 | nbio_v6_1_ih_control(adev); | 103 | nbio_v6_1_ih_control(adev); |
104 | 104 | ||
105 | ih_rb_cntl = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL)); | 105 | ih_rb_cntl = RREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL); |
106 | /* Ring Buffer base. [39:8] of 40-bit address of the beginning of the ring buffer*/ | 106 | /* Ring Buffer base. [39:8] of 40-bit address of the beginning of the ring buffer*/ |
107 | if (adev->irq.ih.use_bus_addr) { | 107 | if (adev->irq.ih.use_bus_addr) { |
108 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE), adev->irq.ih.rb_dma_addr >> 8); | 108 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_BASE, adev->irq.ih.rb_dma_addr >> 8); |
109 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE_HI), ((u64)adev->irq.ih.rb_dma_addr >> 40) & 0xff); | 109 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_BASE_HI, ((u64)adev->irq.ih.rb_dma_addr >> 40) & 0xff); |
110 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, MC_SPACE, 1); | 110 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, MC_SPACE, 1); |
111 | } else { | 111 | } else { |
112 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE), adev->irq.ih.gpu_addr >> 8); | 112 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_BASE, adev->irq.ih.gpu_addr >> 8); |
113 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE_HI), (adev->irq.ih.gpu_addr >> 40) & 0xff); | 113 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_BASE_HI, (adev->irq.ih.gpu_addr >> 40) & 0xff); |
114 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, MC_SPACE, 4); | 114 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, MC_SPACE, 4); |
115 | } | 115 | } |
116 | rb_bufsz = order_base_2(adev->irq.ih.ring_size / 4); | 116 | rb_bufsz = order_base_2(adev->irq.ih.ring_size / 4); |
@@ -126,21 +126,21 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev) | |||
126 | if (adev->irq.msi_enabled) | 126 | if (adev->irq.msi_enabled) |
127 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, RPTR_REARM, 1); | 127 | ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, RPTR_REARM, 1); |
128 | 128 | ||
129 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL), ih_rb_cntl); | 129 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL, ih_rb_cntl); |
130 | 130 | ||
131 | /* set the writeback address whether it's enabled or not */ | 131 | /* set the writeback address whether it's enabled or not */ |
132 | if (adev->irq.ih.use_bus_addr) | 132 | if (adev->irq.ih.use_bus_addr) |
133 | wptr_off = adev->irq.ih.rb_dma_addr + (adev->irq.ih.wptr_offs * 4); | 133 | wptr_off = adev->irq.ih.rb_dma_addr + (adev->irq.ih.wptr_offs * 4); |
134 | else | 134 | else |
135 | wptr_off = adev->wb.gpu_addr + (adev->irq.ih.wptr_offs * 4); | 135 | wptr_off = adev->wb.gpu_addr + (adev->irq.ih.wptr_offs * 4); |
136 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_WPTR_ADDR_LO), lower_32_bits(wptr_off)); | 136 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_WPTR_ADDR_LO, lower_32_bits(wptr_off)); |
137 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_WPTR_ADDR_HI), upper_32_bits(wptr_off) & 0xFF); | 137 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_WPTR_ADDR_HI, upper_32_bits(wptr_off) & 0xFF); |
138 | 138 | ||
139 | /* set rptr, wptr to 0 */ | 139 | /* set rptr, wptr to 0 */ |
140 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_RPTR), 0); | 140 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_RPTR, 0); |
141 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_WPTR), 0); | 141 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_WPTR, 0); |
142 | 142 | ||
143 | ih_doorbell_rtpr = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_DOORBELL_RPTR)); | 143 | ih_doorbell_rtpr = RREG32_SOC15(OSSSYS, 0, mmIH_DOORBELL_RPTR); |
144 | if (adev->irq.ih.use_doorbell) { | 144 | if (adev->irq.ih.use_doorbell) { |
145 | ih_doorbell_rtpr = REG_SET_FIELD(ih_doorbell_rtpr, IH_DOORBELL_RPTR, | 145 | ih_doorbell_rtpr = REG_SET_FIELD(ih_doorbell_rtpr, IH_DOORBELL_RPTR, |
146 | OFFSET, adev->irq.ih.doorbell_index); | 146 | OFFSET, adev->irq.ih.doorbell_index); |
@@ -150,20 +150,20 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev) | |||
150 | ih_doorbell_rtpr = REG_SET_FIELD(ih_doorbell_rtpr, IH_DOORBELL_RPTR, | 150 | ih_doorbell_rtpr = REG_SET_FIELD(ih_doorbell_rtpr, IH_DOORBELL_RPTR, |
151 | ENABLE, 0); | 151 | ENABLE, 0); |
152 | } | 152 | } |
153 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_DOORBELL_RPTR), ih_doorbell_rtpr); | 153 | WREG32_SOC15(OSSSYS, 0, mmIH_DOORBELL_RPTR, ih_doorbell_rtpr); |
154 | if (adev->flags & AMD_IS_APU) | 154 | if (adev->flags & AMD_IS_APU) |
155 | nbio_v7_0_ih_doorbell_range(adev, adev->irq.ih.use_doorbell, adev->irq.ih.doorbell_index); | 155 | nbio_v7_0_ih_doorbell_range(adev, adev->irq.ih.use_doorbell, adev->irq.ih.doorbell_index); |
156 | else | 156 | else |
157 | nbio_v6_1_ih_doorbell_range(adev, adev->irq.ih.use_doorbell, adev->irq.ih.doorbell_index); | 157 | nbio_v6_1_ih_doorbell_range(adev, adev->irq.ih.use_doorbell, adev->irq.ih.doorbell_index); |
158 | 158 | ||
159 | tmp = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_STORM_CLIENT_LIST_CNTL)); | 159 | tmp = RREG32_SOC15(OSSSYS, 0, mmIH_STORM_CLIENT_LIST_CNTL); |
160 | tmp = REG_SET_FIELD(tmp, IH_STORM_CLIENT_LIST_CNTL, | 160 | tmp = REG_SET_FIELD(tmp, IH_STORM_CLIENT_LIST_CNTL, |
161 | CLIENT18_IS_STORM_CLIENT, 1); | 161 | CLIENT18_IS_STORM_CLIENT, 1); |
162 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_STORM_CLIENT_LIST_CNTL), tmp); | 162 | WREG32_SOC15(OSSSYS, 0, mmIH_STORM_CLIENT_LIST_CNTL, tmp); |
163 | 163 | ||
164 | tmp = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_INT_FLOOD_CNTL)); | 164 | tmp = RREG32_SOC15(OSSSYS, 0, mmIH_INT_FLOOD_CNTL); |
165 | tmp = REG_SET_FIELD(tmp, IH_INT_FLOOD_CNTL, FLOOD_CNTL_ENABLE, 1); | 165 | tmp = REG_SET_FIELD(tmp, IH_INT_FLOOD_CNTL, FLOOD_CNTL_ENABLE, 1); |
166 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_INT_FLOOD_CNTL), tmp); | 166 | WREG32_SOC15(OSSSYS, 0, mmIH_INT_FLOOD_CNTL, tmp); |
167 | 167 | ||
168 | pci_set_master(adev->pdev); | 168 | pci_set_master(adev->pdev); |
169 | 169 | ||
@@ -367,7 +367,7 @@ static void vega10_ih_set_rptr(struct amdgpu_device *adev) | |||
367 | adev->wb.wb[adev->irq.ih.rptr_offs] = adev->irq.ih.rptr; | 367 | adev->wb.wb[adev->irq.ih.rptr_offs] = adev->irq.ih.rptr; |
368 | WDOORBELL32(adev->irq.ih.doorbell_index, adev->irq.ih.rptr); | 368 | WDOORBELL32(adev->irq.ih.doorbell_index, adev->irq.ih.rptr); |
369 | } else { | 369 | } else { |
370 | WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_RPTR), adev->irq.ih.rptr); | 370 | WREG32_SOC15(OSSSYS, 0, mmIH_RB_RPTR, adev->irq.ih.rptr); |
371 | } | 371 | } |
372 | } | 372 | } |
373 | 373 | ||