Re: [PATCH v12 22/25] irqchip: Add RISC-V advanced PLIC driver for direct-mode

From: Thomas Gleixner
Date: Fri Feb 16 2024 - 15:50:23 EST


On Sat, Jan 27 2024 at 21:47, Anup Patel wrote:
> +static int aplic_direct_irqdomain_translate(struct irq_domain *d,
> + struct irq_fwspec *fwspec,
> + unsigned long *hwirq,
> + unsigned int *type)

Please align the arguments to the first argument of the first line and
use the 100 characters, i.e.

static int aplic_direct_irqdomain_translate(struct irq_domain *d, struct irq_fwspec *fwspec,
unsigned long *hwirq, unsigned int *type)
{

All over the place.

> +{
> + struct aplic_priv *priv = d->host_data;
> +
> + return aplic_irqdomain_translate(fwspec, priv->gsi_base,
> + hwirq, type);
> +}
> +
> +static int aplic_direct_irqdomain_alloc(struct irq_domain *domain,
> + unsigned int virq, unsigned int nr_irqs,
> + void *arg)
> +{
> + int i, ret;
> + unsigned int type;
> + irq_hw_number_t hwirq;
> + struct irq_fwspec *fwspec = arg;
> + struct aplic_priv *priv = domain->host_data;
> + struct aplic_direct *direct =
> + container_of(priv, struct aplic_direct, priv);

Variable ordering. Please make this consistent according to documentation.

> + ret = aplic_irqdomain_translate(fwspec, priv->gsi_base,
> + &hwirq, &type);
> + if (ret)
> + return ret;
> +
> + for (i = 0; i < nr_irqs; i++) {
> + irq_domain_set_info(domain, virq + i, hwirq + i,
> + &aplic_direct_chip, priv,
> + handle_fasteoi_irq, NULL, NULL);
> + irq_set_affinity(virq + i, &direct->lmask);
> + /* See the reason described in aplic_msi_irqdomain_alloc() */

I still have to understand that "reason". :)

> + irq_set_status_flags(virq + i, IRQ_DISABLE_UNLAZY);
> + }

Thanks,

tglx