diff options
-rw-r--r-- | kernel/irq/chip.c | 10 | ||||
-rw-r--r-- | kernel/irq/internals.h | 10 | ||||
-rw-r--r-- | kernel/irq/pm.c | 2 |
3 files changed, 12 insertions, 10 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index d171bc57e1e0..a3cc37c0c85e 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -170,21 +170,11 @@ static void irq_state_clr_disabled(struct irq_desc *desc) | |||
170 | irqd_clear(&desc->irq_data, IRQD_IRQ_DISABLED); | 170 | irqd_clear(&desc->irq_data, IRQD_IRQ_DISABLED); |
171 | } | 171 | } |
172 | 172 | ||
173 | static void irq_state_set_disabled(struct irq_desc *desc) | ||
174 | { | ||
175 | irqd_set(&desc->irq_data, IRQD_IRQ_DISABLED); | ||
176 | } | ||
177 | |||
178 | static void irq_state_clr_masked(struct irq_desc *desc) | 173 | static void irq_state_clr_masked(struct irq_desc *desc) |
179 | { | 174 | { |
180 | irqd_clear(&desc->irq_data, IRQD_IRQ_MASKED); | 175 | irqd_clear(&desc->irq_data, IRQD_IRQ_MASKED); |
181 | } | 176 | } |
182 | 177 | ||
183 | static void irq_state_set_masked(struct irq_desc *desc) | ||
184 | { | ||
185 | irqd_set(&desc->irq_data, IRQD_IRQ_MASKED); | ||
186 | } | ||
187 | |||
188 | static void irq_state_clr_started(struct irq_desc *desc) | 178 | static void irq_state_clr_started(struct irq_desc *desc) |
189 | { | 179 | { |
190 | irqd_clear(&desc->irq_data, IRQD_IRQ_STARTED); | 180 | irqd_clear(&desc->irq_data, IRQD_IRQ_STARTED); |
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index dbfba9933ed2..a2c48058354c 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h | |||
@@ -227,6 +227,16 @@ static inline bool irqd_has_set(struct irq_data *d, unsigned int mask) | |||
227 | return __irqd_to_state(d) & mask; | 227 | return __irqd_to_state(d) & mask; |
228 | } | 228 | } |
229 | 229 | ||
230 | static inline void irq_state_set_disabled(struct irq_desc *desc) | ||
231 | { | ||
232 | irqd_set(&desc->irq_data, IRQD_IRQ_DISABLED); | ||
233 | } | ||
234 | |||
235 | static inline void irq_state_set_masked(struct irq_desc *desc) | ||
236 | { | ||
237 | irqd_set(&desc->irq_data, IRQD_IRQ_MASKED); | ||
238 | } | ||
239 | |||
230 | #undef __irqd_to_state | 240 | #undef __irqd_to_state |
231 | 241 | ||
232 | static inline void kstat_incr_irqs_this_cpu(struct irq_desc *desc) | 242 | static inline void kstat_incr_irqs_this_cpu(struct irq_desc *desc) |
diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c index cea1de0161f1..6bd9b58429cc 100644 --- a/kernel/irq/pm.c +++ b/kernel/irq/pm.c | |||
@@ -149,6 +149,8 @@ static void resume_irq(struct irq_desc *desc) | |||
149 | 149 | ||
150 | /* Pretend that it got disabled ! */ | 150 | /* Pretend that it got disabled ! */ |
151 | desc->depth++; | 151 | desc->depth++; |
152 | irq_state_set_disabled(desc); | ||
153 | irq_state_set_masked(desc); | ||
152 | resume: | 154 | resume: |
153 | desc->istate &= ~IRQS_SUSPENDED; | 155 | desc->istate &= ~IRQS_SUSPENDED; |
154 | __enable_irq(desc); | 156 | __enable_irq(desc); |