mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
irqchip/renesas-rzg2l: Dynamically allocate fwspec array
The total number of interrupts in RZ/G2L and RZ/G3L SoC are different. The RZ/G3L has 16 external interrupts whereas RZ/G2L has only 8 external interrupts. Dynamically allocate fwspec memory instead of static allocation to support both SoCs. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260325192451.172562-12-biju.das.jz@bp.renesas.com
This commit is contained in:
parent
bcb3066908
commit
b8e06e4e41
|
|
@ -81,7 +81,7 @@ static struct rzg2l_irqc_priv {
|
|||
void __iomem *base;
|
||||
const struct irq_chip *irq_chip;
|
||||
const struct irq_chip *tint_chip;
|
||||
struct irq_fwspec fwspec[IRQC_NUM_IRQ];
|
||||
struct irq_fwspec *fwspec;
|
||||
raw_spinlock_t lock;
|
||||
struct rzg2l_irqc_reg_cache cache;
|
||||
} *rzg2l_irqc_data;
|
||||
|
|
@ -630,6 +630,11 @@ static int rzg2l_irqc_common_probe(struct platform_device *pdev, struct device_n
|
|||
if (IS_ERR(rzg2l_irqc_data->base))
|
||||
return PTR_ERR(rzg2l_irqc_data->base);
|
||||
|
||||
rzg2l_irqc_data->fwspec = devm_kcalloc(&pdev->dev, IRQC_NUM_IRQ,
|
||||
sizeof(*rzg2l_irqc_data->fwspec), GFP_KERNEL);
|
||||
if (!rzg2l_irqc_data->fwspec)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = rzg2l_irqc_parse_interrupts(rzg2l_irqc_data, node);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "cannot parse interrupts: %d\n", ret);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user