Lines Matching refs:m_rt

264  * @m_rt: Master stream runtime
266 static int sdw_program_port_params(struct sdw_master_runtime *m_rt)
269 struct sdw_bus *bus = m_rt->bus;
274 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
283 list_for_each_entry(p_rt, &m_rt->port_list, port_node) {
334 static int sdw_enable_disable_master_ports(struct sdw_master_runtime *m_rt,
339 struct sdw_bus *bus = m_rt->bus;
372 * @m_rt: Master stream runtime
375 static int sdw_enable_disable_ports(struct sdw_master_runtime *m_rt, bool en)
382 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
384 ret = sdw_enable_disable_slave_ports(m_rt->bus, s_rt,
392 list_for_each_entry(m_port, &m_rt->port_list, port_node) {
393 ret = sdw_enable_disable_master_ports(m_rt, m_port, en);
514 static int sdw_prep_deprep_master_ports(struct sdw_master_runtime *m_rt,
519 struct sdw_bus *bus = m_rt->bus;
546 * @m_rt: Master runtime handle
549 static int sdw_prep_deprep_ports(struct sdw_master_runtime *m_rt, bool prep)
556 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
558 ret = sdw_prep_deprep_slave_ports(m_rt->bus, s_rt,
566 list_for_each_entry(p_rt, &m_rt->port_list, port_node) {
567 ret = sdw_prep_deprep_master_ports(m_rt, p_rt, prep);
578 * @m_rt: Master runtime handle
583 static int sdw_notify_config(struct sdw_master_runtime *m_rt)
586 struct sdw_bus *bus = m_rt->bus;
596 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
631 struct sdw_master_runtime *m_rt;
634 list_for_each_entry(m_rt, &bus->m_rt_list, bus_node) {
643 m_rt->stream->state == SDW_STREAM_CONFIGURED)
646 ret = sdw_program_port_params(m_rt);
653 ret = sdw_notify_config(m_rt);
661 if (m_rt->stream->state != SDW_STREAM_ENABLED)
664 ret = sdw_enable_disable_ports(m_rt, true);
779 struct sdw_master_runtime *m_rt;
788 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
789 bus = m_rt->bus;
826 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
827 bus = m_rt->bus;
865 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
866 bus = m_rt->bus;
877 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
878 bus = m_rt->bus;
929 struct sdw_master_runtime *m_rt;
932 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
933 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
999 static bool sdw_master_port_allocated(struct sdw_master_runtime *m_rt)
1001 return !list_empty(&m_rt->port_list);
1004 static void sdw_master_port_free(struct sdw_master_runtime *m_rt)
1008 list_for_each_entry_safe(p_rt, _p_rt, &m_rt->port_list, port_node) {
1013 static int sdw_master_port_alloc(struct sdw_master_runtime *m_rt,
1021 p_rt = sdw_port_alloc(&m_rt->port_list);
1029 static int sdw_master_port_config(struct sdw_master_runtime *m_rt,
1037 list_for_each_entry(p_rt, &m_rt->port_list, port_node) {
1051 * @m_rt: Master runtime handle
1057 struct sdw_master_runtime *m_rt)
1068 list_add_tail(&s_rt->m_rt_node, &m_rt->slave_rt_list);
1094 struct sdw_master_runtime *m_rt;
1096 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1099 &m_rt->slave_rt_list, m_rt_node) {
1131 struct sdw_master_runtime *m_rt;
1134 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1135 if (m_rt->bus == bus)
1136 return m_rt;
1154 struct sdw_master_runtime *m_rt, *walk_m_rt;
1157 m_rt = kzalloc(sizeof(*m_rt), GFP_KERNEL);
1158 if (!m_rt)
1162 INIT_LIST_HEAD(&m_rt->port_list);
1163 INIT_LIST_HEAD(&m_rt->slave_rt_list);
1177 list_add(&m_rt->stream_node, insert_after);
1179 list_add_tail(&m_rt->bus_node, &bus->m_rt_list);
1181 m_rt->bus = bus;
1182 m_rt->stream = stream;
1184 return m_rt;
1190 * @m_rt: Master runtime handle
1196 static int sdw_master_rt_config(struct sdw_master_runtime *m_rt,
1199 m_rt->ch_count = stream_config->ch_count;
1200 m_rt->direction = stream_config->direction;
1208 * @m_rt: Master runtime node
1216 static void sdw_master_rt_free(struct sdw_master_runtime *m_rt,
1221 list_for_each_entry_safe(s_rt, _s_rt, &m_rt->slave_rt_list, m_rt_node) {
1226 list_del(&m_rt->stream_node);
1227 list_del(&m_rt->bus_node);
1228 kfree(m_rt);
1313 * Acquire bus_lock for each of the master runtime(m_rt) part of this
1320 struct sdw_master_runtime *m_rt;
1324 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1325 bus = m_rt->bus;
1342 struct sdw_master_runtime *m_rt;
1346 list_for_each_entry_reverse(m_rt, &stream->master_list, stream_node) {
1347 bus = m_rt->bus;
1355 struct sdw_master_runtime *m_rt;
1362 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1363 bus = m_rt->bus;
1376 bus->params.bandwidth += m_rt->stream->params.rate *
1377 m_rt->ch_count * m_rt->stream->params.bps;
1404 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1405 bus = m_rt->bus;
1408 ret = sdw_prep_deprep_ports(m_rt, true);
1477 struct sdw_master_runtime *m_rt;
1482 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1483 bus = m_rt->bus;
1493 ret = sdw_enable_disable_ports(m_rt, true);
1552 struct sdw_master_runtime *m_rt;
1555 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1556 struct sdw_bus *bus = m_rt->bus;
1559 ret = sdw_enable_disable_ports(m_rt, false);
1567 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1568 struct sdw_bus *bus = m_rt->bus;
1585 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1586 struct sdw_bus *bus = m_rt->bus;
1589 ret = sdw_enable_disable_ports(m_rt, false);
1639 struct sdw_master_runtime *m_rt;
1643 list_for_each_entry(m_rt, &stream->master_list, stream_node) {
1644 bus = m_rt->bus;
1646 ret = sdw_prep_deprep_ports(m_rt, false);
1654 bus->params.bandwidth -= m_rt->stream->params.rate *
1655 m_rt->ch_count * m_rt->stream->params.bps;
1869 struct sdw_master_runtime *m_rt;
1891 m_rt = sdw_master_rt_find(bus, stream);
1892 if (!m_rt) {
1893 m_rt = sdw_master_rt_alloc(bus, stream);
1894 if (!m_rt) {
1904 if (!sdw_master_port_allocated(m_rt)) {
1905 ret = sdw_master_port_alloc(m_rt, num_ports);
1912 ret = sdw_master_rt_config(m_rt, stream_config);
1920 ret = sdw_master_port_config(m_rt, port_config);
1929 sdw_master_rt_free(m_rt, stream);
1947 struct sdw_master_runtime *m_rt, *_m_rt;
1951 list_for_each_entry_safe(m_rt, _m_rt,
1953 if (m_rt->bus != bus)
1956 sdw_master_port_free(m_rt);
1957 sdw_master_rt_free(m_rt, stream);
1990 struct sdw_master_runtime *m_rt;
2002 m_rt = sdw_master_rt_find(slave->bus, stream);
2003 if (!m_rt) {
2005 * If this API is invoked by Slave first then m_rt is not valid.
2006 * So, allocate m_rt and add Slave to it.
2008 m_rt = sdw_master_rt_alloc(slave->bus, stream);
2009 if (!m_rt) {
2021 s_rt = sdw_slave_rt_alloc(slave, m_rt);
2038 ret = sdw_master_rt_config(m_rt, stream_config);
2070 sdw_master_rt_free(m_rt, stream);