diff options
Diffstat (limited to 'drivers/pwm/pwm-rcar.c')
| -rw-r--r-- | drivers/pwm/pwm-rcar.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/pwm/pwm-rcar.c b/drivers/pwm/pwm-rcar.c index 1c85ecc9e7ac..0fcf94ffad32 100644 --- a/drivers/pwm/pwm-rcar.c +++ b/drivers/pwm/pwm-rcar.c @@ -156,8 +156,12 @@ static int rcar_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,  	if (div < 0)  		return div; -	/* Let the core driver set pwm->period if disabled and duty_ns == 0 */ -	if (!pwm_is_enabled(pwm) && !duty_ns) +	/* +	 * Let the core driver set pwm->period if disabled and duty_ns == 0. +	 * But, this driver should prevent to set the new duty_ns if current +	 * duty_cycle is not set +	 */ +	if (!pwm_is_enabled(pwm) && !duty_ns && !pwm->state.duty_cycle)  		return 0;  	rcar_pwm_update(rp, RCAR_PWMCR_SYNC, RCAR_PWMCR_SYNC, RCAR_PWMCR); | 
