|
@@ -113,7 +113,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
|
|
|
pr_devel("axon_msi: woff %x roff %x msi %x\n",
|
|
|
write_offset, msic->read_offset, msi);
|
|
|
|
|
|
- if (msi < NR_IRQS && virq_to_host(msi) == msic->irq_host) {
|
|
|
+ if (msi < NR_IRQS && irq_get_chip_data(msi) == msic) {
|
|
|
generic_handle_irq(msi);
|
|
|
msic->fifo_virt[idx] = cpu_to_le32(0xffffffff);
|
|
|
} else {
|
|
@@ -320,6 +320,7 @@ static struct irq_chip msic_irq_chip = {
|
|
|
static int msic_host_map(struct irq_host *h, unsigned int virq,
|
|
|
irq_hw_number_t hw)
|
|
|
{
|
|
|
+ irq_set_chip_data(virq, h->host_data);
|
|
|
irq_set_chip_and_handler(virq, &msic_irq_chip, handle_simple_irq);
|
|
|
|
|
|
return 0;
|