linux-stable/drivers/mfd
Fabrice Gasnier ba411a8609 mfd: stm32-timers: Avoid clearing auto reload register
[ Upstream commit 4917e498c6 ]

The ARR register is cleared unconditionally upon probing, after the maximum
value has been read. This initial condition is rather not intuitive, when
considering the counter child driver. It rather expects the maximum value
by default:
- The counter interface shows a zero value by default for 'ceiling'
  attribute.
- Enabling the counter without any prior configuration makes it doesn't
  count.

The reset value of ARR register is the maximum. So Choice here
is to backup it, and restore it then, instead of clearing its value.
It also fixes the initial condition seen by the counter driver.

Fixes: d0f949e220 ("mfd: Add STM32 Timers driver")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-05-22 10:57:31 +02:00
..
88pm80x.c
88pm800.c
88pm805.c
88pm860x-core.c mfd: 88pm860x: Move over to new I2C device .probe() call 2016-11-17 16:10:24 +01:00
88pm860x-i2c.c mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT) 2018-09-26 08:38:12 +02:00
aat2870-core.c
ab3100-core.c mfd: ab3100-core: Make it explicitly non-modular 2016-11-29 08:21:29 +00:00
ab3100-otp.c
ab8500-core.c mfd: ab8500-core: Return zero in get_register_interruptible() 2019-02-27 10:08:02 +01:00
ab8500-debugfs.c mfd: ab8500-debugfs: Make it explicitly non-modular 2016-11-29 08:21:30 +00:00
ab8500-gpadc.c mfd: ab8500-gpadc: Make it explicitly non-modular 2016-11-29 08:21:31 +00:00
ab8500-sysctrl.c mfd: ab8500-sysctrl: Handle probe deferral 2017-02-13 09:29:43 +00:00
abx500-core.c mfd: abx500-core: drop unused MODULE_ tags from non-modular code 2016-11-29 08:21:32 +00:00
ac100.c mfd: ac100: Add driver for X-Powers AC100 audio codec / RTC combo IC 2016-08-08 12:53:26 +01:00
act8945a.c mfd: act8945a: Add .of_compatible for act8945a-charger 2016-10-04 15:48:03 +01:00
adp5520.c
altera-a10sr.c mfd: altr_a10sr: Add Arria10 DevKit Reset Controller 2017-04-27 09:25:04 +01:00
arizona-core.c mfd: arizona: Ensure 32k clock is put on driver unbind and error 2020-08-21 09:48:20 +02:00
arizona-i2c.c
arizona-irq.c mfd: arizona: Correctly clean up after IRQs 2017-02-13 09:29:40 +00:00
arizona-spi.c
arizona.h mfd: arizona: Remove totally unused forward declaration 2017-02-13 09:29:40 +00:00
as3711.c
as3722.c mfd: as3722: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 08:24:46 +01:00
asic3.c mfd: asic3: Make use of raw_spinlock variants 2017-04-27 09:25:05 +01:00
atmel-flexcom.c mfd: atmel: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
atmel-hlcdc.c mfd: atmel-hlcdc: Do not sleep in atomic context 2016-10-04 15:48:04 +01:00
atmel-smc.c mfd: syscon: atmel-smc: Add helper to retrieve register layout 2017-09-05 08:46:01 +01:00
axp20x-i2c.c mfd: axp20x-i2c: Add i2c-ids to fix module auto-loading 2016-11-29 08:21:25 +00:00
axp20x-rsb.c mfd: axp20x: Add support for AXP813 PMIC 2017-09-05 08:46:00 +01:00
axp20x.c mfd: axp20x: Use correct platform device ID for many PEK 2017-09-05 08:46:01 +01:00
bcm590xx.c mfd: bcm590xx: Simplify a test 2016-11-29 08:21:33 +00:00
bd9571mwv.c mfd: bd9571mwv: Use devm_mfd_add_devices() 2021-03-03 18:22:45 +01:00
cros_ec.c mfd: cros_ec: Fail early if we cannot identify the EC 2018-08-03 07:50:27 +02:00
cros_ec_acpi_gpe.c mfd: cros_ec: Add ACPI GPE handler for LID0 devices 2017-04-27 09:25:03 +01:00
cros_ec_i2c.c
cros_ec_spi.c mfd: cros ec: spi: Don't send first message too soon 2017-12-29 17:53:46 +01:00
cs47l24-tables.c mfd: arizona: Mark AIFx_TX_BCLK_RATE as readable for cs47l24 2016-11-21 13:00:18 +00:00
cs5535-mfd.c
da903x.c
da9052-core.c mfd: da9052: Fix manual ADC read after timed out read 2017-09-05 08:46:00 +01:00
da9052-i2c.c
da9052-irq.c
da9052-spi.c mfd: da9052: Constify spi_device_id 2017-09-05 08:46:01 +01:00
da9055-core.c
da9055-i2c.c mfd: da9055: Constify i2c_device_id 2017-09-05 08:46:01 +01:00
da9062-core.c mfd: da9062: Fix watchdog compatible string 2020-02-14 16:32:18 -05:00
da9063-core.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9063-i2c.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9063-irq.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9150-core.c
davinci_voicecodec.c mfd: davinci_voicecodec: Tidyup header difinitions 2016-11-29 08:21:27 +00:00
db8500-prcmu.c mfd: db8500-prcmu: Fix some section annotations 2019-02-27 10:08:02 +01:00
dbx500-prcmu-regs.h
dln2.c mfd: dln2: Run event handler loop under spinlock 2020-08-21 09:48:22 +02:00
dm355evm_msp.c mfd: dm355evm_msp: Move header file out of I2C realm 2017-08-15 08:06:14 +01:00
exynos-lpass.c mfd: exynos: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
ezx-pcap.c
fsl-imx25-tsadc.c mfd: fsl-imx25: Clean up irq settings during removal 2017-12-20 10:10:16 +01:00
hi655x-pmic.c mfd: hi655x-pmic: Fix missing return value check for devm_regmap_init_mmio_clk 2019-07-31 07:28:53 +02:00
hi6421-pmic-core.c mfd: hi6421-pmic: Add support for HiSilicon Hi6421v530 2017-09-05 08:46:00 +01:00
htc-i2cpld.c mfd: htc-i2cpld: Use gpiochip data pointer 2016-04-19 07:58:30 +01:00
htc-pasic3.c
intel-lpss-acpi.c mfd: intel-lpss: Remove left over variable 2017-04-27 09:25:04 +01:00
intel-lpss-pci.c mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs 2020-09-03 11:22:24 +02:00
intel-lpss.c mfd: intel-lpss: Release IDA resources 2020-01-27 14:46:39 +01:00
intel-lpss.h
intel_msic.c mfd: intel_msic: Make it explicitly non-modular 2016-10-04 15:48:03 +01:00
intel_quark_i2c_gpio.c mfd: intel_quark_i2c_gpio: Add support for SIMATIC IOT2000 platform 2017-07-06 08:29:12 +01:00
intel_soc_pmic_bxtwc.c mfd: intel_soc_pmic_bxtwc: Chain power button IRQs as well 2019-12-01 09:13:45 +01:00
intel_soc_pmic_chtwc.c mfd: Add Cherry Trail Whiskey Cove PMIC driver 2017-07-06 08:29:13 +01:00
intel_soc_pmic_core.c mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants 2017-09-05 08:46:02 +01:00
intel_soc_pmic_core.h mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT 2017-09-05 08:46:02 +01:00
intel_soc_pmic_crc.c mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT 2017-09-05 08:46:02 +01:00
ipaq-micro.c mfd: ipaq-micro: Dump debugging hexdumps 2017-07-06 08:29:11 +01:00
janz-cmodio.c
jz4740-adc.c
Kconfig mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants 2017-09-05 08:46:02 +01:00
kempld-core.c dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
lm3533-core.c
lm3533-ctrlbank.c
lp873x.c mfd: lp873x: Remove unused mutex lock from struct lp873x 2016-10-04 15:48:04 +01:00
lp3943.c
lp8788-irq.c
lp8788.c
lp87565.c mfd: lp87565: Convert to use devm_mfd_add_devices() 2017-09-05 08:46:01 +01:00
lpc_ich.c mfd: lpc_ich: Avoton/Rangeley uses SPI_BYT method 2017-11-30 08:40:49 +00:00
lpc_sch.c
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
max8907.c
max8925-core.c
max8925-i2c.c mfd: max8925-i2c: Drop unnecessary static 2017-09-05 08:46:00 +01:00
max8997-irq.c mfd: max8997-irq: 'inline' should be at the beginning of the declaration 2016-10-04 15:48:05 +01:00
max8997.c mfd: max8997: Enale irq-wakeup unconditionally 2019-12-01 09:13:46 +01:00
max8998-irq.c
max8998.c mfd: max8998: Fix potential NULL pointer dereference 2017-09-05 08:46:00 +01:00
max14577.c mfd: max14577: Change Krzysztof Kozlowski's email to kernel.org 2016-10-04 15:48:02 +01:00
max77620.c treewide: Fix printk() message errors 2016-12-14 10:54:27 +01:00
max77686.c mfd: max77686: Remove I2C device ID table 2017-02-13 09:29:43 +00:00
max77693.c mfd: max77686/max77693: Fix misspelled Samsung address 2016-04-19 07:59:14 +01:00
max77843.c mfd: max77843: Make it explicitly non-modular 2016-06-29 10:14:28 +01:00
mc13xxx-core.c mfd: mc13xxx-core: Fix PMIC shutdown when reading ADC values 2019-12-01 09:13:45 +01:00
mc13xxx-i2c.c
mc13xxx-spi.c
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c mfd: menelaus: Fix possible race condition and leak 2018-11-13 11:15:00 -08:00
menf21bmc.c
mfd-core.c mfd: mfd-core: Protect against NULL call-back function pointer 2020-10-01 13:12:28 +02:00
motorola-cpcap.c mfd: motorola-cpcap: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
mt6397-core.c mfd: mt6397: Do not call irq_domain_remove if PMIC unsupported 2019-02-27 10:08:02 +01:00
mxs-lradc.c mfd: mxs-lradc: Fix error handling in mxs_lradc_probe() 2017-12-20 10:10:33 +01:00
omap-usb-host.c mfd: omap-usb-host: Fix dts probe of children 2018-10-18 09:16:21 +02:00
omap-usb-tll.c mfd: omap-usb-tll: Fix register offsets 2017-09-05 08:46:02 +01:00
omap-usb.h
palmas.c mfd: palmas: Assign the right powerhold mask for tps65917 2019-11-12 19:18:19 +01:00
pcf50633-adc.c
pcf50633-core.c
pcf50633-gpio.c
pcf50633-irq.c
qcom-pm8xxx.c mfd: pm8xxx: add support to pm8821 2016-11-29 08:21:36 +00:00
qcom-spmi-pmic.c mfd: qcom-spmi-pmic: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
qcom_rpm.c mfd: qcom_rpm: write fw_version to CTRL_REG 2019-02-27 10:08:03 +01:00
rc5t583-irq.c mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq 2016-05-09 13:27:38 +01:00
rc5t583.c mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq 2016-05-09 13:27:38 +01:00
rdc321x-southbridge.c
retu-mfd.c mfd: retu: Add OF device ID table 2017-07-18 08:27:18 +01:00
rk808.c mfd: rk808: Add RK805 power key support 2017-08-21 08:54:56 +01:00
rn5t618.c mfd: rn5t618: Mark ADC control register volatile 2020-02-14 16:32:18 -05:00
rt5033.c
rtl8411.c
rts5209.c
rts5227.c misc: rtsx: set correct pcr_ops for rts522A 2020-04-24 08:00:31 +02:00
rts5229.c
rts5249.c
rtsx_pcr.c misc: rtsx: Fix memory leak in rtsx_pci_probe 2020-10-29 09:07:17 +01:00
rtsx_pcr.h
rtsx_usb.c mfd: rtsx_usb: Avoid setting ucr->current_sg.status 2016-10-04 15:48:02 +01:00
sec-core.c mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 13:27:38 +01:00
sec-irq.c mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 13:27:38 +01:00
si476x-cmd.c
si476x-i2c.c mfd: si476x-i2c: Fix spelling mistakes "Failet" and "gett" 2016-11-29 08:21:29 +00:00
si476x-prop.c
sky81452.c mfd: sky81452: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:28 +01:00
sm501.c mfd: sm501: Fix leaks in probe() 2020-10-29 09:07:06 +01:00
smsc-ece1099.c mfd: smsc-ece: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
ssbi.c
sta2x11-mfd.c mfd: Convert remaining uses of pr_warning to pr_warn 2017-04-27 09:25:05 +01:00
stm32-lptimer.c mfd: Add STM32 LPTimer driver 2017-09-04 14:49:04 +01:00
stm32-timers.c mfd: stm32-timers: Avoid clearing auto reload register 2021-05-22 10:57:31 +02:00
stmpe-i2c.c mfd: Add STMPE1600 support 2016-08-10 09:25:18 +01:00
stmpe-spi.c
stmpe.c mfd: stmpe: Fix bit clearing on STMPE1600 2017-04-27 09:25:07 +01:00
stmpe.h mfd: Add STMPE1600 support 2016-08-10 09:25:18 +01:00
stw481x.c mfd: stw481x: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:35 +01:00
sun4i-gpadc.c mfd: sun4i-gpadc: Fix 'cast from pointer to integer of different size' warning 2016-11-29 08:21:26 +00:00
sun6i-prcm.c mfd: sun6i-prcm: Add codec analog controls sub-device for Allwinner A23 2017-02-13 09:29:40 +00:00
syscon.c mfd: syscon: Support native-endian regmaps 2016-11-29 08:21:25 +00:00
t7l66xb.c mfd: t7l66xb: Handle return value of clk_prepare_enable 2017-09-05 08:46:01 +01:00
tc3589x.c mfd: tc3589x: Improve function-level documentation 2016-11-29 08:21:19 +00:00
tc6387xb.c
tc6393xb.c mfd: tc6393xb: Handle return value of clk_prepare_enable 2017-07-06 08:29:12 +01:00
ti-lmu.c mfd: Add TI LMU driver 2017-04-27 09:25:04 +01:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup capable 2019-11-24 08:23:24 +01:00
timberdale.c Input: tsc2007 - move header file out of I2C realm 2017-05-22 17:26:58 -07:00
timberdale.h
tmio_core.c
tps6105x.c mfd: tps6105x: Add OF device ID table 2017-07-18 08:27:37 +01:00
tps6507x.c mfd: tps6507: Fix white space warnings reported by checkpatch 2016-06-29 10:14:35 +01:00
tps6586x.c mfd: tps6586x: Handle interrupts on suspend 2019-01-23 08:09:49 +01:00
tps65010.c mfd: tps65010: Move header file out of I2C realm 2017-08-15 08:27:22 +01:00
tps65086.c
tps65090.c
tps65217.c mfd: tps65217: Support an interrupt pin as the system wakeup 2016-11-29 08:21:40 +00:00
tps65218.c mfd: tps65218: Use devm_regmap_add_irq_chip and clean up error path in probe() 2019-02-27 10:08:03 +01:00
tps65910.c regulator: tps65910: wire up sleep control configuration 2017-06-15 18:23:27 +01:00
tps65911-comparator.c
tps65912-core.c mfd: tps65912: Move regmap config into core driver 2016-11-29 08:21:21 +00:00
tps65912-i2c.c mfd: tps65912: Export OF device ID table as module aliases 2017-02-13 09:29:43 +00:00
tps65912-spi.c mfd: tps65912-spi: Add missing of table registration 2019-06-15 11:54:52 +02:00
tps68470.c mfd: Add support for TPS68470 device 2017-09-05 08:46:01 +01:00
tps80031.c
twl-core.c mfd: twl-core: Fix section annotations on {,un}protect_pm_master 2019-02-27 10:08:02 +01:00
twl-core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
twl4030-audio.c mfd: twl4030-audio: Fix sibling-node lookup 2017-12-29 17:53:46 +01:00
twl4030-irq.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl4030-power.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl6030-irq.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl6040.c mfd: twl6040: Fix device init errors for ACCCTL register 2019-06-15 11:54:52 +02:00
ucb1x00-assabet.c
ucb1x00-core.c mfd: ucb1x00: Remove NO_IRQ check 2016-10-04 15:48:03 +01:00
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c mfd: vexpress-sysreg: Switch to gpiochip_add_data() 2016-04-19 07:59:06 +01:00
viperboard.c
vx855.c
wl1273-core.c mfd: wl1273-core: Use devm_mfd_add_devices() for mfd_device registration 2016-05-09 13:27:39 +01:00
wm831x-auxadc.c mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq() 2021-03-03 18:22:47 +01:00
wm831x-core.c mfd: wm831x: Remove redundant !pdata checks 2017-07-06 08:29:11 +01:00
wm831x-i2c.c mfd: wm831x-i2c: Add NULL check before pointer dereference 2017-07-06 08:29:11 +01:00
wm831x-irq.c mfd: wm831x: Add basic device tree binding 2017-03-23 11:45:50 +00:00
wm831x-otp.c
wm831x-spi.c mfd: wm831x-spi: Add NULL check before pointer dereference 2017-07-06 08:29:11 +01:00
wm5102-tables.c mfd: wm5102: Remove spurious trailing spaces 2016-11-29 08:21:26 +00:00
wm5110-tables.c mfd: wm5110: Add missing ASRC rate register 2019-02-27 10:08:03 +01:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c mfd: Use IS_ENABLED(CONFIG_FOO) instead of checking FOO || FOO_MODULE 2016-05-09 08:23:56 +01:00
wm8994-core.c mfd: wm8994: Fix driver operation if loaded as modules 2020-06-25 15:41:49 +02:00
wm8994-irq.c
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c