This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Use MSI(LPIs) in Linux kernel 6.12.y

Hello, I have resolved the issues regarding interrupt and DeviceID assignment

However, I still have some questions regarding how the EventID is implemented and allocated.

Looking at the ITS driver (drivers/irqchip/irq-gic-v3-its.c), I noticed the following:

static inline u32 its_get_event_id(struct irq_data *d)
{
    struct its_device *its_dev = irq_data_get_irq_chip_data(d);
    return d->hwirq - its_dev->event_map.lpi_base;
}

It appears that the EventID is set as the difference between the hwirq information in the irq data and the lpi base (8192).

How should the hwirq information be passed to the driver?

My device tree binding information is as follows:

 / {
          dummy: dummy@1a00a0000 {
                  compatible = "dummy,dev";
                  reg = <0x1 0xa00a0000 0x0 0x1000>;
                  msi-parent = <&its0 0x1>;
          };
  };

Alternatively, is my understanding incorrect?

Thank you.
Parents Reply Children
No data