android_kernel_motorola_sm6375/drivers/pwm
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hans de Goede 4743765bab pwm: lpss: Force runtime-resume on suspend on Cherry Trail
On Cherry Trail devices under Windows the PWM controller used for the
backlight is considered part of the GPU even though it is part of the LPSS
block and thus is an entirely different independent hardware unit.

Because of this on Cherry Trail the GPU's (GFX0 ACPI node) _PS3 and _PS0
methods save and restore the PWM controller registers.

If userspace blanks the screen before suspending, such as e.g. GNOME
does, then the PWM controller will be runtime-suspended when the suspend
starts. This causes the GFX0 _PS? methods to save a value of 0xffffffff
for the PWM control register and to restore this value on resume.

0xffffffff is not a valid value for the register and writing this causes
problems such as e.g. a flickering backlight.

This commit adds a prepare method to the dev_pm_ops and makes it return 0
on Cherry Trail devices forcing a runtime-resume before other device's
suspend methods run. This fixes the reading and writing back of 0xffffffff.

Since we now always runtime-resume the device on suspend, it will be
resumed on resume too and we no longer need to check for the GFX0 _PS0
method having resumed it underneath us, so this commit removes the now no
longer necessary complete dev_pm_op.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2018-10-16 13:15:57 +02:00
..
core.c
Kconfig pwm: Enable TI ECAP driver for ARCH_K3 2018-10-16 13:14:52 +02:00
Makefile pwm: remove pwm-bfin driver 2018-03-26 15:57:08 +02:00
pwm-ab8500.c
pwm-atmel-hlcdc.c
pwm-atmel-tcb.c pwm: simplify getting .drvdata 2018-04-30 10:40:57 +02:00
pwm-atmel.c
pwm-bcm-iproc.c
pwm-bcm-kona.c
pwm-bcm2835.c
pwm-berlin.c pwm: berlin: Don't use broken prescaler values 2018-07-09 18:57:03 +02:00
pwm-brcmstb.c
pwm-clps711x.c
pwm-crc.c
pwm-cros-ec.c pwm: cros-ec: Switch to SPDX identifier 2018-07-09 19:02:23 +02:00
pwm-ep93xx.c
pwm-fsl-ftm.c pwm: fsl-ftm: Enable support for the new SoC i.MX8QM 2018-07-09 19:08:26 +02:00
pwm-hibvt.c
pwm-img.c
pwm-imx.c pwm: imx: Switch to SPDX identifier 2018-07-09 18:59:14 +02:00
pwm-jz4740.c pwm: jz4740: Add support for devicetree 2018-03-28 00:23:56 +02:00
pwm-lp3943.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
pwm-lpc18xx-sct.c
pwm-lpc32xx.c
pwm-lpss-pci.c
pwm-lpss-platform.c pwm: lpss: Force runtime-resume on suspend on Cherry Trail 2018-10-16 13:15:57 +02:00
pwm-lpss.c pwm: lpss: Add get_state callback 2018-10-12 12:33:02 +02:00
pwm-lpss.h pwm: lpss: Force runtime-resume on suspend on Cherry Trail 2018-10-16 13:15:57 +02:00
pwm-mediatek.c pwm: mediatek: Add MT7628 support 2018-08-20 11:36:07 +02:00
pwm-meson.c pwm: meson: Fix mux clock names 2018-08-20 11:32:25 +02:00
pwm-mtk-disp.c
pwm-mxs.c pwm: mxs: Switch to SPDX identifier 2018-07-12 09:03:06 +02:00
pwm-omap-dmtimer.c pwm: omap-dmtimer: Return -EPROBE_DEFER if no dmtimer platform data 2018-08-20 11:32:19 +02:00
pwm-pca9685.c
pwm-puv3.c pwm: puv3: Delete an error message for a failed memory allocation 2018-03-27 23:27:05 +02:00
pwm-pxa.c
pwm-rcar.c pwm: Use SPDX identifier for Renesas drivers 2018-10-12 13:35:45 +02:00
pwm-renesas-tpu.c pwm: Use SPDX identifier for Renesas drivers 2018-10-12 13:35:45 +02:00
pwm-rockchip.c
pwm-samsung.c
pwm-spear.c
pwm-sti.c
pwm-stm32-lp.c pwm: stm32-lp: Remove useless loop in stm32_pwm_lp_remove() 2018-08-20 11:32:25 +02:00
pwm-stm32.c pwm: Changes for v4.18-rc1 2018-06-14 16:25:43 +09:00
pwm-stmpe.c
pwm-sun4i.c pwm: sun4i: Simplify controller mapping 2018-03-28 01:12:12 +02:00
pwm-tegra.c pwm: tegra: Remove gratuituous blank line 2018-09-26 16:01:39 +02:00
pwm-tiecap.c
pwm-tiehrpwm.c pwm: tiehrpwm: Fix disabling of output of PWMs 2018-07-09 18:58:22 +02:00
pwm-tipwmss.c
pwm-twl-led.c
pwm-twl.c
pwm-vt8500.c
pwm-zx.c
sysfs.c pwm: Send a uevent on the pwmchip device upon channel sysfs (un)export 2018-10-12 13:51:33 +02:00