Skip to content

Commit 0d97651

Browse files
Huan YangJassi Brar
authored andcommitted
mailbox: sprd: Use devm_clk_get_enabled() helpers
The devm_clk_get_enabled() helpers: - call devm_clk_get() - call clk_prepare_enable() and register what is needed in order to call clk_disable_unprepare() when needed, as a managed resource. This simplifies the code and avoids the calls to clk_disable_unprepare(). Due to clk only used in probe, not in suspend\resume, this pointer can remove from sprd_mbox_priv to save a little memory. Signed-off-by: Huan Yang <[email protected]> Reviewed-by: Christophe JAILLET <[email protected]> Reviewed-by: Baolin Wang <[email protected]> Signed-off-by: Jassi Brar <[email protected]>
1 parent e92d87c commit 0d97651

File tree

1 file changed

+4
-21
lines changed

1 file changed

+4
-21
lines changed

drivers/mailbox/sprd-mailbox.c

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ struct sprd_mbox_priv {
6262
void __iomem *outbox_base;
6363
/* Base register address for supplementary outbox */
6464
void __iomem *supp_base;
65-
struct clk *clk;
6665
u32 outbox_fifo_depth;
6766

6867
struct mutex lock;
@@ -291,19 +290,13 @@ static const struct mbox_chan_ops sprd_mbox_ops = {
291290
.shutdown = sprd_mbox_shutdown,
292291
};
293292

294-
static void sprd_mbox_disable(void *data)
295-
{
296-
struct sprd_mbox_priv *priv = data;
297-
298-
clk_disable_unprepare(priv->clk);
299-
}
300-
301293
static int sprd_mbox_probe(struct platform_device *pdev)
302294
{
303295
struct device *dev = &pdev->dev;
304296
struct sprd_mbox_priv *priv;
305297
int ret, inbox_irq, outbox_irq, supp_irq;
306298
unsigned long id, supp;
299+
struct clk *clk;
307300

308301
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
309302
if (!priv)
@@ -331,20 +324,10 @@ static int sprd_mbox_probe(struct platform_device *pdev)
331324
if (IS_ERR(priv->outbox_base))
332325
return PTR_ERR(priv->outbox_base);
333326

334-
priv->clk = devm_clk_get(dev, "enable");
335-
if (IS_ERR(priv->clk)) {
327+
clk = devm_clk_get_enabled(dev, "enable");
328+
if (IS_ERR(clk)) {
336329
dev_err(dev, "failed to get mailbox clock\n");
337-
return PTR_ERR(priv->clk);
338-
}
339-
340-
ret = clk_prepare_enable(priv->clk);
341-
if (ret)
342-
return ret;
343-
344-
ret = devm_add_action_or_reset(dev, sprd_mbox_disable, priv);
345-
if (ret) {
346-
dev_err(dev, "failed to add mailbox disable action\n");
347-
return ret;
330+
return PTR_ERR(clk);
348331
}
349332

350333
inbox_irq = platform_get_irq_byname(pdev, "inbox");

0 commit comments

Comments
 (0)