1. 28 10月, 2015 1 次提交
    • V
      ARC: smp: irqchip: handle IPI as percpu irq like timer · e0868e6f
      Vineet Gupta 提交于
      The reason this was not done so far was lack of genuine IPI_IRQ for
      ARC700, as we don't have a SMP version of core yet (which might change
      soon thx to EZChip). Nevertheles to increase the build coverage, we
      need to allow CONFIG_SMP for ARC700 and still be able to run it on a
      UP platform (nsim or AXS101) with a UP Device Tree (SMP-on-UP)
      
      The build itself requires some define for IPI_IRQ and even a dummy
      value is fine since that code won't run anyways.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      e0868e6f
  2. 22 6月, 2015 2 次提交
  3. 23 7月, 2014 1 次提交
  4. 03 6月, 2014 1 次提交
  5. 05 5月, 2014 1 次提交
  6. 06 11月, 2013 2 次提交
    • C
      arc: remove '__init' for get_hw_config_num_irq() · 4782f7f9
      Chen Gang 提交于
      get_hw_config_num_irq() may be called by normal iss_model_init_smp()
      which is a function pointer for 'init_smp' which may be called by
      first_lines_of_secondary() which also need be normal too.
      
      The related warning (with allmodconfig):
      
          MODPOST vmlinux.o
        WARNING: vmlinux.o(.text+0x5814): Section mismatch in reference from the function iss_model_init_smp() to the function .init.text:get_hw_config_num_irq()
        The function iss_model_init_smp() references
        the function __init get_hw_config_num_irq().
        This is often because iss_model_init_smp lacks a __init
        annotation or the annotation of get_hw_config_num_irq is wrong.
      Signed-off-by: NChen Gang <gang.chen@asianux.com>
      4782f7f9
    • C
      arc: remove '__init' for setup_processor() and arc_init_IRQ() · ef3a661a
      Chen Gang 提交于
      They haven't '__init' in definition, but has '__init' in declaration.
      And normal function start_kernel_secondary() may call setup_processor()
      which will call arc_init_IRQ().
      
      So need remove '__init' for both of them. The related warning (with
      allmodconfig):
      
          MODPOST vmlinux.o
        WARNING: vmlinux.o(.text+0x3084): Section mismatch in reference from the function start_kernel_secondary() to the function .init.text:setup_processor()
        The function start_kernel_secondary() references
        the function __init setup_processor().
        This is often because start_kernel_secondary lacks a __init
        annotation or the annotation of setup_processor is wrong.
      Signed-off-by: NChen Gang <gang.chen@asianux.com>
      ef3a661a
  7. 27 6月, 2013 1 次提交
    • P
      arc: delete __cpuinit usage from all arc files · ce759956
      Paul Gortmaker 提交于
      The __cpuinit type of throwaway sections might have made sense
      some time ago when RAM was more constrained, but now the savings
      do not offset the cost and complications.  For example, the fix in
      commit 5e427ec2 ("x86: Fix bit corruption at CPU resume time")
      is a good example of the nasty type of bugs that can be created
      with improper use of the various __init prefixes.
      
      After a discussion on LKML[1] it was decided that cpuinit should go
      the way of devinit and be phased out.  Once all the users are gone,
      we can then finally remove the macros themselves from linux/init.h.
      
      Note that some harmless section mismatch warnings may result, since
      notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
      are flagged as __cpuinit  -- so if we remove the __cpuinit from
      arch specific callers, we will also get section mismatch warnings.
      As an intermediate step, we intend to turn the linux/init.h cpuinit
      content into no-ops as early as possible, since that will get rid
      of these warnings.  In any case, they are temporary and harmless.
      
      This removes all the arch/arc uses of the __cpuinit macros from
      all C files.  Currently arc does not have any __CPUINIT used in
      assembly files.
      
      [1] https://lkml.org/lkml/2013/5/20/589
      
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      ce759956
  8. 07 5月, 2013 1 次提交
  9. 16 2月, 2013 4 次提交
  10. 11 2月, 2013 2 次提交
    • V
      ARC: Timers/counters/delay management · d8005e6b
      Vineet Gupta 提交于
      ARC700 includes 2 in-core 32bit timers TIMER0 and TIMER1.
      Both have exactly same capabilies.
      
      * programmable to count from TIMER<n>_CNT to TIMER<n>_LIMIT
      * for count 0 and LIMIT ~1, provides a free-running counter by
          auto-wrapping when limit is reached.
      * optionally interrupt when LIMIT is reached (oneshot event semantics)
      * rearming the interrupt provides periodic semantics
      * run at CPU clk
      
      ARC Linux uses TIMER0 for clockevent (periodic/oneshot) and TIMER1 for
      clocksource (free-running clock).
      
      Newer cores provide RTSC insn which gives a 64bit cpu clk snapshot hence
      is more apt for clocksource when available.
      
      SMP poses a bit of challenge for global timekeeping clocksource /
      sched_clock() backend:
       -TIMER1 based local clocks are out-of-sync hence can't be used
        (thus we default to jiffies based cs as well as sched_clock() one/both
        of which platform can override with it's specific hardware assist)
       -RTSC is only allowed in SMP if it's cross-core-sync (Kconfig glue
        ensures that) and thus usable for both requirements.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      d8005e6b
    • V
      ARC: Interrupt Handling · bacdf480
      Vineet Gupta 提交于
      This contains:
      -bootup arch IRQ init: init_IRQ(), arc_init_IRQ()
      -generic IRQ subsystem glue: arch_do_IRQ()
      -basic IRQ chip setup for in-core intc
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      bacdf480