aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
authorbui duc phuc <phucduc.bui@gmail.com>2026-05-14 18:06:02 +0700
committerMark Brown <broonie@kernel.org>2026-05-15 10:36:48 +0900
commit7c0acb8f766a5c861595d6de45b6751444c2680d (patch)
treea09a308e9f75e429cf1c6963a561d998b7bb1299 /sound
parentab50528ab5b5dd282c43384d3e246068048e0840 (diff)
downloadlinux-next-history-7c0acb8f766a5c861595d6de45b6751444c2680d.tar.gz
ASoC: ti: omap-mcbsp: Remove mixed goto/scoped cleanup handling
After converting to guard()/scoped_guard() helpers, omap_mcbsp_request() still mixes scoped cleanup with goto based error handling. Remove the remaining goto based cleanup paths for a more consistent cleanup flow. Suggested-by: Mark Brown <broonie@kernel.org> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Acked-by: Sen Wang <sen@ti.com> Link: https://patch.msgid.link/20260514110602.30480-1-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/ti/omap-mcbsp.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/sound/soc/ti/omap-mcbsp.c b/sound/soc/ti/omap-mcbsp.c
index d82fef629867a..26af616c33f51 100644
--- a/sound/soc/ti/omap-mcbsp.c
+++ b/sound/soc/ti/omap-mcbsp.c
@@ -307,7 +307,7 @@ static int omap_mcbsp_request(struct omap_mcbsp *mcbsp)
reg_cache = NULL;
}
- if(mcbsp->pdata->ops && mcbsp->pdata->ops->request)
+ if (mcbsp->pdata->ops && mcbsp->pdata->ops->request)
mcbsp->pdata->ops->request(mcbsp->id - 1);
/*
@@ -322,42 +322,40 @@ static int omap_mcbsp_request(struct omap_mcbsp *mcbsp)
"McBSP", (void *)mcbsp);
if (err != 0) {
dev_err(mcbsp->dev, "Unable to request IRQ\n");
- goto err_clk_disable;
}
} else {
err = request_irq(mcbsp->tx_irq, omap_mcbsp_tx_irq_handler, 0,
"McBSP TX", (void *)mcbsp);
if (err != 0) {
dev_err(mcbsp->dev, "Unable to request TX IRQ\n");
- goto err_clk_disable;
- }
-
- err = request_irq(mcbsp->rx_irq, omap_mcbsp_rx_irq_handler, 0,
- "McBSP RX", (void *)mcbsp);
- if (err != 0) {
- dev_err(mcbsp->dev, "Unable to request RX IRQ\n");
- goto err_free_irq;
+ } else {
+ err = request_irq(mcbsp->rx_irq, omap_mcbsp_rx_irq_handler, 0,
+ "McBSP RX", (void *)mcbsp);
+ if (err != 0) {
+ dev_err(mcbsp->dev, "Unable to request RX IRQ\n");
+ free_irq(mcbsp->tx_irq, (void *)mcbsp);
+ }
}
}
- return 0;
-err_free_irq:
- free_irq(mcbsp->tx_irq, (void *)mcbsp);
-err_clk_disable:
- if(mcbsp->pdata->ops && mcbsp->pdata->ops->free)
- mcbsp->pdata->ops->free(mcbsp->id - 1);
+ if (err != 0) {
+ if (mcbsp->pdata->ops && mcbsp->pdata->ops->free)
+ mcbsp->pdata->ops->free(mcbsp->id - 1);
- /* Disable wakeup behavior */
- if (mcbsp->pdata->has_wakeup)
- MCBSP_WRITE(mcbsp, WAKEUPEN, 0);
+ /* Disable wakeup behavior */
+ if (mcbsp->pdata->has_wakeup)
+ MCBSP_WRITE(mcbsp, WAKEUPEN, 0);
- scoped_guard(spinlock, &mcbsp->lock) {
- reg_cache = mcbsp->reg_cache;
- mcbsp->free = true;
- mcbsp->reg_cache = NULL;
+ scoped_guard(spinlock, &mcbsp->lock) {
+ reg_cache = mcbsp->reg_cache;
+ mcbsp->free = true;
+ mcbsp->reg_cache = NULL;
+ }
+
+ return err;
}
- return err;
+ return 0;
}
static void omap_mcbsp_free(struct omap_mcbsp *mcbsp)