/* * J-Core SoC AIC driver * * Copyright (C) 2015-2016 Smart Energy Instruments, Inc. * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details.
*/
/* * The J-Core AIC1 and AIC2 are cpu-local interrupt controllers and do * not distinguish or use distinct irq number ranges for per-cpu event * interrupts (timer, IPI). Since information to determine whether a * particular irq number should be treated as per-cpu is not available * at mapping time, we use a wrapper handler function which chooses * the right handler at runtime based on whether IRQF_PERCPU was used * when requesting the irq.
*/
if (!base) {
pr_err("Unable to map AIC for cpu %u\n", cpu); return -ENOMEM;
}
__raw_writel(0xffffffff, base + JCORE_AIC1_INTPRI_REG);
iounmap(base);
}
min_irq = JCORE_AIC1_MIN_HWIRQ;
}
/* * The irq chip framework requires either mask/unmask or enable/disable * function pointers to be provided, but the hardware does not have any * such mechanism; the only interrupt masking is at the cpu level and * it affects all interrupts. We provide dummy mask/unmask. The hardware * handles all interrupt control and clears pending status when the cpu * accepts the interrupt.
*/
jcore_aic.irq_mask = noop;
jcore_aic.irq_unmask = noop;
jcore_aic.name = "AIC";
ret = irq_alloc_descs(-1, min_irq, dom_sz - min_irq,
of_node_to_nid(node));
¤ 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.0.2Bemerkung:
¤
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.