manage.c (3b56f0585fd4c02d047dc406668cb40159b2d340) manage.c (4699923861513671d3f6ade8efb4e56a9a7ecadf)
1/*
2 * linux/kernel/irq/manage.c
3 *
4 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
5 * Copyright (C) 2005-2006 Thomas Gleixner
6 *
7 * This file contains driver APIs to the irq subsystem.
8 */

--- 892 unchanged lines hidden (view full) ---

901#endif
902
903 desc->status &= ~(IRQ_AUTODETECT | IRQ_WAITING | IRQ_ONESHOT |
904 IRQ_INPROGRESS | IRQ_SPURIOUS_DISABLED);
905
906 if (new->flags & IRQF_ONESHOT)
907 desc->status |= IRQ_ONESHOT;
908
1/*
2 * linux/kernel/irq/manage.c
3 *
4 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
5 * Copyright (C) 2005-2006 Thomas Gleixner
6 *
7 * This file contains driver APIs to the irq subsystem.
8 */

--- 892 unchanged lines hidden (view full) ---

901#endif
902
903 desc->status &= ~(IRQ_AUTODETECT | IRQ_WAITING | IRQ_ONESHOT |
904 IRQ_INPROGRESS | IRQ_SPURIOUS_DISABLED);
905
906 if (new->flags & IRQF_ONESHOT)
907 desc->status |= IRQ_ONESHOT;
908
909 if (!(desc->status & IRQ_NOAUTOEN)) {
910 desc->depth = 0;
911 desc->status &= ~IRQ_DISABLED;
912 desc->irq_data.chip->irq_startup(&desc->irq_data);
913 } else
909 if (!(desc->status & IRQ_NOAUTOEN))
910 irq_startup(desc);
911 else
914 /* Undo nested disables: */
915 desc->depth = 1;
916
917 /* Exclude IRQ from balancing if requested */
918 if (new->flags & IRQF_NOBALANCING)
919 desc->status |= IRQ_NO_BALANCING;
920
921 /* Set default affinity mask once everything is setup */

--- 128 unchanged lines hidden (view full) ---

1050
1051 /* Currently used only by UML, might disappear one day: */
1052#ifdef CONFIG_IRQ_RELEASE_METHOD
1053 if (desc->irq_data.chip->release)
1054 desc->irq_data.chip->release(irq, dev_id);
1055#endif
1056
1057 /* If this was the last handler, shut down the IRQ line: */
912 /* Undo nested disables: */
913 desc->depth = 1;
914
915 /* Exclude IRQ from balancing if requested */
916 if (new->flags & IRQF_NOBALANCING)
917 desc->status |= IRQ_NO_BALANCING;
918
919 /* Set default affinity mask once everything is setup */

--- 128 unchanged lines hidden (view full) ---

1048
1049 /* Currently used only by UML, might disappear one day: */
1050#ifdef CONFIG_IRQ_RELEASE_METHOD
1051 if (desc->irq_data.chip->release)
1052 desc->irq_data.chip->release(irq, dev_id);
1053#endif
1054
1055 /* If this was the last handler, shut down the IRQ line: */
1058 if (!desc->action) {
1059 desc->status |= IRQ_DISABLED;
1060 desc->irq_data.chip->irq_shutdown(&desc->irq_data);
1061 }
1056 if (!desc->action)
1057 irq_shutdown(desc);
1062
1063#ifdef CONFIG_SMP
1064 /* make sure affinity_hint is cleaned up */
1065 if (WARN_ON_ONCE(desc->affinity_hint))
1066 desc->affinity_hint = NULL;
1067#endif
1068
1069 raw_spin_unlock_irqrestore(&desc->lock, flags);

--- 225 unchanged lines hidden ---
1058
1059#ifdef CONFIG_SMP
1060 /* make sure affinity_hint is cleaned up */
1061 if (WARN_ON_ONCE(desc->affinity_hint))
1062 desc->affinity_hint = NULL;
1063#endif
1064
1065 raw_spin_unlock_irqrestore(&desc->lock, flags);

--- 225 unchanged lines hidden ---