1. 28 6月, 2005 1 次提交
    • B
      [PATCH] ppc32: Bump PMU interrupt priority · e4ee69c8
      Benjamin Herrenschmidt 提交于
      The Power Management Unit on PowerMacs is very sensitive to timeouts during
      async message exchanges.  It uses rather crude protocol based on a shift
      register with an interrupt and is almost continuously exchanging messages with
      the host CPU on laptops.
      
      This patch adds a routine to the open_pic driver to be able to select a PMU
      driver so that it bumps it's interrupt priority to above the normal level.
      
      This will allow PMU interrupts to occur while another interrupt is pending,
      and thus reduce the risk of machine beeing abruptly shutdown by the PMU due to
      a timeout in PMU communication caused by excessive interrupt latency.  The
      problem is very rare, and usually just doesn't happen, but it is still useful
      to make things even more robust.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e4ee69c8
  2. 10 6月, 2005 1 次提交
    • B
      [PATCH] ppc32: Fix nasty sleep/wakeup problem · 0086b5ec
      Benjamin Herrenschmidt 提交于
      Despite all the care lately in making the powermac sleep/wakeup as
      robust as possible, there is still a nasty related to the use of cpufreq
      on PMU based machines.  Unfortunately, it affects paulus old powerbook
      so I have to fix it :)
      
      We didn't manage to understand what is precisely going on, it leads to
      memory corruption and might have to do with RAM not beeing properly
      refreshed when a cpufreq transition is done right before the sleep.
      
      The best workaround (and less intrusive at this point) we could come up
      with is included in this patch.  We basically do _not_ force a switch to
      high speed on suspend anymore (that is what is causing the problem) on
      those machines.  We still force a speed switch on wakeup (since we don't
      know what speed we are coming back from sleep at, and that seems to work
      fine).
      
      Since, during this short interval, the actual CPU speed might be
      incorrect, we also hack around by multiplying loops_per_jiffy by 2 (max
      speed factor on those machines) during early wakeup stage to make sure
      udelay's during that time aren't too short.
      
      For after 2.6.12, we'll change udelay implementation to use the CPU
      timebase (which is always constant) instead like we do on ppc64 and thus
      get rid of all those problems.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0086b5ec
  3. 29 5月, 2005 1 次提交
    • B
      [PATCH] ppc32: Fix cpufreq vs. sleep issue · b16eeb47
      Benjamin Herrenschmidt 提交于
      Recent kernels occasionally trigger a PMU timeout on some mac laptops,
      typically on wakeup from sleep.  This seem to be caused by either a too big
      latency caused by the cpufreq switch on wakeup from sleep or by an
      interrupt beeing lost due to the reset of the interrupt controller done
      during wakeup.
      
      This patch makes that code more robust by stopping PMU auto poll activity
      around cpufreq changes on machines that use the PMU for such changes (long
      latency switching involving a CPU hard reset and flush of all caches) and
      by removing the reset of the open pic interrupt controller on wakeup (that
      can cause the loss of an interrupt and Darwin doesn't do it, so it must not
      be necessary).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b16eeb47
  4. 02 5月, 2005 1 次提交
  5. 17 4月, 2005 3 次提交