for (i = 0; i < HTINT_NUM_VECTORS; i++) { /* Disable all HT Vectors */
writel(0x0, htpic->base + HTINT_EN_OFF + i * 0x4); /* Read back to force write */
(void) readl(htpic->base + i * 0x4); /* Ack all possible pending IRQs */
writel(GENMASK(31, 0), htpic->base + i * 0x4);
}
htpic->domain = __init_i8259_irqs(node); if (!htpic->domain) {
pr_err("loongson-htpic: Failed to initialize i8259 IRQs\n");
err = -ENOMEM; goto out_iounmap;
}
/* Interrupt may come from any of the 4 interrupt line */ for (i = 0; i < HTPIC_MAX_PARENT_IRQ; i++) {
parent_irq[i] = irq_of_parse_and_map(node, i); if (parent_irq[i] <= 0) break;
num_parents++;
}
if (!num_parents) {
pr_err("loongson-htpic: Failed to get parent irqs\n");
err = -ENODEV; goto out_remove_domain;
}
htpic_reg_init();
for (i = 0; i < num_parents; i++) {
irq_set_chained_handler_and_data(parent_irq[i],
htpic_irq_dispatch, htpic);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.