mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
genirq: use iterators for irq_desc loops
Use for_each_irq_desc[_reverse] for all the iteration loops. Signed-off-by: Thomas Gleixner <[email protected]>
This commit is contained in:
parent
2be3b52a57
commit
10e580842e
3 changed files with 21 additions and 43 deletions
|
|
@ -30,19 +30,16 @@ static DEFINE_MUTEX(probing_active);
|
|||
unsigned long probe_irq_on(void)
|
||||
{
|
||||
struct irq_desc *desc;
|
||||
unsigned long mask;
|
||||
unsigned int i;
|
||||
unsigned long mask = 0;
|
||||
unsigned int status;
|
||||
int i;
|
||||
|
||||
mutex_lock(&probing_active);
|
||||
/*
|
||||
* something may have generated an irq long ago and we want to
|
||||
* flush such a longstanding irq before considering it as spurious.
|
||||
*/
|
||||
for (i = nr_irqs-1; i > 0; i--) {
|
||||
desc = irq_to_desc(i);
|
||||
if (!desc)
|
||||
continue;
|
||||
|
||||
for_each_irq_desc_reverse(i, desc) {
|
||||
spin_lock_irq(&desc->lock);
|
||||
if (!desc->action && !(desc->status & IRQ_NOPROBE)) {
|
||||
/*
|
||||
|
|
@ -70,11 +67,7 @@ unsigned long probe_irq_on(void)
|
|||
* (we must startup again here because if a longstanding irq
|
||||
* happened in the previous stage, it may have masked itself)
|
||||
*/
|
||||
for (i = nr_irqs-1; i > 0; i--) {
|
||||
desc = irq_to_desc(i);
|
||||
if (!desc)
|
||||
continue;
|
||||
|
||||
for_each_irq_desc_reverse(i, desc) {
|
||||
spin_lock_irq(&desc->lock);
|
||||
if (!desc->action && !(desc->status & IRQ_NOPROBE)) {
|
||||
desc->status |= IRQ_AUTODETECT | IRQ_WAITING;
|
||||
|
|
@ -92,13 +85,7 @@ unsigned long probe_irq_on(void)
|
|||
/*
|
||||
* Now filter out any obviously spurious interrupts
|
||||
*/
|
||||
mask = 0;
|
||||
for (i = 0; i < nr_irqs; i++) {
|
||||
unsigned int status;
|
||||
|
||||
desc = irq_to_desc(i);
|
||||
if (!desc)
|
||||
continue;
|
||||
for_each_irq_desc(i, desc) {
|
||||
spin_lock_irq(&desc->lock);
|
||||
status = desc->status;
|
||||
|
||||
|
|
@ -132,16 +119,11 @@ EXPORT_SYMBOL(probe_irq_on);
|
|||
*/
|
||||
unsigned int probe_irq_mask(unsigned long val)
|
||||
{
|
||||
unsigned int mask;
|
||||
unsigned int status, mask = 0;
|
||||
struct irq_desc *desc;
|
||||
int i;
|
||||
|
||||
mask = 0;
|
||||
for (i = 0; i < nr_irqs; i++) {
|
||||
struct irq_desc *desc = irq_to_desc(i);
|
||||
unsigned int status;
|
||||
|
||||
if (!desc)
|
||||
continue;
|
||||
for_each_irq_desc(i, desc) {
|
||||
spin_lock_irq(&desc->lock);
|
||||
status = desc->status;
|
||||
|
||||
|
|
@ -180,13 +162,10 @@ EXPORT_SYMBOL(probe_irq_mask);
|
|||
int probe_irq_off(unsigned long val)
|
||||
{
|
||||
int i, irq_found = 0, nr_irqs = 0;
|
||||
struct irq_desc *desc;
|
||||
unsigned int status;
|
||||
|
||||
for (i = 0; i < nr_irqs; i++) {
|
||||
struct irq_desc *desc = irq_to_desc(i);
|
||||
unsigned int status;
|
||||
|
||||
if (!desc)
|
||||
continue;
|
||||
for_each_irq_desc(i, desc) {
|
||||
spin_lock_irq(&desc->lock);
|
||||
status = desc->status;
|
||||
|
||||
|
|
|
|||
|
|
@ -268,9 +268,10 @@ static struct lock_class_key irq_desc_lock_class;
|
|||
|
||||
void early_init_irq_lock_class(void)
|
||||
{
|
||||
struct irq_desc *desc;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nr_irqs; i++)
|
||||
lockdep_set_class(&irq_desc[i].lock, &irq_desc_lock_class);
|
||||
for_each_irq_desc(i, desc)
|
||||
lockdep_set_class(&desc->lock, &irq_desc_lock_class);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue