[PATCH] mailbox: rockchip-mailbox: use devm_clk_get_enabled() for probe cleanup
Jiawen Liu <[email protected]>
| Newsgroups | org.infradead.lists.linux-rockchip,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Make clock enable devm-managed. Probe enables pclk but later platform_get_irq/request_irq/mbox registration failures return without disabling it. No remove cleanup for non-devm clock. Use devm_clk_get_enabled() for pclk cleanup in rockchip_mbox_probe. Signed-off-by: jiawen <[email protected]> --- diff --git a/drivers/mailbox/rockchip-mailbox.c b/drivers/mailbox/rockchip-mailbox.c --- a/drivers/mailbox/rockchip-mailbox.c +++ b/drivers/mailbox/rockchip-mailbox.c @@ -196,17 +196,11 @@ /* Each channel has two buffers for A2B and B2A */ mb->buf_size = (size_t)resource_size(res) / (drv_data->num_chans * 2); - mb->pclk = devm_clk_get(&pdev->dev, "pclk_mailbox"); + mb->pclk = devm_clk_get_enabled(&pdev->dev, "pclk_mailbox"); if (IS_ERR(mb->pclk)) { ret = PTR_ERR(mb->pclk); - dev_err(&pdev->dev, "failed to get pclk_mailbox clock: %d\n", + dev_err(&pdev->dev, "failed to get or enable pclk_mailbox clock: %d\n", ret); - return ret; - } - - ret = clk_prepare_enable(mb->pclk); - if (ret) { - dev_err(&pdev->dev, "failed to enable pclk: %d\n", ret); return ret; } _______________________________________________ Linux-rockchip mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-rockchip