1. 16 Oct, 2009 7 commits
    • Paul Mundt's avatar
      sh: Idle loop chainsawing for SMP-based light sleep. · f533c3d3
      Paul Mundt authored
      This does a bit of chainsawing of the idle loop code to get light sleep
      working on SMP. Previously this was forcing secondary CPUs in to sleep
      mode with them not coming back if they didn't have their own local
      timers. Given that we use clockevents broadcasting by default, the CPU
      managing the clockevents can't have IRQs disabled before entering its
      sleep state.
      
      This unfortunately leaves us with the age-old need_resched() race in
      between local_irq_enable() and cpu_sleep(), but at present this is
      unavoidable. After some more experimentation it may be possible to layer
      on SR.BL bit manipulation over top of this scheme to inhibit the race
      condition, but given the current potential for missing wakeups, this is
      left as a future exercise.
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      f533c3d3
    • Paul Mundt's avatar
      sh: Force boot CPU in to light sleep mode for SH-X3 SMP. · 94eab0bb
      Paul Mundt authored
      All of the secondary CPUs are forced in to light sleep mode, but we were
      missing the same initialization for the boot CPU. This resulted in
      inconsistent sleep modes depending on which CPU we were on, confusing the
      idle loop when not polling.
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      94eab0bb
    • Paul Mundt's avatar
      Merge branch 'sh/stable-updates' · abeaf33a
      Paul Mundt authored
      Conflicts:
      	arch/sh/mm/cache-sh4.c
      abeaf33a
    • Thomas Gleixner's avatar
      sh: Remove BKL from landisk gio. · 52a94909
      Thomas Gleixner authored
      The open function got the BKL via the big push down. Replace it by
      preempt_enable/disable as this is sufficient for an UP machine.
      
      The ioctl can be unlocked because there is no functionality which
      requires serialization. The usage by multiple callers is broken with
      and without the BKL due to the local static variable addr.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      52a94909
    • Magnus Damm's avatar
      sh: disabled cache handling fix. · 5fb80ae8
      Magnus Damm authored
      Add code to handle the cache disabled case. Fixes breakage introduced by
      37443ef3 ("sh: Migrate SH-4 cacheflush
      ops to function pointers."). Without this patch configuring caches off
      with CONFIG_CACHE_OFF=y makes kfr2r09 and migo-r lock up in fbdev
      deferred io or early user space.
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      5fb80ae8
    • Valentin Sitdikov's avatar
      sh: Fix up single page flushing to use PAGE_SIZE. · a7a7c0e1
      Valentin Sitdikov authored
      Presently The SH-4 cache flushing code uses flush_cache_4096() for most
      of the real flushing work, which breaks down to a fixed 4096 unroll and
      increment. Not only is this sub-optimal for larger page sizes, it's also
      uncovered a bug in sh4_flush_dcache_page() when large page sizes are used
      and we have no cache aliases -- resulting in only a part of the page's
      D-cache lines being written back.
      Signed-off-by: default avatarValentin Sitdikov <valentin.sitdikov@siemens.com>
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      a7a7c0e1
    • Linus Torvalds's avatar
      Linux 2.6.32-rc5 · 012abeea
      Linus Torvalds authored
      012abeea
  2. 15 Oct, 2009 23 commits
  3. 14 Oct, 2009 10 commits