diff options
| -rw-r--r-- | drivers/mtd/nand/raw/stm32_fmc2_nand.c | 17 | 
1 files changed, 4 insertions, 13 deletions
| diff --git a/drivers/mtd/nand/raw/stm32_fmc2_nand.c b/drivers/mtd/nand/raw/stm32_fmc2_nand.c index 2f9e43f64dd7..88811139aaf5 100644 --- a/drivers/mtd/nand/raw/stm32_fmc2_nand.c +++ b/drivers/mtd/nand/raw/stm32_fmc2_nand.c @@ -1951,21 +1951,17 @@ static int stm32_fmc2_nfc_probe(struct platform_device *pdev)  	init_completion(&nfc->complete); -	nfc->clk = devm_clk_get(nfc->cdev, NULL); -	if (IS_ERR(nfc->clk)) +	nfc->clk = devm_clk_get_enabled(nfc->cdev, NULL); +	if (IS_ERR(nfc->clk)) { +		dev_err(dev, "can not get and enable the clock\n");  		return PTR_ERR(nfc->clk); - -	ret = clk_prepare_enable(nfc->clk); -	if (ret) { -		dev_err(dev, "can not enable the clock\n"); -		return ret;  	}  	rstc = devm_reset_control_get(dev, NULL);  	if (IS_ERR(rstc)) {  		ret = PTR_ERR(rstc);  		if (ret == -EPROBE_DEFER) -			goto err_clk_disable; +			return ret;  	} else {  		reset_control_assert(rstc);  		reset_control_deassert(rstc); @@ -2018,9 +2014,6 @@ err_release_dma:  	sg_free_table(&nfc->dma_data_sg);  	sg_free_table(&nfc->dma_ecc_sg); -err_clk_disable: -	clk_disable_unprepare(nfc->clk); -  	return ret;  } @@ -2045,8 +2038,6 @@ static void stm32_fmc2_nfc_remove(struct platform_device *pdev)  	sg_free_table(&nfc->dma_data_sg);  	sg_free_table(&nfc->dma_ecc_sg); -	clk_disable_unprepare(nfc->clk); -  	stm32_fmc2_nfc_wp_enable(nand);  } | 
