]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
soundwire: stream: Remove unnecessary gotos
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Fri, 2 Jun 2023 10:11:40 +0000 (11:11 +0100)
committerVinod Koul <vkoul@kernel.org>
Thu, 8 Jun 2023 11:39:11 +0000 (17:09 +0530)
There is a lot of code using gotos to skip small sections of code, this
is a fairly dubious use of a goto, especially when the level of
intentation is really low. Most of this code doesn't even breach 80
characters when naively shifted over.

Simplify the code a bit, by replacing these unnecessary gotos with
simple ifs.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20230602101140.2040141-5-ckeepax@opensource.cirrus.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/stream.c

index df5600a80c17423d4a7b0783d3fd349dc263950b..93baca08a0dea1f72192d74a303894a2f9a8ee90 100644 (file)
@@ -1355,25 +1355,23 @@ static int _sdw_prepare_stream(struct sdw_stream_runtime *stream,
                        return -EINVAL;
                }
 
-               if (!update_params)
-                       goto program_params;
-
-               /* Increment cumulative bus bandwidth */
-               /* TODO: Update this during Device-Device support */
-               bus->params.bandwidth += m_rt->stream->params.rate *
-                       m_rt->ch_count * m_rt->stream->params.bps;
-
-               /* Compute params */
-               if (bus->compute_params) {
-                       ret = bus->compute_params(bus);
-                       if (ret < 0) {
-                               dev_err(bus->dev, "Compute params failed: %d\n",
-                                       ret);
-                               goto restore_params;
+               if (update_params) {
+                       /* Increment cumulative bus bandwidth */
+                       /* TODO: Update this during Device-Device support */
+                       bus->params.bandwidth += m_rt->stream->params.rate *
+                               m_rt->ch_count * m_rt->stream->params.bps;
+
+                       /* Compute params */
+                       if (bus->compute_params) {
+                               ret = bus->compute_params(bus);
+                               if (ret < 0) {
+                                       dev_err(bus->dev, "Compute params failed: %d\n",
+                                               ret);
+                                       goto restore_params;
+                               }
                        }
                }
 
-program_params:
                /* Program params */
                ret = sdw_program_params(bus, true);
                if (ret < 0) {
@@ -1876,30 +1874,25 @@ int sdw_stream_add_master(struct sdw_bus *bus,
         * it first), if so skip allocation and go to configuration
         */
        m_rt = sdw_master_rt_find(bus, stream);
-       if (m_rt)
-               goto skip_alloc_master_rt;
-
-       m_rt = sdw_master_rt_alloc(bus, stream);
        if (!m_rt) {
-               dev_err(bus->dev, "%s: Master runtime alloc failed for stream:%s\n",
-                       __func__, stream->name);
-               ret = -ENOMEM;
-               goto unlock;
-       }
-
-       alloc_master_rt = true;
-skip_alloc_master_rt:
-
-       if (sdw_master_port_allocated(m_rt))
-               goto skip_alloc_master_port;
+               m_rt = sdw_master_rt_alloc(bus, stream);
+               if (!m_rt) {
+                       dev_err(bus->dev, "%s: Master runtime alloc failed for stream:%s\n",
+                               __func__, stream->name);
+                       ret = -ENOMEM;
+                       goto unlock;
+               }
 
-       ret = sdw_master_port_alloc(m_rt, num_ports);
-       if (ret)
-               goto alloc_error;
+               alloc_master_rt = true;
+       }
 
-       stream->m_rt_count++;
+       if (!sdw_master_port_allocated(m_rt)) {
+               ret = sdw_master_port_alloc(m_rt, num_ports);
+               if (ret)
+                       goto alloc_error;
 
-skip_alloc_master_port:
+               stream->m_rt_count++;
+       }
 
        ret = sdw_master_rt_config(m_rt, stream_config);
        if (ret < 0)
@@ -1992,46 +1985,41 @@ int sdw_stream_add_slave(struct sdw_slave *slave,
         * and go to configuration
         */
        m_rt = sdw_master_rt_find(slave->bus, stream);
-       if (m_rt)
-               goto skip_alloc_master_rt;
-
-       /*
-        * If this API is invoked by Slave first then m_rt is not valid.
-        * So, allocate m_rt and add Slave to it.
-        */
-       m_rt = sdw_master_rt_alloc(slave->bus, stream);
        if (!m_rt) {
-               dev_err(&slave->dev, "%s: Master runtime alloc failed for stream:%s\n",
-                       __func__, stream->name);
-               ret = -ENOMEM;
-               goto unlock;
-       }
+               /*
+                * If this API is invoked by Slave first then m_rt is not valid.
+                * So, allocate m_rt and add Slave to it.
+                */
+               m_rt = sdw_master_rt_alloc(slave->bus, stream);
+               if (!m_rt) {
+                       dev_err(&slave->dev, "%s: Master runtime alloc failed for stream:%s\n",
+                               __func__, stream->name);
+                       ret = -ENOMEM;
+                       goto unlock;
+               }
 
-       alloc_master_rt = true;
+               alloc_master_rt = true;
+       }
 
-skip_alloc_master_rt:
        s_rt = sdw_slave_rt_find(slave, stream);
-       if (s_rt)
-               goto skip_alloc_slave_rt;
-
-       s_rt = sdw_slave_rt_alloc(slave, m_rt);
        if (!s_rt) {
-               dev_err(&slave->dev, "Slave runtime alloc failed for stream:%s\n", stream->name);
-               ret = -ENOMEM;
-               goto alloc_error;
-       }
-
-       alloc_slave_rt = true;
+               s_rt = sdw_slave_rt_alloc(slave, m_rt);
+               if (!s_rt) {
+                       dev_err(&slave->dev, "Slave runtime alloc failed for stream:%s\n",
+                               stream->name);
+                       ret = -ENOMEM;
+                       goto alloc_error;
+               }
 
-skip_alloc_slave_rt:
-       if (sdw_slave_port_allocated(s_rt))
-               goto skip_port_alloc;
+               alloc_slave_rt = true;
+       }
 
-       ret = sdw_slave_port_alloc(slave, s_rt, num_ports);
-       if (ret)
-               goto alloc_error;
+       if (!sdw_slave_port_allocated(s_rt)) {
+               ret = sdw_slave_port_alloc(slave, s_rt, num_ports);
+               if (ret)
+                       goto alloc_error;
+       }
 
-skip_port_alloc:
        ret =  sdw_master_rt_config(m_rt, stream_config);
        if (ret)
                goto unlock;