[xlnx:xlnx_rebase_v5.4 1171/1757] drivers/irqchip/irq-xilinx-intc.c:295:3: error: implicit declaration of function 'set_handle_irq'; did you mean 'generic_handle_irq'?
kernel test robot
lkp at intel.com
Thu May 13 03:14:10 PDT 2021
Hi Michal,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: f09edce8c39b74223461bf2175649535ebe8b213
commit: e310970affe01f4432b5a022438bae976c7f324f [1171/1757] irqchip: xilinx: Enable generic irq multi handler
config: um-allmodconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/Xilinx/linux-xlnx/commit/e310970affe01f4432b5a022438bae976c7f324f
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.4
git checkout e310970affe01f4432b5a022438bae976c7f324f
# save the attached .config to linux build tree
make W=1 W=1 ARCH=um
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
cc1: warning: arch/um/include/uapi: No such file or directory [-Wmissing-include-dirs]
drivers/irqchip/irq-xilinx-intc.c: In function 'xilinx_intc_of_init':
>> drivers/irqchip/irq-xilinx-intc.c:295:3: error: implicit declaration of function 'set_handle_irq'; did you mean 'generic_handle_irq'? [-Werror=implicit-function-declaration]
295 | set_handle_irq(xil_intc_handle_irq);
| ^~~~~~~~~~~~~~
| generic_handle_irq
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for UIO_DMEM_GENIRQ
Depends on UIO && HAS_DMA
Selected by
- UIO_XILINX_AI_ENGINE && UIO
vim +295 drivers/irqchip/irq-xilinx-intc.c
194
195 static int __init xilinx_intc_of_init(struct device_node *intc,
196 struct device_node *parent)
197 {
198 int ret, irq;
199 struct xintc_irq_chip *irqc;
200 struct irq_chip *intc_dev;
201 u32 cpu_id = 0;
202
203 ret = of_property_read_u32(intc, "cpu-id", &cpu_id);
204 if (ret < 0)
205 pr_err("%s: %pOF: cpu_id not found\n", __func__, intc);
206
207 /* No parent means it is primary intc */
208 if (!parent) {
209 irqc = per_cpu_ptr(&primary_intc, cpu_id);
210 if (irqc->base) {
211 pr_err("%pOF: %s: cpu %d has already irq controller\n",
212 intc, __func__, cpu_id);
213 return -EINVAL;
214 }
215 } else {
216 irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
217 if (!irqc)
218 return -ENOMEM;
219 }
220
221 irqc->base = of_iomap(intc, 0);
222 BUG_ON(!irqc->base);
223
224 ret = of_property_read_u32(intc, "xlnx,num-intr-inputs", &irqc->nr_irq);
225 if (ret < 0) {
226 pr_err("irq-xilinx: unable to read xlnx,num-intr-inputs\n");
227 goto error;
228 }
229
230 ret = of_property_read_u32(intc, "xlnx,kind-of-intr", &irqc->intr_mask);
231 if (ret < 0) {
232 pr_warn("irq-xilinx: unable to read xlnx,kind-of-intr\n");
233 irqc->intr_mask = 0;
234 }
235
236 if (irqc->intr_mask >> irqc->nr_irq)
237 pr_warn("irq-xilinx: mismatch in kind-of-intr param\n");
238
239 pr_info("irq-xilinx: %pOF: num_irq=%d, edge=0x%x\n",
240 intc, irqc->nr_irq, irqc->intr_mask);
241
242 intc_dev = kzalloc(sizeof(*intc_dev), GFP_KERNEL);
243 if (!intc_dev) {
244 ret = -ENOMEM;
245 goto error;
246 }
247
248 intc_dev->name = intc->full_name;
249 intc_dev->irq_unmask = intc_enable_or_unmask,
250 intc_dev->irq_mask = intc_disable_or_mask,
251 intc_dev->irq_ack = intc_ack,
252 intc_dev->irq_mask_ack = intc_mask_ack,
253 irqc->intc_dev = intc_dev;
254
255 irqc->write_fn = xintc_write;
256 irqc->read_fn = xintc_read;
257 /*
258 * Disable all external interrupts until they are
259 * explicity requested.
260 */
261 irqc->write_fn(irqc->base + IER, 0);
262
263 /* Acknowledge any pending interrupts just in case. */
264 irqc->write_fn(irqc->base + IAR, 0xffffffff);
265
266 /* Turn on the Master Enable. */
267 irqc->write_fn(irqc->base + MER, MER_HIE | MER_ME);
268 if (!(irqc->read_fn(irqc->base + MER) & (MER_HIE | MER_ME))) {
269 irqc->write_fn = xintc_write_be;
270 irqc->read_fn = xintc_read_be;
271 irqc->write_fn(irqc->base + MER, MER_HIE | MER_ME);
272 }
273
274 irqc->root_domain = irq_domain_add_linear(intc, irqc->nr_irq,
275 &xintc_irq_domain_ops, irqc);
276 if (!irqc->root_domain) {
277 pr_err("irq-xilinx: Unable to create IRQ domain\n");
278 ret = -EINVAL;
279 goto err_alloc;
280 }
281
282 if (parent) {
283 irq = irq_of_parse_and_map(intc, 0);
284 if (irq) {
285 irq_set_chained_handler_and_data(irq,
286 xil_intc_irq_handler,
287 irqc);
288 } else {
289 pr_err("irq-xilinx: interrupts property not in DT\n");
290 ret = -EINVAL;
291 goto err_alloc;
292 }
293 } else {
294 irq_set_default_host(irqc->root_domain);
> 295 set_handle_irq(xil_intc_handle_irq);
296 }
297
298 return 0;
299
300 err_alloc:
301 kfree(intc_dev);
302 error:
303 iounmap(irqc->base);
304 if (parent)
305 kfree(irqc);
306 return ret;
307
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 22043 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20210513/16ba8bef/attachment-0001.gz>
More information about the linux-arm-kernel
mailing list