Commit ef7080bd authored by Jinjie Ruan's avatar Jinjie Ruan Committed by Thomas Gleixner
Browse files

irqchip/riscv-aplic: Simplify the initialization code



The initialization code has an is_of_node() check and invokes to_of_node()
for every of_property_*() invocation.

to_of_node() has a is_of_node() check already, so simplify the code by
invoking to_of_node() and checking that for NULL. If not NULL hand in the
node pointer to of_property_*().

The same applies to of_property_*() which fails when invoked with a NULL
node pointer.

[ tglx: Massaged change log ]

Signed-off-by: default avatarJinjie Ruan <ruanjinjie@huawei.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20240603125652.791601-1-ruanjinjie@huawei.com
parent 760d7e71
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ static void aplic_init_hw_irqs(struct aplic_priv *priv)

int aplic_setup_priv(struct aplic_priv *priv, struct device *dev, void __iomem *regs)
{
	struct device_node *np = to_of_node(dev->fwnode);
	struct of_phandle_args parent;
	int rc;

@@ -134,7 +135,7 @@ int aplic_setup_priv(struct aplic_priv *priv, struct device *dev, void __iomem *
	 * Currently, only OF fwnode is supported so extend this
	 * function for ACPI support.
	 */
	if (!is_of_node(dev->fwnode))
	if (!np)
		return -EINVAL;

	/* Save device pointer and register base */
@@ -142,8 +143,7 @@ int aplic_setup_priv(struct aplic_priv *priv, struct device *dev, void __iomem *
	priv->regs = regs;

	/* Find out number of interrupt sources */
	rc = of_property_read_u32(to_of_node(dev->fwnode), "riscv,num-sources",
				  &priv->nr_irqs);
	rc = of_property_read_u32(np, "riscv,num-sources", &priv->nr_irqs);
	if (rc) {
		dev_err(dev, "failed to get number of interrupt sources\n");
		return rc;
@@ -155,8 +155,8 @@ int aplic_setup_priv(struct aplic_priv *priv, struct device *dev, void __iomem *
	 * If "msi-parent" property is present then we ignore the
	 * APLIC IDCs which forces the APLIC driver to use MSI mode.
	 */
	if (!of_property_present(to_of_node(dev->fwnode), "msi-parent")) {
		while (!of_irq_parse_one(to_of_node(dev->fwnode), priv->nr_idcs, &parent))
	if (!of_property_present(np, "msi-parent")) {
		while (!of_irq_parse_one(np, priv->nr_idcs, &parent))
			priv->nr_idcs++;
	}

@@ -184,7 +184,6 @@ static int aplic_probe(struct platform_device *pdev)
	 * If msi-parent property is present then setup APLIC MSI
	 * mode otherwise setup APLIC direct mode.
	 */
	if (is_of_node(dev->fwnode))
	msi_mode = of_property_present(to_of_node(dev->fwnode), "msi-parent");
	if (msi_mode)
		rc = aplic_msi_setup(dev, regs);