Commit 8275b77a1513 ("mfd: rts5249: Add support for RTS5250S power
saving") adds powersaving support for device-ids 5249 524a and 525a.
But as a side effect it breaks ASPM support for all the other device-ids,
causing e.g. the Haswell CPU on a Lenovo T440s to not go into a higher
c-state then PC3, while previously it would go to PC7, causing the
machine to idle at 7.4W instead of 6.6W!
The problem here is the new option.dev_aspm_mode field, which only gets
explicitly initialized in the new code for the device-ids 5249 524a and
525a. Leaving the dev_aspm_mode 0 for the other device-ids.
The default dev_aspm_mode 0 is mapped to DEV_ASPM_DISABLE, but the
old behavior of calling rtsx_pci_enable_aspm() when idle and
rtsx_pci_disable_aspm() when busy happens when dev_aspm_mode ==
DEV_ASPM_DYNAMIC.
This commit changes the enum so that 0 = DEV_ASPM_DYNAMIC matching the
old default behavior, fixing the pm regression with the other device-ids.
Fixes: 8275b77a1513 ("mfd: rts5249: Add support for RTS5250S power saving")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Rui Feng <rui_feng@realsil.com.cn>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
|
||
|---|---|---|
| .. | ||
| abx500 | ||
| arizona | ||
| da9052 | ||
| da9055 | ||
| da9062 | ||
| da9063 | ||
| da9150 | ||
| mt6323 | ||
| mt6397 | ||
| pcf50633 | ||
| samsung | ||
| syscon | ||
| wm831x | ||
| wm8350 | ||
| wm8994 | ||
| 88pm80x.h | ||
| 88pm860x.h | ||
| aat2870.h | ||
| ab3100.h | ||
| abx500.h | ||
| ac100.h | ||
| adp5520.h | ||
| altera-a10sr.h | ||
| as3711.h | ||
| as3722.h | ||
| asic3.h | ||
| atmel-hlcdc.h | ||
| axp20x.h | ||
| bcm590xx.h | ||
| bd9571mwv.h | ||
| core.h | ||
| cros_ec_commands.h | ||
| cros_ec_lpc_mec.h | ||
| cros_ec_lpc_reg.h | ||
| cros_ec.h | ||
| da8xx-cfgchip.h | ||
| da903x.h | ||
| davinci_voicecodec.h | ||
| db8500-prcmu.h | ||
| dbx500-prcmu.h | ||
| dln2.h | ||
| dm355evm_msp.h | ||
| ds1wm.h | ||
| ezx-pcap.h | ||
| hi655x-pmic.h | ||
| hi6421-pmic.h | ||
| htc-pasic3.h | ||
| imx25-tsadc.h | ||
| intel_msic.h | ||
| intel_soc_pmic_bxtwc.h | ||
| intel_soc_pmic.h | ||
| ipaq-micro.h | ||
| janz.h | ||
| kempld.h | ||
| lm3533.h | ||
| lp873x.h | ||
| lp3943.h | ||
| lp8788-isink.h | ||
| lp8788.h | ||
| lp87565.h | ||
| lpc_ich.h | ||
| max8907.h | ||
| max8925.h | ||
| max8997-private.h | ||
| max8997.h | ||
| max8998-private.h | ||
| max8998.h | ||
| max14577-private.h | ||
| max14577.h | ||
| max77620.h | ||
| max77686-private.h | ||
| max77686.h | ||
| max77693-common.h | ||
| max77693-private.h | ||
| max77693.h | ||
| max77843-private.h | ||
| mc13xxx.h | ||
| mc13783.h | ||
| mc13892.h | ||
| mcp.h | ||
| menelaus.h | ||
| motorola-cpcap.h | ||
| mxs-lradc.h | ||
| palmas.h | ||
| qcom_rpm.h | ||
| rc5t583.h | ||
| rdc321x.h | ||
| retu.h | ||
| rk808.h | ||
| rn5t618.h | ||
| rt5033-private.h | ||
| rt5033.h | ||
| rtsx_common.h | ||
| rtsx_pci.h | ||
| rtsx_usb.h | ||
| si476x-core.h | ||
| si476x-platform.h | ||
| si476x-reports.h | ||
| sky81452.h | ||
| smsc.h | ||
| sta2x11-mfd.h | ||
| stm32-lptimer.h | ||
| stm32-timers.h | ||
| stmpe.h | ||
| stw481x.h | ||
| sun4i-gpadc.h | ||
| syscon.h | ||
| t7l66xb.h | ||
| tc3589x.h | ||
| tc6387xb.h | ||
| tc6393xb.h | ||
| ti_am335x_tscadc.h | ||
| ti-lmu-register.h | ||
| ti-lmu.h | ||
| tmio.h | ||
| tps6105x.h | ||
| tps6507x.h | ||
| tps6586x.h | ||
| tps65010.h | ||
| tps65086.h | ||
| tps65090.h | ||
| tps65217.h | ||
| tps65218.h | ||
| tps65910.h | ||
| tps65912.h | ||
| tps68470.h | ||
| tps80031.h | ||
| twl4030-audio.h | ||
| twl6040.h | ||
| twl.h | ||
| ucb1x00.h | ||
| viperboard.h | ||
| wl1273-core.h | ||
| wm97xx.h | ||
| wm8400-audio.h | ||
| wm8400-private.h | ||
| wm8400.h | ||