mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 00:51:35 +00:00
irqchip updates for 4.15, take #4
- A core irq fix for legacy cases where the irq trigger is not reported by firmware - A couple of GICv3/4 fixes (Kconfig, of-node refcount, error handling) - Trivial pr_err fixes -----BEGIN PGP SIGNATURE----- iQJJBAABCAAzFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAloJ2UYVHG1hcmMuenlu Z2llckBhcm0uY29tAAoJECPQ0LrRPXpDtkcP/i2HrgT5CmoA315h5HLXfFImxZwg YG7ti3zqu1TM7HXNlfBgSltqiU5UgYOd2KjgUR+w30t1239DwxVdtoy6ZgGWXlfe xmHlXAiEDkqaAV3P/RHKkl8xRDkyWhKmfY1ym/So0J68EPytuiZiT4wJZO39u/xk Gi2fW38gywl4bEb9MA48noEnkNkr93DjJfFyiPxPYiAaWeFRoP+X5l171kTpCdSv sT5hfQvfsz7mQZVecMBwGg6QuWnlUplkzPb4lNhuk/tJTU97vf3Py8abzeiGqBMa 5NoH9PUMZs0L8kv6DgR2DEOmhmmk0+mwO7VWVT3eVtYoxSS8oW0i2OzgB9kCOy8+ LZi+M0fMSL6hiAgwlV5YrHYvsVl2rGjCNAqC+q2ggpW4XH9Kql2caki331mGqAyr qDeI0SWaABz5c9ajtsfQ78T0FE70xwIJ5TT1RmtKt2LFCpJjBacjK3vUST2ypIrF k0AJTmBwEefKNvxTrjkZtenblCVo92lT+boAv7HuI612NicVSBEsK7S+96kGlGMw KNi+cwGriJRWIbsn+VMpLFGyPgEmWQ1p/4Z/tkwSevqOl/k8KrNw6+VoyDS1PmJU gIQ0hh8wMnm2l9VGJARc0+pHKr0KYN52j+jZI5+OGNKKAZ0jGYI4t2JiemtOwmet q2KNdm6mvBYUYirj =/8DQ -----END PGP SIGNATURE----- Merge tag 'irqchip-4.15-4' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent Pull irqchip updates for 4.15, take #4 from Marc Zyngier - A core irq fix for legacy cases where the irq trigger is not reported by firmware - A couple of GICv3/4 fixes (Kconfig, of-node refcount, error handling) - Trivial pr_err fixes
This commit is contained in:
commit
41cc30412d
8 changed files with 47 additions and 10 deletions
|
@ -211,6 +211,7 @@ struct irq_data {
|
|||
* IRQD_MANAGED_SHUTDOWN - Interrupt was shutdown due to empty affinity
|
||||
* mask. Applies only to affinity managed irqs.
|
||||
* IRQD_SINGLE_TARGET - IRQ allows only a single affinity target
|
||||
* IRQD_DEFAULT_TRIGGER_SET - Expected trigger already been set
|
||||
*/
|
||||
enum {
|
||||
IRQD_TRIGGER_MASK = 0xf,
|
||||
|
@ -231,6 +232,7 @@ enum {
|
|||
IRQD_IRQ_STARTED = (1 << 22),
|
||||
IRQD_MANAGED_SHUTDOWN = (1 << 23),
|
||||
IRQD_SINGLE_TARGET = (1 << 24),
|
||||
IRQD_DEFAULT_TRIGGER_SET = (1 << 25),
|
||||
};
|
||||
|
||||
#define __irqd_to_state(d) ACCESS_PRIVATE((d)->common, state_use_accessors)
|
||||
|
@ -260,18 +262,25 @@ static inline void irqd_mark_affinity_was_set(struct irq_data *d)
|
|||
__irqd_to_state(d) |= IRQD_AFFINITY_SET;
|
||||
}
|
||||
|
||||
static inline bool irqd_trigger_type_was_set(struct irq_data *d)
|
||||
{
|
||||
return __irqd_to_state(d) & IRQD_DEFAULT_TRIGGER_SET;
|
||||
}
|
||||
|
||||
static inline u32 irqd_get_trigger_type(struct irq_data *d)
|
||||
{
|
||||
return __irqd_to_state(d) & IRQD_TRIGGER_MASK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Must only be called inside irq_chip.irq_set_type() functions.
|
||||
* Must only be called inside irq_chip.irq_set_type() functions or
|
||||
* from the DT/ACPI setup code.
|
||||
*/
|
||||
static inline void irqd_set_trigger_type(struct irq_data *d, u32 type)
|
||||
{
|
||||
__irqd_to_state(d) &= ~IRQD_TRIGGER_MASK;
|
||||
__irqd_to_state(d) |= type & IRQD_TRIGGER_MASK;
|
||||
__irqd_to_state(d) |= IRQD_DEFAULT_TRIGGER_SET;
|
||||
}
|
||||
|
||||
static inline bool irqd_is_level_type(struct irq_data *d)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue