patch "iio: trigger: stm32-timer: disable master mode when stopping" added to staging-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: trigger: stm32-timer: disable master mode when stopping
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From 29e8c8253d7d5265f58122c0a7902e26df6c6f61 Mon Sep 17 00:00:00 2001
From: Fabrice Gasnier <[email protected]>
Date: Fri, 14 Feb 2020 17:46:35 +0100
Subject: iio: trigger: stm32-timer: disable master mode when stopping
Master mode should be disabled when stopping. This mainly impacts possible other use-case after timer has been stopped. Currently, master mode remains set (from start routine).
--- drivers/iio/trigger/stm32-timer-trigger.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
drivers/iio/trigger/stm32-timer-trigger.c +9 -2
@@ -161,7 +161,8 @@ static int stm32_timer_start(struct stm32_timer_trigger *priv,return 0 ; } -static void stm32_timer_stop (struct stm32_timer_trigger *priv) +static void stm32_timer_stop (struct stm32_timer_trigger *priv, +struct iio_trigger *trig) {u32 ccer, cr1;
@@ -179,6 +180,12 @@ static void stm32_timer_stop(struct stm32_timer_trigger *priv)regmap_write (priv->regmap,TIM_PSC ,0 );regmap_write (priv->regmap,TIM_ARR ,0 ); +/* Force disable master mode */ +if (stm32_timer_is_trgo2_name (trig->name)) +regmap_update_bits (priv->regmap,TIM_CR2 ,TIM_CR2_MMS2 ,0 ); +else +regmap_update_bits (priv->regmap,TIM_CR2 ,TIM_CR2_MMS ,0 ); +/* Make sure that registers are updated */ regmap_update_bits (priv->regmap,TIM_EGR ,TIM_EGR_UG ,TIM_EGR_UG ); }
@@ -197,7 +204,7 @@ static ssize_t stm32_tt_store_frequency(struct device *dev,return ret;if (freq ==0 ) { -stm32_timer_stop (priv); +stm32_timer_stop (priv, trig); }else { ret =stm32_timer_start (priv, trig, freq);if (ret)
Signature · 1 line
2.25.1