Since the change of how interrupts are disabled during suspend, certain PowerBook models started exhibiting various issues during suspend or resume from sleep. I finally tracked it down to the code that runs various "platform" functions (kind of little scripts extracted from the device-tree), which uses our i2c and PMU drivers expecting interrutps to work, and at a time where with the new scheme, they have been disabled. This causes timeouts internally which for some reason results in the PMU being unable to see the trackpad, among other issues, really it depends on the machine. Most of the time, we fail to properly adjust some clocks for suspend/resume so the results are not always predictable. This patch fixes it by using IRQF_TIMER for both the PMU and the I2C interrupts. I prefer doing it this way than moving the call sites since I really want those platform functions to still be called after all drivers (and before sysdevs). We also do a slight cleanup to via-pmu.c driver to make sure the ADB autopoll mask is handled correctly when doing bus resets Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
adb-iop.c | ||
adb.c | ||
adbhid.c | ||
ans-lcd.c | ||
ans-lcd.h | ||
apm_emu.c | ||
mac_hid.c | ||
macio-adb.c | ||
macio_asic.c | ||
macio_sysfs.c | ||
mediabay.c | ||
nvram.c | ||
rack-meter.c | ||
smu.c | ||
therm_adt746x.c | ||
therm_pm72.c | ||
therm_pm72.h | ||
therm_windtunnel.c | ||
via-cuda.c | ||
via-macii.c | ||
via-maciisi.c | ||
via-pmu-backlight.c | ||
via-pmu-event.c | ||
via-pmu-event.h | ||
via-pmu-led.c | ||
via-pmu.c | ||
via-pmu68k.c | ||
windfarm.h | ||
windfarm_core.c | ||
windfarm_cpufreq_clamp.c | ||
windfarm_lm75_sensor.c | ||
windfarm_max6690_sensor.c | ||
windfarm_pid.c | ||
windfarm_pid.h | ||
windfarm_pm81.c | ||
windfarm_pm91.c | ||
windfarm_pm112.c | ||
windfarm_pm121.c | ||
windfarm_smu_controls.c | ||
windfarm_smu_sat.c | ||
windfarm_smu_sensors.c |