]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: ti: omap-mcbsp: Remove mixed goto/scoped cleanup handling
authorbui duc phuc <phucduc.bui@gmail.com>
Thu, 14 May 2026 11:06:02 +0000 (18:06 +0700)
committerMark Brown <broonie@kernel.org>
Fri, 15 May 2026 01:36:48 +0000 (10:36 +0900)
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>
sound/soc/ti/omap-mcbsp.c

index d82fef629867aadc388a5e7eba45803891913d23..26af616c33f5102a10c6f46a716c9c7d0f6f91a2 100644 (file)
@@ -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)