1. 11 2月, 2013 1 次提交
    • V
      ARC: irqflags - Interrupt enabling/disabling at in-core intc · ac4c244d
      Vineet Gupta 提交于
      ARC700 has an in-core intc which provides 2 priorities (a.k.a.) "levels"
      of interrupts (per IRQ) hencforth referred to as L1/L2 interrupts.
      
      CPU flags register STATUS32 has Interrupt Enable bits per level (E1/E2)
      to globally enable (or disable) all IRQs at a level. Hence the
      implementation of arch_local_irq_{save,restore,enable,disable}( )
      
      The STATUS32 reg can be r/w only using the AUX Interface of ARC, hence
      the use of LR/SR instructions. Further, E1/E2 bits in there can only be
      updated using the FLAG insn.
      
      The intc supports 32 interrupts - and per IRQ enabling is controlled by
      a bit in the AUX_IENABLE register, hence the implmentation of
      arch_{,un}mask_irq( ) routines.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      ac4c244d