All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] Add support for the RZ/V2H Interrupt Control Unit
@ 2024-09-17 17:32 Fabrizio Castro
  2024-09-17 17:32 ` [PATCH 1/6] dt-bindings: pinctrl: renesas: rzg2l-pinctrl: Add interrupt-parent Fabrizio Castro
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Fabrizio Castro @ 2024-09-17 17:32 UTC (permalink / raw)
  To: Thomas Gleixner, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Michael Turquette, Stephen Boyd, Philipp Zabel,
	Geert Uytterhoeven
  Cc: Fabrizio Castro, Magnus Damm, Lad Prabhakar, Marc Zyngier,
	linux-kernel, devicetree, linux-renesas-soc, linux-gpio,
	linux-clk, Chris Paterson, Biju Das

Dear All,

This series adds whatever is required for supporting NMI, IRQ, and
TINT interrupts to the Renesas RZ/V2H SoC.

Thanks,
Fab

Fabrizio Castro (6):
  dt-bindings: pinctrl: renesas: rzg2l-pinctrl: Add interrupt-parent
  pinctrl: renesas: rzg2l: Remove RZG2L_TINT_IRQ_START_INDEX
  dt-bindings: interrupt-controller: Add Renesas RZ/V2H(P) Interrupt
    Controller
  clk: renesas: r9a09g057: Add clock and reset entries for ICU
  irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver
  arm64: dts: renesas: r9a09g057: Add ICU node

 .../renesas,rzv2h-icu.yaml                    | 278 ++++++++++
 .../pinctrl/renesas,rzg2l-pinctrl.yaml        |   4 +
 arch/arm64/boot/dts/renesas/r9a09g057.dtsi    |  88 +++
 drivers/clk/renesas/r9a09g057-cpg.c           |   2 +
 drivers/irqchip/Kconfig                       |   7 +
 drivers/irqchip/Makefile                      |   1 +
 drivers/irqchip/irq-renesas-rzv2h.c           | 517 ++++++++++++++++++
 drivers/pinctrl/renesas/pinctrl-rzg2l.c       |   8 +-
 drivers/soc/renesas/Kconfig                   |   1 +
 .../interrupt-controller/icu-rzv2h.h          |  48 ++
 10 files changed, 952 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,rzv2h-icu.yaml
 create mode 100644 drivers/irqchip/irq-renesas-rzv2h.c
 create mode 100644 include/dt-bindings/interrupt-controller/icu-rzv2h.h

-- 
2.34.1


^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [PATCH 5/6] irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver
@ 2024-09-21 20:23 kernel test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kernel test robot @ 2024-09-21 20:23 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Julia Lawall

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240917173249.158920-6-fabrizio.castro.jz@renesas.com>
References: <20240917173249.158920-6-fabrizio.castro.jz@renesas.com>
TO: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
TO: Thomas Gleixner <tglx@linutronix.de>
TO: Philipp Zabel <p.zabel@pengutronix.de>
TO: Geert Uytterhoeven <geert+renesas@glider.be>
CC: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
CC: Magnus Damm <magnus.damm@gmail.com>
CC: linux-kernel@vger.kernel.org
CC: linux-renesas-soc@vger.kernel.org
CC: Chris Paterson <Chris.Paterson2@renesas.com>
CC: Biju Das <biju.das.jz@bp.renesas.com>
CC: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Hi Fabrizio,

kernel test robot noticed the following build warnings:

[auto build test WARNING on next-20240917]
[cannot apply to tip/irq/core robh/for-next geert-renesas-drivers/renesas-pinctrl geert-renesas-devel/next linus/master v6.11 v6.11-rc7 v6.11-rc6 v6.11]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Fabrizio-Castro/dt-bindings-pinctrl-renesas-rzg2l-pinctrl-Add-interrupt-parent/20240918-013929
base:   next-20240917
patch link:    https://lore.kernel.org/r/20240917173249.158920-6-fabrizio.castro.jz%40renesas.com
patch subject: [PATCH 5/6] irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: nios2-randconfig-r064-20240922 (https://download.01.org/0day-ci/archive/20240922/202409220454.AW3A9lUC-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 14.1.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202409220454.AW3A9lUC-lkp@intel.com/

cocci warnings: (new ones prefixed by >>)
>> drivers/irqchip/irq-renesas-rzv2h.c:452:2-8: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:458:2-8: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:465:2-8: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:470:2-8: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:475:2-8: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:480:2-8: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:502:1-7: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.
   drivers/irqchip/irq-renesas-rzv2h.c:510:1-7: ERROR: missing put_device; call of_find_device_by_node on line 445, but without a corresponding object release within this function.

vim +452 drivers/irqchip/irq-renesas-rzv2h.c

34d38ea429c8e6 Fabrizio Castro 2024-09-17  435  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  436  static int rzv2h_icu_init(struct device_node *node,
34d38ea429c8e6 Fabrizio Castro 2024-09-17  437  				 struct device_node *parent)
34d38ea429c8e6 Fabrizio Castro 2024-09-17  438  {
34d38ea429c8e6 Fabrizio Castro 2024-09-17  439  	struct irq_domain *irq_domain, *parent_domain;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  440  	struct rzv2h_icu_priv *rzv2h_icu_data;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  441  	struct platform_device *pdev;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  442  	struct reset_control *resetn;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  443  	int ret;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  444  
34d38ea429c8e6 Fabrizio Castro 2024-09-17 @445  	pdev = of_find_device_by_node(node);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  446  	if (!pdev)
34d38ea429c8e6 Fabrizio Castro 2024-09-17  447  		return -ENODEV;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  448  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  449  	parent_domain = irq_find_host(parent);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  450  	if (!parent_domain) {
34d38ea429c8e6 Fabrizio Castro 2024-09-17  451  		dev_err(&pdev->dev, "cannot find parent domain\n");
34d38ea429c8e6 Fabrizio Castro 2024-09-17 @452  		return -ENODEV;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  453  	}
34d38ea429c8e6 Fabrizio Castro 2024-09-17  454  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  455  	rzv2h_icu_data = devm_kzalloc(&pdev->dev, sizeof(*rzv2h_icu_data),
34d38ea429c8e6 Fabrizio Castro 2024-09-17  456  				       GFP_KERNEL);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  457  	if (!rzv2h_icu_data)
34d38ea429c8e6 Fabrizio Castro 2024-09-17  458  		return -ENOMEM;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  459  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  460  	rzv2h_icu_data->irqchip = &rzv2h_icu_chip;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  461  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  462  	rzv2h_icu_data->base = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0,
34d38ea429c8e6 Fabrizio Castro 2024-09-17  463  					      NULL);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  464  	if (IS_ERR(rzv2h_icu_data->base))
34d38ea429c8e6 Fabrizio Castro 2024-09-17  465  		return PTR_ERR(rzv2h_icu_data->base);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  466  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  467  	ret = rzv2h_icu_parse_interrupts(rzv2h_icu_data, node);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  468  	if (ret) {
34d38ea429c8e6 Fabrizio Castro 2024-09-17  469  		dev_err(&pdev->dev, "cannot parse interrupts: %d\n", ret);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  470  		return ret;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  471  	}
34d38ea429c8e6 Fabrizio Castro 2024-09-17  472  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  473  	resetn = devm_reset_control_get_exclusive(&pdev->dev, NULL);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  474  	if (IS_ERR(resetn))
34d38ea429c8e6 Fabrizio Castro 2024-09-17  475  		return PTR_ERR(resetn);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  476  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  477  	ret = reset_control_deassert(resetn);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  478  	if (ret) {
34d38ea429c8e6 Fabrizio Castro 2024-09-17  479  		dev_err(&pdev->dev, "failed to deassert resetn pin, %d\n", ret);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  480  		return ret;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  481  	}
34d38ea429c8e6 Fabrizio Castro 2024-09-17  482  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  483  	pm_runtime_enable(&pdev->dev);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  484  	ret = pm_runtime_resume_and_get(&pdev->dev);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  485  	if (ret < 0) {
34d38ea429c8e6 Fabrizio Castro 2024-09-17  486  		dev_err(&pdev->dev, "pm_runtime_resume_and_get failed: %d\n",
34d38ea429c8e6 Fabrizio Castro 2024-09-17  487  			ret);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  488  		goto pm_disable;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  489  	}
34d38ea429c8e6 Fabrizio Castro 2024-09-17  490  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  491  	raw_spin_lock_init(&rzv2h_icu_data->lock);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  492  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  493  	irq_domain = irq_domain_add_hierarchy(parent_domain, 0, ICU_NUM_IRQ,
34d38ea429c8e6 Fabrizio Castro 2024-09-17  494  					      node, &rzv2h_icu_domain_ops,
34d38ea429c8e6 Fabrizio Castro 2024-09-17  495  					      rzv2h_icu_data);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  496  	if (!irq_domain) {
34d38ea429c8e6 Fabrizio Castro 2024-09-17  497  		dev_err(&pdev->dev, "failed to add irq domain\n");
34d38ea429c8e6 Fabrizio Castro 2024-09-17  498  		ret = -ENOMEM;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  499  		goto pm_put;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  500  	}
34d38ea429c8e6 Fabrizio Castro 2024-09-17  501  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  502  	return 0;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  503  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  504  pm_put:
34d38ea429c8e6 Fabrizio Castro 2024-09-17  505  	pm_runtime_put(&pdev->dev);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  506  pm_disable:
34d38ea429c8e6 Fabrizio Castro 2024-09-17  507  	pm_runtime_disable(&pdev->dev);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  508  	reset_control_assert(resetn);
34d38ea429c8e6 Fabrizio Castro 2024-09-17  509  
34d38ea429c8e6 Fabrizio Castro 2024-09-17  510  	return ret;
34d38ea429c8e6 Fabrizio Castro 2024-09-17  511  }
34d38ea429c8e6 Fabrizio Castro 2024-09-17  512  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-10-09 17:44 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-17 17:32 [PATCH 0/6] Add support for the RZ/V2H Interrupt Control Unit Fabrizio Castro
2024-09-17 17:32 ` [PATCH 1/6] dt-bindings: pinctrl: renesas: rzg2l-pinctrl: Add interrupt-parent Fabrizio Castro
2024-09-17 18:31   ` Rob Herring (Arm)
2024-09-17 22:14   ` Rob Herring
2024-09-18  9:27     ` Fabrizio Castro
2024-09-17 17:32 ` [PATCH 2/6] pinctrl: renesas: rzg2l: Remove RZG2L_TINT_IRQ_START_INDEX Fabrizio Castro
2024-09-17 17:32 ` [PATCH 3/6] dt-bindings: interrupt-controller: Add Renesas RZ/V2H(P) Interrupt Controller Fabrizio Castro
2024-09-18 17:28   ` Rob Herring
2024-09-18 18:15     ` Fabrizio Castro
2024-09-17 17:32 ` [PATCH 4/6] clk: renesas: r9a09g057: Add clock and reset entries for ICU Fabrizio Castro
2024-09-17 17:32 ` [PATCH 5/6] irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver Fabrizio Castro
2024-10-02 10:51   ` Thomas Gleixner
2024-10-09 17:44     ` Fabrizio Castro
2024-09-17 17:32 ` [PATCH 6/6] arm64: dts: renesas: r9a09g057: Add ICU node Fabrizio Castro
  -- strict thread matches above, loose matches on Subject: below --
2024-09-21 20:23 [PATCH 5/6] irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver kernel test robot

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.