Re: [RFC PATCH 1/2] irqchip: ti-tsir: Add support for Timesync Interrupt Router
From: Simon Horman <horms@kernel.org>
Date: 2025-02-06 17:39:35
Also in:
lkml
On Wed, Feb 05, 2025 at 09:31:18PM +0530, Chintan Vankar wrote:
Timesync Interrupt Router is an instantiation of generic interrupt router module. It provides a mechanism to mux M interrupt inputs to N interrupt outputs, where all M inputs are selectable to be driven as per N output. Timesync Interrupt Router's inputs are either from peripherals or from Device sync Events. Add support for Timesync Interrupt Router driver to map input received from peripherals with the corresponding output. Signed-off-by: Chintan Vankar <redacted>
...
quoted hunk ↗ jump to hunk
diff --git a/drivers/irqchip/ti-timesync-intr.c b/drivers/irqchip/ti-timesync-intr.c new file mode 100644 index 000000000000..11f26ca649d2 --- /dev/null +++ b/drivers/irqchip/ti-timesync-intr.c@@ -0,0 +1,109 @@ +// SPDX-License-Identifier: GPL
Hi Chintan, I think you need to be mores specific here wrt the version of the GPL. Link: https://www.kernel.org/doc/html/v6.13-rc6/process/license-rules.html Flagged by ./scripts/spdxcheck.py Also, compiling this file with GCC 14.2.0 for allmodconfig with W=1 generates a significant number of warnings. You may wish to look into that. drivers/irqchip/ti-timesync-intr.c: In function ‘ts_intr_irq_domain_alloc’: drivers/irqchip/ti-timesync-intr.c:38:13: error: unused variable ‘ret’ [-Werror=unused-variable] 38 | int ret; | ^~~ drivers/irqchip/ti-timesync-intr.c: In function ‘ts_intr_irq_domain_free’: drivers/irqchip/ti-timesync-intr.c:82:32: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘18446744073709486079’ to ‘4294901759’ [-Werror=overflow] 82 | writel(~TIMESYNC_INTRTR_INT_ENABLE, tsr_data.tsr_base + output_line_offset); drivers/irqchip/ti-timesync-intr.c:74:44: error: unused variable ‘n’ [-Werror=unused-variable] 74 | struct output_line_to_virq *node, *n; | ^ drivers/irqchip/ti-timesync-intr.c:74:37: error: unused variable ‘node’ [-Werror=unused-variable] 74 | struct output_line_to_virq *node, *n; | ^~~~ In file included from ./include/linux/irqchip.h:16, from drivers/irqchip/ti-timesync-intr.c:9: drivers/irqchip/ti-timesync-intr.c: At top level: ./include/linux/minmax.h:24:35: error: comparison of distinct pointer types lacks a cast [-Werror=compare-distinct-pointer-types] 24 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) | ^~ ./include/linux/of.h:1525:31: note: in definition of macro ‘_OF_DECLARE’ 1525 | .data = (fn == (fn_type)NULL) ? fn : fn } | ^~ ./include/linux/irqchip.h:37:9: note: in expansion of macro ‘OF_DECLARE_2’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~ ./include/linux/irqchip.h:24:10: note: in expansion of macro ‘__typecheck’ 24 | (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn) | ^~~~~~~~~~~ ./include/linux/irqchip.h:37:45: note: in expansion of macro ‘typecheck_irq_init_cb’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~~~~~~~~~~ drivers/irqchip/ti-timesync-intr.c:105:1: note: in expansion of macro ‘IRQCHIP_DECLARE’ 105 | IRQCHIP_DECLARE(ts_intr, "ti,ts-intr", tsr_init); | ^~~~~~~~~~~~~~~ ./include/linux/of.h:1525:34: error: comparison of distinct pointer types lacks a cast [-Werror=compare-distinct-pointer-types] 1525 | .data = (fn == (fn_type)NULL) ? fn : fn } | ^~ ./include/linux/of.h:1540:17: note: in expansion of macro ‘_OF_DECLARE’ 1540 | _OF_DECLARE(table, name, compat, fn, of_init_fn_2) | ^~~~~~~~~~~ ./include/linux/irqchip.h:37:9: note: in expansion of macro ‘OF_DECLARE_2’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~ drivers/irqchip/ti-timesync-intr.c:105:1: note: in expansion of macro ‘IRQCHIP_DECLARE’ 105 | IRQCHIP_DECLARE(ts_intr, "ti,ts-intr", tsr_init); | ^~~~~~~~~~~~~~~ ./include/linux/minmax.h:24:35: error: comparison of distinct pointer types lacks a cast [-Werror=compare-distinct-pointer-types] 24 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) | ^~ ./include/linux/of.h:1525:54: note: in definition of macro ‘_OF_DECLARE’ 1525 | .data = (fn == (fn_type)NULL) ? fn : fn } | ^~ ./include/linux/irqchip.h:37:9: note: in expansion of macro ‘OF_DECLARE_2’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~ ./include/linux/irqchip.h:24:10: note: in expansion of macro ‘__typecheck’ 24 | (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn) | ^~~~~~~~~~~ ./include/linux/irqchip.h:37:45: note: in expansion of macro ‘typecheck_irq_init_cb’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~~~~~~~~~~ drivers/irqchip/ti-timesync-intr.c:105:1: note: in expansion of macro ‘IRQCHIP_DECLARE’ 105 | IRQCHIP_DECLARE(ts_intr, "ti,ts-intr", tsr_init); | ^~~~~~~~~~~~~~~ ./include/linux/minmax.h:24:35: error: comparison of distinct pointer types lacks a cast [-Werror=compare-distinct-pointer-types] 24 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) | ^~ ./include/linux/of.h:1525:59: note: in definition of macro ‘_OF_DECLARE’ 1525 | .data = (fn == (fn_type)NULL) ? fn : fn } | ^~ ./include/linux/irqchip.h:37:9: note: in expansion of macro ‘OF_DECLARE_2’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~ ./include/linux/irqchip.h:24:10: note: in expansion of macro ‘__typecheck’ 24 | (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn) | ^~~~~~~~~~~ ./include/linux/irqchip.h:37:45: note: in expansion of macro ‘typecheck_irq_init_cb’ 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn)) | ^~~~~~~~~~~~~~~~~~~~~ drivers/irqchip/ti-timesync-intr.c:105:1: note: in expansion of macro ‘IRQCHIP_DECLARE’ 105 | IRQCHIP_DECLARE(ts_intr, "ti,ts-intr", tsr_init); | ^~~~~~~~~~~~~~~ drivers/irqchip/ti-timesync-intr.c: In function ‘ts_intr_irq_domain_alloc’: drivers/irqchip/ti-timesync-intr.c:40:9: error: ‘output_line’ is used uninitialized [-Werror=uninitialized] 40 | irq_domain_set_hwirq_and_chip(domain, virq, output_line, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41 | &ts_intr_irq_chip, | ~~~~~~~~~~~~~~~~~~ 42 | NULL); | ~~~~~ drivers/irqchip/ti-timesync-intr.c:36:22: note: ‘output_line’ was declared here 36 | unsigned int output_line, input_line, output_line_offset; | ^~~~~~~~~~~