Commit 0cbcced9 authored by Charles Keepax's avatar Charles Keepax Committed by Vinod Koul
Browse files

soundwire: stream: Remove unnecessary gotos



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: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20230602101140.2040141-5-ckeepax@opensource.cirrus.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent e0240644
Loading
Loading
Loading
Loading
+56 −68
Original line number Diff line number Diff line
@@ -1355,9 +1355,7 @@ static int _sdw_prepare_stream(struct sdw_stream_runtime *stream,
			return -EINVAL;
		}

		if (!update_params)
			goto program_params;

		if (update_params) {
			/* Increment cumulative bus bandwidth */
			/* TODO: Update this during Device-Device support */
			bus->params.bandwidth += m_rt->stream->params.rate *
@@ -1372,8 +1370,8 @@ static int _sdw_prepare_stream(struct sdw_stream_runtime *stream,
					goto restore_params;
				}
			}
		}

program_params:
		/* Program params */
		ret = sdw_program_params(bus, true);
		if (ret < 0) {
@@ -1876,9 +1874,7 @@ 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;

	if (!m_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",
@@ -1888,18 +1884,15 @@ int sdw_stream_add_master(struct sdw_bus *bus,
		}

		alloc_master_rt = true;
skip_alloc_master_rt:

	if (sdw_master_port_allocated(m_rt))
		goto skip_alloc_master_port;
	}

	if (!sdw_master_port_allocated(m_rt)) {
		ret = sdw_master_port_alloc(m_rt, num_ports);
		if (ret)
			goto alloc_error;

		stream->m_rt_count++;

skip_alloc_master_port:
	}

	ret = sdw_master_rt_config(m_rt, stream_config);
	if (ret < 0)
@@ -1992,9 +1985,7 @@ 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 (!m_rt) {
		/*
		 * If this API is invoked by Slave first then m_rt is not valid.
		 * So, allocate m_rt and add Slave to it.
@@ -2008,30 +1999,27 @@ int sdw_stream_add_slave(struct sdw_slave *slave,
		}

		alloc_master_rt = true;
	}

skip_alloc_master_rt:
	s_rt = sdw_slave_rt_find(slave, stream);
	if (s_rt)
		goto skip_alloc_slave_rt;

	if (!s_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);
			dev_err(&slave->dev, "Slave runtime alloc failed for stream:%s\n",
				stream->name);
			ret = -ENOMEM;
			goto alloc_error;
		}

		alloc_slave_rt = true;
	}

skip_alloc_slave_rt:
	if (sdw_slave_port_allocated(s_rt))
		goto skip_port_alloc;

	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;