21 Jun, 2005

2 commits


10 Jun, 2005

1 commit

  • 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: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

29 May, 2005

1 commit

  • 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: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

26 May, 2005

2 commits


02 May, 2005

1 commit


01 May, 2005

1 commit


17 Apr, 2005

4 commits