diff options
| author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2019-01-10 20:33:53 +0100 | 
|---|---|---|
| committer | Thierry Reding <thierry.reding@gmail.com> | 2019-03-04 12:52:48 +0100 | 
| commit | 519ef9b5f23c16dcb3a3a8a890baf7c084974730 (patch) | |
| tree | 3bc283361d4fbca9dce5f3923638d6c3691b92be /drivers/pwm/pwm-imx27.c | |
| parent | b4f9a7268dbe9d55a6bc8c3123cb518657743b76 (diff) | |
pwm: imx27: Only enable the clocks once in .get_state()
Currently the function pwm_imx27_get_state() of enables the clocks once
unconditionally at the start, a second time if the PWM is enabled and
disables unconditionally at the end.
Simplify that to enable once at the start and disable conditionally at
the end.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/pwm-imx27.c')
| -rw-r--r-- | drivers/pwm/pwm-imx27.c | 11 | 
1 files changed, 4 insertions, 7 deletions
| diff --git a/drivers/pwm/pwm-imx27.c b/drivers/pwm/pwm-imx27.c index 55666cca4cee..806130654211 100644 --- a/drivers/pwm/pwm-imx27.c +++ b/drivers/pwm/pwm-imx27.c @@ -125,14 +125,10 @@ static void pwm_imx27_get_state(struct pwm_chip *chip,  	val = readl(imx->mmio_base + MX3_PWMCR); -	if (val & MX3_PWMCR_EN) { +	if (val & MX3_PWMCR_EN)  		state->enabled = true; -		ret = pwm_imx27_clk_prepare_enable(chip); -		if (ret) -			return; -	} else { +	else  		state->enabled = false; -	}  	switch (FIELD_GET(MX3_PWMCR_POUTC, val)) {  	case MX3_PWMCR_POUTC_NORMAL: @@ -164,7 +160,8 @@ static void pwm_imx27_get_state(struct pwm_chip *chip,  		state->duty_cycle = 0;  	} -	pwm_imx27_clk_disable_unprepare(chip); +	if (!state->enabled) +		pwm_imx27_clk_disable_unprepare(chip);  }  static void pwm_imx27_sw_reset(struct pwm_chip *chip) | 
