[PATCH v4 09/14] irqchip/irq-mvebu-icu: add support for System Error Interrupts (SEI)
From: Marc Zyngier <hidden>
Date: 2018-08-21 09:19:04
Also in:
linux-devicetree
From: Marc Zyngier <hidden>
Date: 2018-08-21 09:19:04
Also in:
linux-devicetree
On 21/08/18 10:08, Miquel Raynal wrote:
Hi Marc, I'm fine with the rest of the comments, please find just one last question below. [...]quoted
quoted
@@ -133,12 +164,36 @@ mvebu_icu_irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, return -EINVAL; } - /* Mask the type to prevent wrong DT configuration */ - *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; + /* + * The ICU receives level-interrupts. MSI SEI are + * edge-interrupts while MSI NSR are level-interrupts. Update the type + * accordingly for the parent irqchip. + */ + if (msi_data->subset_data->icu_group == ICU_GRP_SEI) + *type = IRQ_TYPE_EDGE_RISING;That's interesting. How is the resampling done here?I'm not sure to understand the question. What does 'resampling' means in such context? MSI SEIs are of type "edge" and use the traditional MSI signalling infrastructure. I'm asking to be sure not to ignore something wrong in my code.
You seems to be turning a level interrupt into an edge. You can do that, but only if you resample the level on EOI (and regenerate the corresponding edge if the level is still high). Or am I reading it the wrong way? M. -- Jazz is not dead. It just smells funny...