1. 30 6月, 2006 1 次提交
    • I
      [PATCH] genirq: rename desc->handler to desc->chip · d1bef4ed
      Ingo Molnar 提交于
      This patch-queue improves the generic IRQ layer to be truly generic, by adding
      various abstractions and features to it, without impacting existing
      functionality.
      
      While the queue can be best described as "fix and improve everything in the
      generic IRQ layer that we could think of", and thus it consists of many
      smaller features and lots of cleanups, the one feature that stands out most is
      the new 'irq chip' abstraction.
      
      The irq-chip abstraction is about describing and coding and IRQ controller
      driver by mapping its raw hardware capabilities [and quirks, if needed] in a
      straightforward way, without having to think about "IRQ flow"
      (level/edge/etc.) type of details.
      
      This stands in contrast with the current 'irq-type' model of genirq
      architectures, which 'mixes' raw hardware capabilities with 'flow' details.
      The patchset supports both types of irq controller designs at once, and
      converts i386 and x86_64 to the new irq-chip design.
      
      As a bonus side-effect of the irq-chip approach, chained interrupt controllers
      (master/slave PIC constructs, etc.) are now supported by design as well.
      
      The end result of this patchset intends to be simpler architecture-level code
      and more consolidation between architectures.
      
      We reused many bits of code and many concepts from Russell King's ARM IRQ
      layer, the merging of which was one of the motivations for this patchset.
      
      This patch:
      
      rename desc->handler to desc->chip.
      
      Originally i did not want to do this, because it's a big patch.  But having
      both "desc->handler", "desc->handle_irq" and "action->handler" caused a
      large degree of confusion and made the code appear alot less clean than it
      truly is.
      
      I have also attempted a dual approach as well by introducing a
      desc->chip alias - but that just wasnt robust enough and broke
      frequently.
      
      So lets get over with this quickly.  The conversion was done automatically
      via scripts and converts all the code in the kernel.
      
      This renaming patch is the first one amongst the patches, so that the
      remaining patches can stay flexible and can be merged and split up
      without having some big monolithic patch act as a merge barrier.
      
      [akpm@osdl.org: build fix]
      [akpm@osdl.org: another build fix]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d1bef4ed
  2. 20 6月, 2006 4 次提交
    • T
      [MIPS] Random fixes for sb1250 · 4fb60a4b
      Thiemo Seufer 提交于
      Random improvements for sb1250: Silence compiler warnings, a bugfix for
      the profiling code, and a comment typo.
      Signed-off-by: NThiemo Seufer <ths@networkno.de>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      4fb60a4b
    • T
      [MIPS] Fix bcm1480 compile · b75d4c1d
      Thiemo Seufer 提交于
      Fix compilation for bcm1480, a hpt is only available on sb1250/bcm112x.
      Signed-off-by: NThiemo Seufer <ths@networkno.de>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      b75d4c1d
    • R
      [MIPS] Cleanup memory managment initialization. · 2925aba4
      Ralf Baechle 提交于
      Historically plat_mem_setup did the entire platform initialization.  This
      was rather impractical because it meant plat_mem_setup had to get away
      without any kind of memory allocator.  To keep old code from breaking
      plat_setup was just renamed to plat_setup and a second platform
      initialization hook for anything else was introduced.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      2925aba4
    • [
      [PATCH] Fix BCM1480 doubled process accounting times. · e1701fb2
      [MIPS] James E Wilson 提交于
      Running a UP kernel on a bcm1480 board, I get nonsensical timing
      results, like this:
      release@unknown:~/tmp$ time ./a.out
      real    0m22.906s
      user    0m45.792s
      sys     0m0.010s
      According to my watch, this program took 23 seconds to run, so the real
      time clock is OK.  It is process accounting that is broken.
      
      I tracked this down to a problem with the function
      bcm1480_timer_interrupt in the file sibyte/bcm1480/time.c.  This
      function calls ll_timer_interrupt for cpu0, and ll_local_timer_interrupt
      for all cpus.  However, both of these functions do process accounting.
      Thus processes running on cpu0 end up with doubled times.  This is very
      obvious in a UP kernel where all processes run on cpu0.
      
      The correct way to do this is to only call ll_local_timer interrupt if
      this is not cpu0.  This can be seen in the mips-board/generic/time.c
      file, and also in the sibyte/sb1250/time.c file, both of which handle
      this correctly.  I fixed the bcm1480/time.c file by copying over the
      correct code from the sb1250/time.c file.
      
      With this fix, I now get sensible results.
      release@unknown:~/tmp$ time ./a.out
      real    0m22.903s
      user    0m22.894s
      sys     0m0.006s
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e1701fb2
  3. 19 4月, 2006 1 次提交
    • R
      [MIPS] Rewrite all the assembler interrupt handlers to C. · e4ac58af
      Ralf Baechle 提交于
      Saves like 1,600 lines of code, is way easier to debug, compilers
      frequently do a better job than the cut and paste type of handlers many
      boards had.  And finally having all the stuff done in a single place
      also means alot of bug potencial for the MT ASE is gone.
      
      The only surviving handler in assembler is the DECstation one; I hope
      Maciej will rewrite it.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e4ac58af
  4. 28 3月, 2006 1 次提交
  5. 19 3月, 2006 2 次提交
    • R
      [MIPS] Sibyte: Fix race in sb1250_gettimeoffset(). · a904f747
      Ralf Baechle 提交于
          
      From Dave Johnson <djohnson+linuxmips@sw.starentnetworks.com>:
          
      sb1250_gettimeoffset() simply reads the current cpu 0 timer remaining
      value, however once this counter reaches 0 and the interrupt is raised,
      it immediately resets and begins to count down again.
          
      If sb1250_gettimeoffset() is called on cpu 1 via do_gettimeofday() after
      the timer has reset but prior to cpu 0 processing the interrupt and
      taking write_seqlock() in timer_interrupt() it will return a full value
      (or close to it) causing time to jump backwards 1ms. Once cpu 0 handles
      the interrupt and timer_interrupt() gets far enough along it will jump
      forward 1ms.
          
      Fix this problem by implementing mips_hpt_*() on sb1250 using a spare
      timer unrelated to the existing periodic interrupt timers. It runs at
      1Mhz with a full 23bit counter.  This eliminated the custom
      do_gettimeoffset() for sb1250 and allowed use of the generic
      fixed_rate_gettimeoffset() using mips_hpt_*() and timerhi/timerlo.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a904f747
    • R
      [MIPS] Sibyte: Fix interrupt timer off by one bug. · 4308cb16
      Ralf Baechle 提交于
          
      From Dave Johnson <djohnson+linuxmips@sw.starentnetworks.com>:
          
      The timers need to be loaded with 1 less than the desired interval not
      the interval itself.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      4308cb16
  6. 28 2月, 2006 1 次提交
    • R
      [MIPS] SMP: Fix initialization order bug. · 9b6695a8
      Ralf Baechle 提交于
          
      A recent change requires cpu_possible_map to be initialized before
      smp_sched_init() but most MIPS platforms were initializing their
      processors in the prom_prepare_cpus callback of smp_prepare_cpus.  The
      simple fix of calling prom_prepare_cpus from one of the earlier SMP
      initialization hooks doesn't work well either since IPIs may require
      init_IRQ() to have completed, so bit the bullet and split
      prom_prepare_cpus into two initialization functions, plat_smp_setup
      which is called early from setup_arch and plat_prepare_cpus called where
      prom_prepare_cpus used to be called.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      9b6695a8
  7. 22 2月, 2006 2 次提交
  8. 07 2月, 2006 3 次提交
  9. 13 1月, 2006 1 次提交
  10. 08 11月, 2005 1 次提交
  11. 30 10月, 2005 12 次提交
  12. 05 9月, 2005 2 次提交
  13. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4