[radeon-alex:drm-next-4.12-wip 211/266] drivers/gpu/drm/amd/amdgpu/vega10_ih.c:106:82: warning: right shift count >= width of type
kbuild test robot
fengguang.wu at intel.com
Mon Mar 27 23:44:33 UTC 2017
tree: git://people.freedesktop.org/~agd5f/linux.git drm-next-4.12-wip
head: ba92d1fc68425bbff454195c1a7bf07ec9b650d0
commit: 8ddf606557a311b7a4b4b5ad0578e52d2e7d5728 [211/266] drm/amdgpu: add vega10 interrupt handler
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout 8ddf606557a311b7a4b4b5ad0578e52d2e7d5728
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/amd/amdgpu/vega10_ih.c:24:0:
drivers/gpu/drm/amd/amdgpu/vega10_ih.c: In function 'vega10_ih_irq_init':
>> drivers/gpu/drm/amd/amdgpu/vega10_ih.c:106:82: warning: right shift count >= width of type [-Wshift-count-overflow]
WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE_HI), (adev->irq.ih.rb_dma_addr >> 40) &0xff);
^
drivers/gpu/drm/amd/amdgpu/amdgpu.h:1644:53: note: in definition of macro 'WREG32'
#define WREG32(reg, v) amdgpu_mm_wreg(adev, (reg), (v), 0)
^
vim +106 drivers/gpu/drm/amd/amdgpu/vega10_ih.c
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 *
22 */
23 #include "drmP.h"
> 24 #include "amdgpu.h"
25 #include "amdgpu_ih.h"
26 #include "soc15.h"
27
28
29 #include "vega10/soc15ip.h"
30 #include "vega10/OSSSYS/osssys_4_0_offset.h"
31 #include "vega10/OSSSYS/osssys_4_0_sh_mask.h"
32
33 #include "soc15_common.h"
34 #include "vega10_ih.h"
35
36
37
38 static void vega10_ih_set_interrupt_funcs(struct amdgpu_device *adev);
39
40 /**
41 * vega10_ih_enable_interrupts - Enable the interrupt ring buffer
42 *
43 * @adev: amdgpu_device pointer
44 *
45 * Enable the interrupt ring buffer (VEGA10).
46 */
47 static void vega10_ih_enable_interrupts(struct amdgpu_device *adev)
48 {
49 u32 ih_rb_cntl = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL));
50
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);
53 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL), ih_rb_cntl);
54 adev->irq.ih.enabled = true;
55 }
56
57 /**
58 * vega10_ih_disable_interrupts - Disable the interrupt ring buffer
59 *
60 * @adev: amdgpu_device pointer
61 *
62 * Disable the interrupt ring buffer (VEGA10).
63 */
64 static void vega10_ih_disable_interrupts(struct amdgpu_device *adev)
65 {
66 u32 ih_rb_cntl = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL));
67
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);
70 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL), ih_rb_cntl);
71 /* set rptr, wptr to 0 */
72 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_RPTR), 0);
73 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_WPTR), 0);
74 adev->irq.ih.enabled = false;
75 adev->irq.ih.rptr = 0;
76 }
77
78 /**
79 * vega10_ih_irq_init - init and enable the interrupt ring
80 *
81 * @adev: amdgpu_device pointer
82 *
83 * Allocate a ring buffer for the interrupt controller,
84 * enable the RLC, disable interrupts, enable the IH
85 * ring buffer and enable it (VI).
86 * Called at device load and reume.
87 * Returns 0 for success, errors for failure.
88 */
89 static int vega10_ih_irq_init(struct amdgpu_device *adev)
90 {
91 int ret = 0;
92 int rb_bufsz;
93 u32 ih_rb_cntl, ih_doorbell_rtpr;
94 u32 tmp;
95 u64 wptr_off;
96
97 /* disable irqs */
98 vega10_ih_disable_interrupts(adev);
99
100 nbio_v6_1_ih_control(adev);
101
102 ih_rb_cntl = RREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL));
103 /* Ring Buffer base. [39:8] of 40-bit address of the beginning of the ring buffer*/
104 if (adev->irq.ih.use_bus_addr) {
105 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE), adev->irq.ih.rb_dma_addr >> 8);
> 106 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE_HI), (adev->irq.ih.rb_dma_addr >> 40) &0xff);
107 ih_rb_cntl = REG_SET_FIELD(ih_rb_cntl, IH_RB_CNTL, MC_SPACE, 1);
108 } else {
109 WREG32(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_BASE), adev->irq.ih.gpu_addr >> 8);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 59070 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20170328/57728f3a/attachment-0001.gz>
More information about the dri-devel
mailing list