WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH 1/4] irq: Add new IRQ flag IRQF_NO_SUSPEND

On Thu, 2010-07-29 at 11:16 +0100, Ian Campbell wrote:
> A small number of users of IRQF_TIMER are using it for the implied no
> suspend behaviour on interrupts which are not timer interrupts.
> 
> Therefore add a new IRQF_NO_SUSPEND flag, rename IRQF_TIMER to
> __IRQF_TIMER and redefine IRQF_TIMER in terms of these new flags.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
> Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> Cc: Paul Mackerras <paulus@xxxxxxxxx>
> Cc: Grant Likely <grant.likely@xxxxxxxxxxxx>
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> Cc: linux-input@xxxxxxxxxxxxxxx
> Cc: linuxppc-dev@xxxxxxxxxx
> Cc: devicetree-discuss@xxxxxxxxxxxxxxxx
> ---
>  include/linux/interrupt.h |    7 ++++++-
>  kernel/irq/manage.c       |    2 +-
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
> index c233113..a0384a4 100644
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -53,16 +53,21 @@
>   * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler 
> finished.
>   *                Used by threaded interrupts which need to keep the
>   *                irq line disabled until the threaded handler has been run.
> + * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend
> + *
>   */
>  #define IRQF_DISABLED                0x00000020
>  #define IRQF_SAMPLE_RANDOM   0x00000040
>  #define IRQF_SHARED          0x00000080
>  #define IRQF_PROBE_SHARED    0x00000100
> -#define IRQF_TIMER           0x00000200
> +#define __IRQF_TIMER         0x00000200
>  #define IRQF_PERCPU          0x00000400
>  #define IRQF_NOBALANCING     0x00000800
>  #define IRQF_IRQPOLL         0x00001000
>  #define IRQF_ONESHOT         0x00002000
> +#define IRQF_NO_SUSPEND              0x00004000
> +
> +#define IRQF_TIMER           (__IRQF_TIMER | IRQF_NO_SUSPEND)
>  
>  /*
>   * Bits used by threaded handlers:
> diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
> index e149748..c3003e9 100644
> --- a/kernel/irq/manage.c
> +++ b/kernel/irq/manage.c
> @@ -216,7 +216,7 @@ static inline int setup_affinity(unsigned int irq, struct 
> irq_desc *desc)
>  void __disable_irq(struct irq_desc *desc, unsigned int irq, bool suspend)
>  {
>       if (suspend) {
> -             if (!desc->action || (desc->action->flags & IRQF_TIMER))
> +             if (!desc->action || (desc->action->flags & IRQF_NO_SUSPEND))
>                       return;
>               desc->status |= IRQ_SUSPENDED;
>       }



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] Re: [PATCH 1/4] irq: Add new IRQ flag IRQF_NO_SUSPEND, Benjamin Herrenschmidt <=