mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-24 03:24:55 +08:00
0e5cb77706
The vGIC advertising code is unsurprisingly very much tied to the GIC implementations. However, we are about to extend the support to lesser implementations. Let's dissociate the vgic registration from the GIC code and move it into KVM, where it makes a bit more sense. This also allows us to mark the gic_kvm_info structures as __initdata. Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org>
32 lines
885 B
C
32 lines
885 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2002 ARM Limited, All Rights Reserved.
|
|
*/
|
|
|
|
#ifndef _IRQ_GIC_COMMON_H
|
|
#define _IRQ_GIC_COMMON_H
|
|
|
|
#include <linux/of.h>
|
|
#include <linux/irqdomain.h>
|
|
#include <linux/irqchip/arm-gic-common.h>
|
|
|
|
struct gic_quirk {
|
|
const char *desc;
|
|
const char *compatible;
|
|
bool (*init)(void *data);
|
|
u32 iidr;
|
|
u32 mask;
|
|
};
|
|
|
|
int gic_configure_irq(unsigned int irq, unsigned int type,
|
|
void __iomem *base, void (*sync_access)(void));
|
|
void gic_dist_config(void __iomem *base, int gic_irqs,
|
|
void (*sync_access)(void));
|
|
void gic_cpu_config(void __iomem *base, int nr, void (*sync_access)(void));
|
|
void gic_enable_quirks(u32 iidr, const struct gic_quirk *quirks,
|
|
void *data);
|
|
void gic_enable_of_quirks(const struct device_node *np,
|
|
const struct gic_quirk *quirks, void *data);
|
|
|
|
#endif /* _IRQ_GIC_COMMON_H */
|