OSDN Git Service

soundwire: stream: split port allocation and configuration loops
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Wed, 26 Jan 2022 01:17:01 +0000 (09:17 +0800)
committerVinod Koul <vkoul@kernel.org>
Fri, 11 Feb 2022 06:45:36 +0000 (12:15 +0530)
Split loops before moving the allocation and configuration to separate
functions.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20220126011715.28204-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/stream.c

index 49d3a8d..b97c59e 100644 (file)
@@ -1232,10 +1232,14 @@ static int sdw_master_port_config(struct sdw_bus *bus,
                p_rt = sdw_port_alloc(&m_rt->port_list);
                if (!p_rt)
                        return -ENOMEM;
+       }
 
+       i = 0;
+       list_for_each_entry(p_rt, &m_rt->port_list, port_node) {
                ret = sdw_port_config(p_rt, port_config, i);
                if (ret < 0)
                        return ret;
+               i++;
        }
 
        return 0;
@@ -1254,7 +1258,10 @@ static int sdw_slave_port_config(struct sdw_slave *slave,
                p_rt = sdw_port_alloc(&s_rt->port_list);
                if (!p_rt)
                        return -ENOMEM;
+       }
 
+       i = 0;
+       list_for_each_entry(p_rt, &s_rt->port_list, port_node) {
                /*
                 * TODO: Check valid port range as defined by DisCo/
                 * slave
@@ -1266,6 +1273,7 @@ static int sdw_slave_port_config(struct sdw_slave *slave,
                ret = sdw_port_config(p_rt, port_config, i);
                if (ret < 0)
                        return ret;
+               i++;
        }
 
        return 0;