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 <link@vivo.com>
Reviewed-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>

authored by Huan Yang and committed by Jassi Brar 0d97651b e92d87c9

+4 -21
+4 -21
drivers/mailbox/sprd-mailbox.c
··· 62 void __iomem *outbox_base; 63 /* Base register address for supplementary outbox */ 64 void __iomem *supp_base; 65 - struct clk *clk; 66 u32 outbox_fifo_depth; 67 68 struct mutex lock; ··· 290 .shutdown = sprd_mbox_shutdown, 291 }; 292 293 - static void sprd_mbox_disable(void *data) 294 - { 295 - struct sprd_mbox_priv *priv = data; 296 - 297 - clk_disable_unprepare(priv->clk); 298 - } 299 - 300 static int sprd_mbox_probe(struct platform_device *pdev) 301 { 302 struct device *dev = &pdev->dev; 303 struct sprd_mbox_priv *priv; 304 int ret, inbox_irq, outbox_irq, supp_irq; 305 unsigned long id, supp; 306 307 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 308 if (!priv) ··· 324 if (IS_ERR(priv->outbox_base)) 325 return PTR_ERR(priv->outbox_base); 326 327 - priv->clk = devm_clk_get(dev, "enable"); 328 - if (IS_ERR(priv->clk)) { 329 dev_err(dev, "failed to get mailbox clock\n"); 330 - return PTR_ERR(priv->clk); 331 - } 332 - 333 - ret = clk_prepare_enable(priv->clk); 334 - if (ret) 335 - return ret; 336 - 337 - ret = devm_add_action_or_reset(dev, sprd_mbox_disable, priv); 338 - if (ret) { 339 - dev_err(dev, "failed to add mailbox disable action\n"); 340 - return ret; 341 } 342 343 inbox_irq = platform_get_irq_byname(pdev, "inbox");
··· 62 void __iomem *outbox_base; 63 /* Base register address for supplementary outbox */ 64 void __iomem *supp_base; 65 u32 outbox_fifo_depth; 66 67 struct mutex lock; ··· 291 .shutdown = sprd_mbox_shutdown, 292 }; 293 294 static int sprd_mbox_probe(struct platform_device *pdev) 295 { 296 struct device *dev = &pdev->dev; 297 struct sprd_mbox_priv *priv; 298 int ret, inbox_irq, outbox_irq, supp_irq; 299 unsigned long id, supp; 300 + struct clk *clk; 301 302 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 303 if (!priv) ··· 331 if (IS_ERR(priv->outbox_base)) 332 return PTR_ERR(priv->outbox_base); 333 334 + clk = devm_clk_get_enabled(dev, "enable"); 335 + if (IS_ERR(clk)) { 336 dev_err(dev, "failed to get mailbox clock\n"); 337 + return PTR_ERR(clk); 338 } 339 340 inbox_irq = platform_get_irq_byname(pdev, "inbox");