diff options
| -rw-r--r-- | drivers/spi/spi-zynq-qspi.c | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/drivers/spi/spi-zynq-qspi.c b/drivers/spi/spi-zynq-qspi.c index dee9c339a35e..5caf0abf3763 100644 --- a/drivers/spi/spi-zynq-qspi.c +++ b/drivers/spi/spi-zynq-qspi.c @@ -379,12 +379,21 @@ static int zynq_qspi_setup_op(struct spi_device *spi)  {  	struct spi_controller *ctlr = spi->controller;  	struct zynq_qspi *qspi = spi_controller_get_devdata(ctlr); +	int ret;  	if (ctlr->busy)  		return -EBUSY; -	clk_enable(qspi->refclk); -	clk_enable(qspi->pclk); +	ret = clk_enable(qspi->refclk); +	if (ret) +		return ret; + +	ret = clk_enable(qspi->pclk); +	if (ret) { +		clk_disable(qspi->refclk); +		return ret; +	} +  	zynq_qspi_write(qspi, ZYNQ_QSPI_ENABLE_OFFSET,  			ZYNQ_QSPI_ENABLE_ENABLE_MASK); | 
