diff options
Diffstat (limited to 'sound/soc')
| -rw-r--r-- | sound/soc/samsung/i2s.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 07ff3e7cb890..043d98645a54 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -488,7 +488,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,  			clk_id = 1;  		if (!any_active(i2s)) { -			if (i2s->op_clk) { +			if (i2s->op_clk && !IS_ERR(i2s->op_clk)) {  				if ((clk_id && !(mod & MOD_IMS_SYSMUX)) ||  					(!clk_id && (mod & MOD_IMS_SYSMUX))) {  					clk_disable_unprepare(i2s->op_clk); @@ -506,6 +506,10 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,  			else  				i2s->op_clk = clk_get(&i2s->pdev->dev,  						"i2s_opclk0"); + +			if (WARN_ON(IS_ERR(i2s->op_clk))) +				return PTR_ERR(i2s->op_clk); +  			clk_prepare_enable(i2s->op_clk);  			i2s->rclk_srcrate = clk_get_rate(i2s->op_clk); | 
