From: kernel test robot <lkp@intel.com>
To: Cai Huoqing <cai.huoqing@linux.dev>
Cc: kbuild-all@lists.01.org,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@linux.ie>,
linux-kernel@vger.kernel.org,
"Christian König" <christian.koenig@amd.com>,
linaro-mm-sig@lists.linaro.org, dri-devel@lists.freedesktop.org,
"Sumit Semwal" <sumit.semwal@linaro.org>,
linux-media@vger.kernel.org
Subject: Re: [PATCH 2/2] drm/nvdla: Add driver support for NVDLA
Date: Wed, 20 Apr 2022 15:53:13 +0800 [thread overview]
Message-ID: <202204201512.pp20MXT5-lkp@intel.com> (raw)
In-Reply-To: <20220419135908.39606-3-cai.huoqing@linux.dev>
Hi Cai,
I love your patch! Yet something to improve:
[auto build test ERROR on drm/drm-next]
[also build test ERROR on drm-intel/for-linux-next drm-tip/drm-tip linus/master v5.18-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/intel-lab-lkp/linux/commits/Cai-Huoqing/drm-nvdla-Add-driver-support-for-NVDLA/20220419-220255
base: git://anongit.freedesktop.org/drm/drm drm-next
config: h8300-randconfig-r014-20220420 (https://download.01.org/0day-ci/archive/20220420/202204201512.pp20MXT5-lkp@intel.com/config)
compiler: h8300-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/7539e5487eb7d0c6f13c03bba596e51a2238106d
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Cai-Huoqing/drm-nvdla-Add-driver-support-for-NVDLA/20220419-220255
git checkout 7539e5487eb7d0c6f13c03bba596e51a2238106d
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross W=1 O=build_dir ARCH=h8300 SHELL=/bin/bash drivers/gpu/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
>> make[5]: *** No rule to make target 'drivers/gpu/drm/nvdla/nvdla_engine_data.o', needed by 'drivers/gpu/drm/nvdla/built-in.a'.
>> make[5]: *** No rule to make target 'drivers/gpu/drm/nvdla/nvdla_engine_debug.o', needed by 'drivers/gpu/drm/nvdla/built-in.a'.
make[5]: Target '__build' not remade because of errors.
--
>> drivers/gpu/drm/nvdla/nvdla_drm.c:45:9: warning: no previous prototype for 'dla_get_time_us' [-Wmissing-prototypes]
45 | int64_t dla_get_time_us(void)
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_drm.c: In function 'nvdla_engine_isr':
>> drivers/gpu/drm/nvdla/nvdla_drm.c:75:18: warning: variable 'mask' set but not used [-Wunused-but-set-variable]
75 | uint32_t mask;
| ^~~~
--
drivers/gpu/drm/nvdla/nvdla_gem.c: In function 'nvdla_fill_task_desc':
>> drivers/gpu/drm/nvdla/nvdla_gem.c:39:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
39 | (void __user *)local_task->address_list,
| ^
--
drivers/gpu/drm/nvdla/nvdla_scheduler.c: In function 'dla_op_completion':
>> drivers/gpu/drm/nvdla/nvdla_scheduler.c:513:26: warning: variable 'task' set but not used [-Wunused-but-set-variable]
513 | struct dla_task *task;
| ^~~~
--
>> drivers/gpu/drm/nvdla/nvdla_scheduler.c:363: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Dequeue next operation of same type from list of operations
drivers/gpu/drm/nvdla/nvdla_scheduler.c:505: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Handle operation completion notification
drivers/gpu/drm/nvdla/nvdla_scheduler.c:610: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Read network configuration from DRAM, network descriptor address
drivers/gpu/drm/nvdla/nvdla_scheduler.c:920: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Execute task selected by task scheduler
--
drivers/gpu/drm/nvdla/nvdla_bdma.c: In function 'dla_bdma_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_bdma.c:157:39: warning: variable 'bdma_surface' set but not used [-Wunused-but-set-variable]
157 | struct dla_bdma_surface_desc *bdma_surface;
| ^~~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_bdma.c:156:34: warning: variable 'bdma_op' set but not used [-Wunused-but-set-variable]
156 | struct dla_bdma_op_desc *bdma_op;
| ^~~~~~~
--
drivers/gpu/drm/nvdla/nvdla_conv.c: In function 'dla_conv_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_conv.c:666:39: warning: variable 'conv_surface' set but not used [-Wunused-but-set-variable]
666 | struct dla_conv_surface_desc *conv_surface;
| ^~~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_conv.c:665:34: warning: variable 'conv_op' set but not used [-Wunused-but-set-variable]
665 | struct dla_conv_op_desc *conv_op;
| ^~~~~~~
--
>> drivers/gpu/drm/nvdla/nvdla_engine.c:67: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Get DMA data cube address
drivers/gpu/drm/nvdla/nvdla_engine.c:88: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Read input buffer address
--
>> drivers/gpu/drm/nvdla/nvdla_bdma.c:56: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Program BDMA slot for transfer
--
drivers/gpu/drm/nvdla/nvdla_sdp.c: In function 'processor_sdp_program':
>> drivers/gpu/drm/nvdla/nvdla_sdp.c:190:18: warning: variable 'atom_size' set but not used [-Wunused-but-set-variable]
190 | uint32_t atom_size;
| ^~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c: In function 'dla_sdp_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_sdp.c:708:38: warning: variable 'sdp_surface' set but not used [-Wunused-but-set-variable]
708 | struct dla_sdp_surface_desc *sdp_surface;
| ^~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_sdp.c:707:33: warning: variable 'sdp_op' set but not used [-Wunused-but-set-variable]
707 | struct dla_sdp_op_desc *sdp_op;
| ^~~~~~
At top level:
drivers/gpu/drm/nvdla/nvdla_sdp.c:118:22: warning: 'map_perf_nan_inf' defined but not used [-Wunused-const-variable=]
118 | static const uint8_t map_perf_nan_inf[] = {
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c:113:22: warning: 'map_perf_sat' defined but not used [-Wunused-const-variable=]
113 | static const uint8_t map_perf_sat[] = {
| ^~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c:108:22: warning: 'map_perf_lut' defined but not used [-Wunused-const-variable=]
108 | static const uint8_t map_perf_lut[] = {
| ^~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c:103:22: warning: 'map_perf_dma' defined but not used [-Wunused-const-variable=]
103 | static const uint8_t map_perf_dma[] = {
| ^~~~~~~~~~~~
--
drivers/gpu/drm/nvdla/nvdla_cdp.c: In function 'dla_cdp_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_cdp.c:280:38: warning: variable 'cdp_surface' set but not used [-Wunused-but-set-variable]
280 | struct dla_cdp_surface_desc *cdp_surface;
| ^~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_cdp.c:279:33: warning: variable 'cdp_op' set but not used [-Wunused-but-set-variable]
279 | struct dla_cdp_op_desc *cdp_op;
| ^~~~~~
At top level:
drivers/gpu/drm/nvdla/nvdla_cdp.c:28:22: warning: 'map_perf_lut' defined but not used [-Wunused-const-variable=]
28 | static const uint8_t map_perf_lut[] = {
| ^~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_cdp.c:23:22: warning: 'map_perf_dma' defined but not used [-Wunused-const-variable=]
23 | static const uint8_t map_perf_dma[] = {
| ^~~~~~~~~~~~
..
vim +/dla_get_time_us +45 drivers/gpu/drm/nvdla/nvdla_drm.c
44
> 45 int64_t dla_get_time_us(void)
46 {
47 return ktime_get_ns() / NSEC_PER_USEC;
48 }
49
50 void dla_reg_write(void *driver_context, uint32_t addr, uint32_t reg)
51 {
52 struct nvdla_device *nvdla_dev =
53 (struct nvdla_device *)driver_context;
54
55 if (!nvdla_dev)
56 return;
57
58 writel(reg, nvdla_dev->base + addr);
59 }
60
61 uint32_t dla_reg_read(void *driver_context, uint32_t addr)
62 {
63 struct nvdla_device *nvdla_dev =
64 (struct nvdla_device *)driver_context;
65
66 if (!nvdla_dev)
67 return 0;
68
69 return readl(nvdla_dev->base + addr);
70 }
71
72 static irqreturn_t nvdla_engine_isr(int32_t irq, void *data)
73 {
74 unsigned long flags;
> 75 uint32_t mask;
76 uint32_t reg;
77 struct dla_processor *processor = NULL;
78 struct dla_processor_group *group;
79 struct dla_engine *engine;
80 struct nvdla_device *nvdla_dev = (struct nvdla_device *)data;
81
82 if (!nvdla_dev)
83 return IRQ_NONE;
84
85 engine = nvdla_dev->engine_context;
86 spin_lock_irqsave(&nvdla_dev->nvdla_lock, flags);
87
88 mask = glb_reg_read(engine, S_INTR_MASK);
89 reg = glb_reg_read(engine, S_INTR_STATUS);
90
91 if (reg & MASK(GLB_S_INTR_STATUS_0, CACC_DONE_STATUS0)) {
92 processor = &engine->processors[DLA_OP_CONV];
93 group = &processor->groups[0];
94 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
95 }
96 if (reg & MASK(GLB_S_INTR_STATUS_0, CACC_DONE_STATUS1)) {
97 processor = &engine->processors[DLA_OP_CONV];
98 group = &processor->groups[1];
99 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
100 }
101 if (reg & MASK(GLB_S_INTR_STATUS_0, SDP_DONE_STATUS0)) {
102 processor = &engine->processors[DLA_OP_SDP];
103 group = &processor->groups[0];
104 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
105 }
106 if (reg & MASK(GLB_S_INTR_STATUS_0, SDP_DONE_STATUS1)) {
107 processor = &engine->processors[DLA_OP_SDP];
108 group = &processor->groups[1];
109 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
110 }
111 if (reg & MASK(GLB_S_INTR_STATUS_0, CDP_DONE_STATUS0)) {
112 processor = &engine->processors[DLA_OP_CDP];
113 group = &processor->groups[0];
114 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
115 }
116 if (reg & MASK(GLB_S_INTR_STATUS_0, CDP_DONE_STATUS1)) {
117 processor = &engine->processors[DLA_OP_CDP];
118 group = &processor->groups[1];
119 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
120 }
121 if (reg & MASK(GLB_S_INTR_STATUS_0, RUBIK_DONE_STATUS0)) {
122 processor = &engine->processors[DLA_OP_RUBIK];
123 group = &processor->groups[0];
124 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
125 }
126 if (reg & MASK(GLB_S_INTR_STATUS_0, RUBIK_DONE_STATUS1)) {
127 processor = &engine->processors[DLA_OP_RUBIK];
128 group = &processor->groups[1];
129 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
130 }
131 if (reg & MASK(GLB_S_INTR_STATUS_0, PDP_DONE_STATUS0)) {
132 processor = &engine->processors[DLA_OP_PDP];
133 group = &processor->groups[0];
134 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
135 }
136 if (reg & MASK(GLB_S_INTR_STATUS_0, PDP_DONE_STATUS1)) {
137 processor = &engine->processors[DLA_OP_PDP];
138 group = &processor->groups[1];
139 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
140 }
141 if (reg & MASK(GLB_S_INTR_STATUS_0, BDMA_DONE_STATUS0)) {
142 processor = &engine->processors[DLA_OP_BDMA];
143 group = &processor->groups[0];
144 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
145 }
146 if (reg & MASK(GLB_S_INTR_STATUS_0, BDMA_DONE_STATUS1)) {
147 processor = &engine->processors[DLA_OP_BDMA];
148 group = &processor->groups[1];
149 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
150 }
151 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_DAT_DONE_STATUS0)) {
152 processor = &engine->processors[DLA_OP_CONV];
153 group = &processor->groups[0];
154 group->events |= (1 << DLA_EVENT_CDMA_DT_DONE);
155 }
156 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_DAT_DONE_STATUS1)) {
157 processor = &engine->processors[DLA_OP_CONV];
158 group = &processor->groups[1];
159 group->events |= (1 << DLA_EVENT_CDMA_DT_DONE);
160 }
161 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_WT_DONE_STATUS0)) {
162 processor = &engine->processors[DLA_OP_CONV];
163 group = &processor->groups[0];
164 group->events |= (1 << DLA_EVENT_CDMA_WT_DONE);
165 }
166 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_WT_DONE_STATUS1)) {
167 processor = &engine->processors[DLA_OP_CONV];
168 group = &processor->groups[1];
169 group->events |= (1 << DLA_EVENT_CDMA_WT_DONE);
170 }
171
172 glb_reg_write(engine, S_INTR_STATUS, reg);
173 mask = glb_reg_read(engine, S_INTR_MASK);
174 reg = glb_reg_read(engine, S_INTR_STATUS);
175
176 complete(&nvdla_dev->event_notifier);
177 spin_unlock_irqrestore(&nvdla_dev->nvdla_lock, flags);
178
179 return IRQ_HANDLED;
180 }
181
--
0-DAY CI Kernel Test Service
https://01.org/lkp
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Cai Huoqing <cai.huoqing@linux.dev>
Cc: kbuild-all@lists.01.org,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Christian König" <christian.koenig@amd.com>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org
Subject: Re: [PATCH 2/2] drm/nvdla: Add driver support for NVDLA
Date: Wed, 20 Apr 2022 15:53:13 +0800 [thread overview]
Message-ID: <202204201512.pp20MXT5-lkp@intel.com> (raw)
In-Reply-To: <20220419135908.39606-3-cai.huoqing@linux.dev>
Hi Cai,
I love your patch! Yet something to improve:
[auto build test ERROR on drm/drm-next]
[also build test ERROR on drm-intel/for-linux-next drm-tip/drm-tip linus/master v5.18-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/intel-lab-lkp/linux/commits/Cai-Huoqing/drm-nvdla-Add-driver-support-for-NVDLA/20220419-220255
base: git://anongit.freedesktop.org/drm/drm drm-next
config: h8300-randconfig-r014-20220420 (https://download.01.org/0day-ci/archive/20220420/202204201512.pp20MXT5-lkp@intel.com/config)
compiler: h8300-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/7539e5487eb7d0c6f13c03bba596e51a2238106d
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Cai-Huoqing/drm-nvdla-Add-driver-support-for-NVDLA/20220419-220255
git checkout 7539e5487eb7d0c6f13c03bba596e51a2238106d
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross W=1 O=build_dir ARCH=h8300 SHELL=/bin/bash drivers/gpu/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
>> make[5]: *** No rule to make target 'drivers/gpu/drm/nvdla/nvdla_engine_data.o', needed by 'drivers/gpu/drm/nvdla/built-in.a'.
>> make[5]: *** No rule to make target 'drivers/gpu/drm/nvdla/nvdla_engine_debug.o', needed by 'drivers/gpu/drm/nvdla/built-in.a'.
make[5]: Target '__build' not remade because of errors.
--
>> drivers/gpu/drm/nvdla/nvdla_drm.c:45:9: warning: no previous prototype for 'dla_get_time_us' [-Wmissing-prototypes]
45 | int64_t dla_get_time_us(void)
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_drm.c: In function 'nvdla_engine_isr':
>> drivers/gpu/drm/nvdla/nvdla_drm.c:75:18: warning: variable 'mask' set but not used [-Wunused-but-set-variable]
75 | uint32_t mask;
| ^~~~
--
drivers/gpu/drm/nvdla/nvdla_gem.c: In function 'nvdla_fill_task_desc':
>> drivers/gpu/drm/nvdla/nvdla_gem.c:39:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
39 | (void __user *)local_task->address_list,
| ^
--
drivers/gpu/drm/nvdla/nvdla_scheduler.c: In function 'dla_op_completion':
>> drivers/gpu/drm/nvdla/nvdla_scheduler.c:513:26: warning: variable 'task' set but not used [-Wunused-but-set-variable]
513 | struct dla_task *task;
| ^~~~
--
>> drivers/gpu/drm/nvdla/nvdla_scheduler.c:363: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Dequeue next operation of same type from list of operations
drivers/gpu/drm/nvdla/nvdla_scheduler.c:505: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Handle operation completion notification
drivers/gpu/drm/nvdla/nvdla_scheduler.c:610: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Read network configuration from DRAM, network descriptor address
drivers/gpu/drm/nvdla/nvdla_scheduler.c:920: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Execute task selected by task scheduler
--
drivers/gpu/drm/nvdla/nvdla_bdma.c: In function 'dla_bdma_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_bdma.c:157:39: warning: variable 'bdma_surface' set but not used [-Wunused-but-set-variable]
157 | struct dla_bdma_surface_desc *bdma_surface;
| ^~~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_bdma.c:156:34: warning: variable 'bdma_op' set but not used [-Wunused-but-set-variable]
156 | struct dla_bdma_op_desc *bdma_op;
| ^~~~~~~
--
drivers/gpu/drm/nvdla/nvdla_conv.c: In function 'dla_conv_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_conv.c:666:39: warning: variable 'conv_surface' set but not used [-Wunused-but-set-variable]
666 | struct dla_conv_surface_desc *conv_surface;
| ^~~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_conv.c:665:34: warning: variable 'conv_op' set but not used [-Wunused-but-set-variable]
665 | struct dla_conv_op_desc *conv_op;
| ^~~~~~~
--
>> drivers/gpu/drm/nvdla/nvdla_engine.c:67: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Get DMA data cube address
drivers/gpu/drm/nvdla/nvdla_engine.c:88: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Read input buffer address
--
>> drivers/gpu/drm/nvdla/nvdla_bdma.c:56: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Program BDMA slot for transfer
--
drivers/gpu/drm/nvdla/nvdla_sdp.c: In function 'processor_sdp_program':
>> drivers/gpu/drm/nvdla/nvdla_sdp.c:190:18: warning: variable 'atom_size' set but not used [-Wunused-but-set-variable]
190 | uint32_t atom_size;
| ^~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c: In function 'dla_sdp_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_sdp.c:708:38: warning: variable 'sdp_surface' set but not used [-Wunused-but-set-variable]
708 | struct dla_sdp_surface_desc *sdp_surface;
| ^~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_sdp.c:707:33: warning: variable 'sdp_op' set but not used [-Wunused-but-set-variable]
707 | struct dla_sdp_op_desc *sdp_op;
| ^~~~~~
At top level:
drivers/gpu/drm/nvdla/nvdla_sdp.c:118:22: warning: 'map_perf_nan_inf' defined but not used [-Wunused-const-variable=]
118 | static const uint8_t map_perf_nan_inf[] = {
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c:113:22: warning: 'map_perf_sat' defined but not used [-Wunused-const-variable=]
113 | static const uint8_t map_perf_sat[] = {
| ^~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c:108:22: warning: 'map_perf_lut' defined but not used [-Wunused-const-variable=]
108 | static const uint8_t map_perf_lut[] = {
| ^~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_sdp.c:103:22: warning: 'map_perf_dma' defined but not used [-Wunused-const-variable=]
103 | static const uint8_t map_perf_dma[] = {
| ^~~~~~~~~~~~
--
drivers/gpu/drm/nvdla/nvdla_cdp.c: In function 'dla_cdp_dump_config':
>> drivers/gpu/drm/nvdla/nvdla_cdp.c:280:38: warning: variable 'cdp_surface' set but not used [-Wunused-but-set-variable]
280 | struct dla_cdp_surface_desc *cdp_surface;
| ^~~~~~~~~~~
>> drivers/gpu/drm/nvdla/nvdla_cdp.c:279:33: warning: variable 'cdp_op' set but not used [-Wunused-but-set-variable]
279 | struct dla_cdp_op_desc *cdp_op;
| ^~~~~~
At top level:
drivers/gpu/drm/nvdla/nvdla_cdp.c:28:22: warning: 'map_perf_lut' defined but not used [-Wunused-const-variable=]
28 | static const uint8_t map_perf_lut[] = {
| ^~~~~~~~~~~~
drivers/gpu/drm/nvdla/nvdla_cdp.c:23:22: warning: 'map_perf_dma' defined but not used [-Wunused-const-variable=]
23 | static const uint8_t map_perf_dma[] = {
| ^~~~~~~~~~~~
..
vim +/dla_get_time_us +45 drivers/gpu/drm/nvdla/nvdla_drm.c
44
> 45 int64_t dla_get_time_us(void)
46 {
47 return ktime_get_ns() / NSEC_PER_USEC;
48 }
49
50 void dla_reg_write(void *driver_context, uint32_t addr, uint32_t reg)
51 {
52 struct nvdla_device *nvdla_dev =
53 (struct nvdla_device *)driver_context;
54
55 if (!nvdla_dev)
56 return;
57
58 writel(reg, nvdla_dev->base + addr);
59 }
60
61 uint32_t dla_reg_read(void *driver_context, uint32_t addr)
62 {
63 struct nvdla_device *nvdla_dev =
64 (struct nvdla_device *)driver_context;
65
66 if (!nvdla_dev)
67 return 0;
68
69 return readl(nvdla_dev->base + addr);
70 }
71
72 static irqreturn_t nvdla_engine_isr(int32_t irq, void *data)
73 {
74 unsigned long flags;
> 75 uint32_t mask;
76 uint32_t reg;
77 struct dla_processor *processor = NULL;
78 struct dla_processor_group *group;
79 struct dla_engine *engine;
80 struct nvdla_device *nvdla_dev = (struct nvdla_device *)data;
81
82 if (!nvdla_dev)
83 return IRQ_NONE;
84
85 engine = nvdla_dev->engine_context;
86 spin_lock_irqsave(&nvdla_dev->nvdla_lock, flags);
87
88 mask = glb_reg_read(engine, S_INTR_MASK);
89 reg = glb_reg_read(engine, S_INTR_STATUS);
90
91 if (reg & MASK(GLB_S_INTR_STATUS_0, CACC_DONE_STATUS0)) {
92 processor = &engine->processors[DLA_OP_CONV];
93 group = &processor->groups[0];
94 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
95 }
96 if (reg & MASK(GLB_S_INTR_STATUS_0, CACC_DONE_STATUS1)) {
97 processor = &engine->processors[DLA_OP_CONV];
98 group = &processor->groups[1];
99 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
100 }
101 if (reg & MASK(GLB_S_INTR_STATUS_0, SDP_DONE_STATUS0)) {
102 processor = &engine->processors[DLA_OP_SDP];
103 group = &processor->groups[0];
104 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
105 }
106 if (reg & MASK(GLB_S_INTR_STATUS_0, SDP_DONE_STATUS1)) {
107 processor = &engine->processors[DLA_OP_SDP];
108 group = &processor->groups[1];
109 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
110 }
111 if (reg & MASK(GLB_S_INTR_STATUS_0, CDP_DONE_STATUS0)) {
112 processor = &engine->processors[DLA_OP_CDP];
113 group = &processor->groups[0];
114 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
115 }
116 if (reg & MASK(GLB_S_INTR_STATUS_0, CDP_DONE_STATUS1)) {
117 processor = &engine->processors[DLA_OP_CDP];
118 group = &processor->groups[1];
119 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
120 }
121 if (reg & MASK(GLB_S_INTR_STATUS_0, RUBIK_DONE_STATUS0)) {
122 processor = &engine->processors[DLA_OP_RUBIK];
123 group = &processor->groups[0];
124 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
125 }
126 if (reg & MASK(GLB_S_INTR_STATUS_0, RUBIK_DONE_STATUS1)) {
127 processor = &engine->processors[DLA_OP_RUBIK];
128 group = &processor->groups[1];
129 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
130 }
131 if (reg & MASK(GLB_S_INTR_STATUS_0, PDP_DONE_STATUS0)) {
132 processor = &engine->processors[DLA_OP_PDP];
133 group = &processor->groups[0];
134 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
135 }
136 if (reg & MASK(GLB_S_INTR_STATUS_0, PDP_DONE_STATUS1)) {
137 processor = &engine->processors[DLA_OP_PDP];
138 group = &processor->groups[1];
139 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
140 }
141 if (reg & MASK(GLB_S_INTR_STATUS_0, BDMA_DONE_STATUS0)) {
142 processor = &engine->processors[DLA_OP_BDMA];
143 group = &processor->groups[0];
144 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
145 }
146 if (reg & MASK(GLB_S_INTR_STATUS_0, BDMA_DONE_STATUS1)) {
147 processor = &engine->processors[DLA_OP_BDMA];
148 group = &processor->groups[1];
149 group->events |= (1 << DLA_EVENT_OP_COMPLETED);
150 }
151 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_DAT_DONE_STATUS0)) {
152 processor = &engine->processors[DLA_OP_CONV];
153 group = &processor->groups[0];
154 group->events |= (1 << DLA_EVENT_CDMA_DT_DONE);
155 }
156 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_DAT_DONE_STATUS1)) {
157 processor = &engine->processors[DLA_OP_CONV];
158 group = &processor->groups[1];
159 group->events |= (1 << DLA_EVENT_CDMA_DT_DONE);
160 }
161 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_WT_DONE_STATUS0)) {
162 processor = &engine->processors[DLA_OP_CONV];
163 group = &processor->groups[0];
164 group->events |= (1 << DLA_EVENT_CDMA_WT_DONE);
165 }
166 if (reg & MASK(GLB_S_INTR_STATUS_0, CDMA_WT_DONE_STATUS1)) {
167 processor = &engine->processors[DLA_OP_CONV];
168 group = &processor->groups[1];
169 group->events |= (1 << DLA_EVENT_CDMA_WT_DONE);
170 }
171
172 glb_reg_write(engine, S_INTR_STATUS, reg);
173 mask = glb_reg_read(engine, S_INTR_MASK);
174 reg = glb_reg_read(engine, S_INTR_STATUS);
175
176 complete(&nvdla_dev->event_notifier);
177 spin_unlock_irqrestore(&nvdla_dev->nvdla_lock, flags);
178
179 return IRQ_HANDLED;
180 }
181
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-04-20 7:54 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-19 13:58 [PATCH 0/2] drm/nvdla: Add driver support for NVDLA Cai Huoqing
2022-04-19 13:58 ` Cai Huoqing
2022-04-19 13:58 ` [PATCH 1/2] MAINTAINERS: Add the driver info of the NVDLA Cai Huoqing
2022-04-19 13:58 ` Cai Huoqing
2022-04-19 13:59 ` [PATCH 2/2] drm/nvdla: Add driver support for NVDLA Cai Huoqing
2022-04-19 13:59 ` Cai Huoqing
2022-04-19 14:07 ` Christian König
2022-04-19 14:07 ` Christian König
2022-04-19 14:35 ` Cai Huoqing
2022-04-19 14:35 ` Cai Huoqing
2022-04-20 7:53 ` kernel test robot [this message]
2022-04-20 7:53 ` kernel test robot
2022-04-20 9:57 ` kernel test robot
2022-04-20 9:57 ` kernel test robot
2022-04-20 10:26 ` Thomas Zimmermann
2022-04-20 10:26 ` Thomas Zimmermann
2022-04-21 8:09 ` Cai Huoqing
2022-04-21 8:30 ` Thomas Zimmermann
2022-04-21 8:30 ` Thomas Zimmermann
2022-04-21 8:34 ` Christian König
2022-04-21 8:34 ` Christian König
2022-04-21 8:57 ` Thomas Zimmermann
2022-04-21 8:57 ` Thomas Zimmermann
2022-04-21 9:07 ` Thomas Zimmermann
2022-04-21 9:07 ` Thomas Zimmermann
2022-04-21 9:13 ` Thomas Zimmermann
2022-04-21 9:13 ` Thomas Zimmermann
2022-04-21 9:23 ` Christian König
2022-04-21 9:23 ` Christian König
2022-04-21 22:01 ` Kari Argillander
2022-04-21 22:01 ` Kari Argillander
2022-04-25 14:28 ` Cai Huoqing
2022-04-25 14:28 ` Cai Huoqing
2022-04-27 15:23 ` Daniel Vetter
2022-04-27 15:23 ` Daniel Vetter
2022-04-26 5:20 ` [PATCH 0/2] " Peter Robinson
2022-04-26 5:20 ` Peter Robinson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202204201512.pp20MXT5-lkp@intel.com \
--to=lkp@intel.com \
--cc=airlied@linux.ie \
--cc=cai.huoqing@linux.dev \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kbuild-all@lists.01.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=sumit.semwal@linaro.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.