On 06.05.2025 18:51, Oleksii Kurochko wrote:
> @@ -58,6 +59,89 @@ int platform_get_irq(const struct dt_device_node *device,
> int index)
> return dt_irq.irq;
> }
>
> +static int _setup_irq(struct irq_desc *desc, unsigned int irqflags,
> + struct irqaction *new)
> +{
> + bool shared = irqflags & IRQF_SHARED;
> +
> + ASSERT(new != NULL);
> +
> + /*
> + * Sanity checks:
> + * - if the IRQ is marked as shared
> + * - dev_id is not NULL when IRQF_SHARED is set
> + */
> + if ( desc->action != NULL && (!(desc->status & IRQF_SHARED) || !shared) )
> + return -EINVAL;
> + if ( shared && new->dev_id == NULL )
> + return -EINVAL;
> +
> + if ( shared )
> + desc->status |= IRQF_SHARED;
> +
> +#ifdef CONFIG_IRQ_HAS_MULTIPLE_ACTION
> + new->next = desc->action;
> +#endif
Didn't you indicate you'd drop this?
Jan