diff options
Diffstat (limited to 'drivers/pwm/pwm-atmel-hlcdc.c')
| -rw-r--r-- | drivers/pwm/pwm-atmel-hlcdc.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/drivers/pwm/pwm-atmel-hlcdc.c b/drivers/pwm/pwm-atmel-hlcdc.c index e7a785fadcdf..522f7075bb1a 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -64,6 +64,9 @@ static int atmel_hlcdc_pwm_config(struct pwm_chip *c,  	if (!chip->errata || !chip->errata->slow_clk_erratum) {  		clk_freq = clk_get_rate(new_clk); +		if (!clk_freq) +			return -EINVAL; +  		clk_period_ns = (u64)NSEC_PER_SEC * 256;  		do_div(clk_period_ns, clk_freq);  	} @@ -73,6 +76,9 @@ static int atmel_hlcdc_pwm_config(struct pwm_chip *c,  	    clk_period_ns > period_ns) {  		new_clk = hlcdc->sys_clk;  		clk_freq = clk_get_rate(new_clk); +		if (!clk_freq) +			return -EINVAL; +  		clk_period_ns = (u64)NSEC_PER_SEC * 256;  		do_div(clk_period_ns, clk_freq);  	} | 

