Skip to content

Commit 091499f

Browse files
Li Zetaogregkh
authored andcommitted
spi: microchip-core-qspi: Use helper function devm_clk_get_enabled()
[ Upstream commit e922f3f ] Since commit 7ef9651 ("clk: Provide new devm_clk helpers for prepared and enabled clocks"), devm_clk_get() and clk_prepare_enable() can now be replaced by devm_clk_get_enabled() when driver enables (and possibly prepares) the clocks for the whole lifetime of the device. Moreover, it is no longer necessary to unprepare and disable the clocks explicitly. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Li Zetao <lizetao1@huawei.com> Link: https://lore.kernel.org/r/20230823133938.1359106-18-lizetao1@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org> Stable-dep-of: e646414 ("spi: microchip-core-qspi: fix controller deregistration") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 420d6f5 commit 091499f

1 file changed

Lines changed: 7 additions & 22 deletions

File tree

drivers/spi/spi-microchip-core-qspi.c

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -519,30 +519,23 @@ static int mchp_coreqspi_probe(struct platform_device *pdev)
519519
return dev_err_probe(&pdev->dev, PTR_ERR(qspi->regs),
520520
"failed to map registers\n");
521521

522-
qspi->clk = devm_clk_get(&pdev->dev, NULL);
522+
qspi->clk = devm_clk_get_enabled(&pdev->dev, NULL);
523523
if (IS_ERR(qspi->clk))
524524
return dev_err_probe(&pdev->dev, PTR_ERR(qspi->clk),
525525
"could not get clock\n");
526526

527-
ret = clk_prepare_enable(qspi->clk);
528-
if (ret)
529-
return dev_err_probe(&pdev->dev, ret,
530-
"failed to enable clock\n");
531-
532527
init_completion(&qspi->data_completion);
533528
mutex_init(&qspi->op_lock);
534529

535530
qspi->irq = platform_get_irq(pdev, 0);
536-
if (qspi->irq < 0) {
537-
ret = qspi->irq;
538-
goto out;
539-
}
531+
if (qspi->irq < 0)
532+
return qspi->irq;
540533

541534
ret = devm_request_irq(&pdev->dev, qspi->irq, mchp_coreqspi_isr,
542535
IRQF_SHARED, pdev->name, qspi);
543536
if (ret) {
544537
dev_err(&pdev->dev, "request_irq failed %d\n", ret);
545-
goto out;
538+
return ret;
546539
}
547540

548541
ctlr->bits_per_word_mask = SPI_BPW_MASK(8);
@@ -553,18 +546,11 @@ static int mchp_coreqspi_probe(struct platform_device *pdev)
553546
ctlr->dev.of_node = np;
554547

555548
ret = devm_spi_register_controller(&pdev->dev, ctlr);
556-
if (ret) {
557-
dev_err_probe(&pdev->dev, ret,
558-
"spi_register_controller failed\n");
559-
goto out;
560-
}
549+
if (ret)
550+
return dev_err_probe(&pdev->dev, ret,
551+
"spi_register_controller failed\n");
561552

562553
return 0;
563-
564-
out:
565-
clk_disable_unprepare(qspi->clk);
566-
567-
return ret;
568554
}
569555

570556
static void mchp_coreqspi_remove(struct platform_device *pdev)
@@ -575,7 +561,6 @@ static void mchp_coreqspi_remove(struct platform_device *pdev)
575561
mchp_coreqspi_disable_ints(qspi);
576562
control &= ~CONTROL_ENABLE;
577563
writel_relaxed(control, qspi->regs + REG_CONTROL);
578-
clk_disable_unprepare(qspi->clk);
579564
}
580565

581566
static const struct of_device_id mchp_coreqspi_of_match[] = {

0 commit comments

Comments
 (0)