Lines Matching refs:m_rt
280 static int sdw_program_port_params(struct sdw_master_runtime *m_rt) in sdw_program_port_params() argument
283 struct sdw_bus *bus = m_rt->bus; in sdw_program_port_params()
288 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) { in sdw_program_port_params()
297 list_for_each_entry(p_rt, &m_rt->port_list, port_node) { in sdw_program_port_params()
348 static int sdw_enable_disable_master_ports(struct sdw_master_runtime *m_rt, in sdw_enable_disable_master_ports() argument
353 struct sdw_bus *bus = m_rt->bus; in sdw_enable_disable_master_ports()
389 static int sdw_enable_disable_ports(struct sdw_master_runtime *m_rt, bool en) in sdw_enable_disable_ports() argument
396 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) { in sdw_enable_disable_ports()
398 ret = sdw_enable_disable_slave_ports(m_rt->bus, s_rt, in sdw_enable_disable_ports()
406 list_for_each_entry(m_port, &m_rt->port_list, port_node) { in sdw_enable_disable_ports()
407 ret = sdw_enable_disable_master_ports(m_rt, m_port, en); in sdw_enable_disable_ports()
546 static int sdw_prep_deprep_master_ports(struct sdw_master_runtime *m_rt, in sdw_prep_deprep_master_ports() argument
551 struct sdw_bus *bus = m_rt->bus; in sdw_prep_deprep_master_ports()
581 static int sdw_prep_deprep_ports(struct sdw_master_runtime *m_rt, bool prep) in sdw_prep_deprep_ports() argument
588 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) { in sdw_prep_deprep_ports()
590 ret = sdw_prep_deprep_slave_ports(m_rt->bus, s_rt, in sdw_prep_deprep_ports()
598 list_for_each_entry(p_rt, &m_rt->port_list, port_node) { in sdw_prep_deprep_ports()
599 ret = sdw_prep_deprep_master_ports(m_rt, p_rt, prep); in sdw_prep_deprep_ports()
615 static int sdw_notify_config(struct sdw_master_runtime *m_rt) in sdw_notify_config() argument
618 struct sdw_bus *bus = m_rt->bus; in sdw_notify_config()
628 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) { in sdw_notify_config()
663 struct sdw_master_runtime *m_rt; in sdw_program_params() local
702 list_for_each_entry(m_rt, &bus->m_rt_list, bus_node) { in sdw_program_params()
711 m_rt->stream->state == SDW_STREAM_CONFIGURED) in sdw_program_params()
714 ret = sdw_program_port_params(m_rt); in sdw_program_params()
721 ret = sdw_notify_config(m_rt); in sdw_program_params()
729 if (m_rt->stream->state != SDW_STREAM_ENABLED) in sdw_program_params()
732 ret = sdw_enable_disable_ports(m_rt, true); in sdw_program_params()
847 struct sdw_master_runtime *m_rt; in do_bank_switch() local
856 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in do_bank_switch()
857 bus = m_rt->bus; in do_bank_switch()
894 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in do_bank_switch()
895 bus = m_rt->bus; in do_bank_switch()
933 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in do_bank_switch()
934 bus = m_rt->bus; in do_bank_switch()
945 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in do_bank_switch()
946 bus = m_rt->bus; in do_bank_switch()
997 struct sdw_master_runtime *m_rt; in sdw_slave_port_free() local
1000 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in sdw_slave_port_free()
1001 list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) { in sdw_slave_port_free()
1072 static bool sdw_master_port_allocated(struct sdw_master_runtime *m_rt) in sdw_master_port_allocated() argument
1074 return !list_empty(&m_rt->port_list); in sdw_master_port_allocated()
1077 static void sdw_master_port_free(struct sdw_master_runtime *m_rt) in sdw_master_port_free() argument
1081 list_for_each_entry_safe(p_rt, _p_rt, &m_rt->port_list, port_node) { in sdw_master_port_free()
1086 static int sdw_master_port_alloc(struct sdw_master_runtime *m_rt, in sdw_master_port_alloc() argument
1094 p_rt = sdw_port_alloc(&m_rt->port_list); in sdw_master_port_alloc()
1102 static int sdw_master_port_config(struct sdw_master_runtime *m_rt, in sdw_master_port_config() argument
1110 list_for_each_entry(p_rt, &m_rt->port_list, port_node) { in sdw_master_port_config()
1130 struct sdw_master_runtime *m_rt) in sdw_slave_rt_alloc() argument
1141 list_add_tail(&s_rt->m_rt_node, &m_rt->slave_rt_list); in sdw_slave_rt_alloc()
1167 struct sdw_master_runtime *m_rt; in sdw_slave_rt_find() local
1169 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in sdw_slave_rt_find()
1172 &m_rt->slave_rt_list, m_rt_node) { in sdw_slave_rt_find()
1204 struct sdw_master_runtime *m_rt; in sdw_master_rt_find() local
1207 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in sdw_master_rt_find()
1208 if (m_rt->bus == bus) in sdw_master_rt_find()
1209 return m_rt; in sdw_master_rt_find()
1227 struct sdw_master_runtime *m_rt, *walk_m_rt; in sdw_master_rt_alloc() local
1244 m_rt = kzalloc(sizeof(*m_rt), GFP_KERNEL); in sdw_master_rt_alloc()
1245 if (!m_rt) in sdw_master_rt_alloc()
1249 INIT_LIST_HEAD(&m_rt->port_list); in sdw_master_rt_alloc()
1250 INIT_LIST_HEAD(&m_rt->slave_rt_list); in sdw_master_rt_alloc()
1264 list_add(&m_rt->stream_node, insert_after); in sdw_master_rt_alloc()
1266 list_add_tail(&m_rt->bus_node, &bus->m_rt_list); in sdw_master_rt_alloc()
1268 m_rt->bus = bus; in sdw_master_rt_alloc()
1269 m_rt->stream = stream; in sdw_master_rt_alloc()
1275 return m_rt; in sdw_master_rt_alloc()
1287 static int sdw_master_rt_config(struct sdw_master_runtime *m_rt, in sdw_master_rt_config() argument
1290 m_rt->ch_count = stream_config->ch_count; in sdw_master_rt_config()
1291 m_rt->direction = stream_config->direction; in sdw_master_rt_config()
1307 static void sdw_master_rt_free(struct sdw_master_runtime *m_rt, in sdw_master_rt_free() argument
1311 struct sdw_bus *bus = m_rt->bus; in sdw_master_rt_free()
1313 list_for_each_entry_safe(s_rt, _s_rt, &m_rt->slave_rt_list, m_rt_node) { in sdw_master_rt_free()
1318 list_del(&m_rt->stream_node); in sdw_master_rt_free()
1319 list_del(&m_rt->bus_node); in sdw_master_rt_free()
1320 kfree(m_rt); in sdw_master_rt_free()
1421 struct sdw_master_runtime *m_rt; in sdw_acquire_bus_lock() local
1425 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in sdw_acquire_bus_lock()
1426 bus = m_rt->bus; in sdw_acquire_bus_lock()
1443 struct sdw_master_runtime *m_rt; in sdw_release_bus_lock() local
1447 list_for_each_entry_reverse(m_rt, &stream->master_list, stream_node) { in sdw_release_bus_lock()
1448 bus = m_rt->bus; in sdw_release_bus_lock()
1456 struct sdw_master_runtime *m_rt; in _sdw_prepare_stream() local
1463 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_prepare_stream()
1464 bus = m_rt->bus; in _sdw_prepare_stream()
1477 bus->params.bandwidth += m_rt->stream->params.rate * in _sdw_prepare_stream()
1478 m_rt->ch_count * m_rt->stream->params.bps; in _sdw_prepare_stream()
1505 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_prepare_stream()
1506 bus = m_rt->bus; in _sdw_prepare_stream()
1509 ret = sdw_prep_deprep_ports(m_rt, true); in _sdw_prepare_stream()
1578 struct sdw_master_runtime *m_rt; in _sdw_enable_stream() local
1583 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_enable_stream()
1584 bus = m_rt->bus; in _sdw_enable_stream()
1594 ret = sdw_enable_disable_ports(m_rt, true); in _sdw_enable_stream()
1653 struct sdw_master_runtime *m_rt; in _sdw_disable_stream() local
1656 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_disable_stream()
1657 struct sdw_bus *bus = m_rt->bus; in _sdw_disable_stream()
1660 ret = sdw_enable_disable_ports(m_rt, false); in _sdw_disable_stream()
1668 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_disable_stream()
1669 struct sdw_bus *bus = m_rt->bus; in _sdw_disable_stream()
1686 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_disable_stream()
1687 struct sdw_bus *bus = m_rt->bus; in _sdw_disable_stream()
1690 ret = sdw_enable_disable_ports(m_rt, false); in _sdw_disable_stream()
1740 struct sdw_master_runtime *m_rt; in _sdw_deprepare_stream() local
1754 list_for_each_entry(m_rt, &stream->master_list, stream_node) { in _sdw_deprepare_stream()
1755 bus = m_rt->bus; in _sdw_deprepare_stream()
1757 ret = sdw_prep_deprep_ports(m_rt, false); in _sdw_deprepare_stream()
1767 list_for_each_entry(p_rt, &m_rt->port_list, port_node) { in _sdw_deprepare_stream()
1771 bandwidth = m_rt->stream->params.rate * hweight32(p_rt->ch_mask) * in _sdw_deprepare_stream()
1772 m_rt->stream->params.bps; in _sdw_deprepare_stream()
1779 bandwidth = m_rt->stream->params.rate * m_rt->ch_count * m_rt->stream->params.bps; in _sdw_deprepare_stream()
1997 struct sdw_master_runtime *m_rt; in sdw_stream_add_master() local
2019 m_rt = sdw_master_rt_find(bus, stream); in sdw_stream_add_master()
2020 if (!m_rt) { in sdw_stream_add_master()
2021 m_rt = sdw_master_rt_alloc(bus, stream); in sdw_stream_add_master()
2022 if (IS_ERR(m_rt)) { in sdw_stream_add_master()
2023 ret = PTR_ERR(m_rt); in sdw_stream_add_master()
2028 if (!m_rt) { in sdw_stream_add_master()
2038 if (!sdw_master_port_allocated(m_rt)) { in sdw_stream_add_master()
2039 ret = sdw_master_port_alloc(m_rt, num_ports); in sdw_stream_add_master()
2046 ret = sdw_master_rt_config(m_rt, stream_config); in sdw_stream_add_master()
2054 ret = sdw_master_port_config(m_rt, port_config); in sdw_stream_add_master()
2063 sdw_master_rt_free(m_rt, stream); in sdw_stream_add_master()
2081 struct sdw_master_runtime *m_rt, *_m_rt; in sdw_stream_remove_master() local
2085 list_for_each_entry_safe(m_rt, _m_rt, in sdw_stream_remove_master()
2087 if (m_rt->bus != bus) in sdw_stream_remove_master()
2090 sdw_master_port_free(m_rt); in sdw_stream_remove_master()
2091 sdw_master_rt_free(m_rt, stream); in sdw_stream_remove_master()
2124 struct sdw_master_runtime *m_rt; in sdw_stream_add_slave() local
2136 m_rt = sdw_master_rt_find(slave->bus, stream); in sdw_stream_add_slave()
2137 if (!m_rt) { in sdw_stream_add_slave()
2142 m_rt = sdw_master_rt_alloc(slave->bus, stream); in sdw_stream_add_slave()
2143 if (IS_ERR(m_rt)) { in sdw_stream_add_slave()
2144 ret = PTR_ERR(m_rt); in sdw_stream_add_slave()
2149 if (!m_rt) { in sdw_stream_add_slave()
2161 s_rt = sdw_slave_rt_alloc(slave, m_rt); in sdw_stream_add_slave()
2178 ret = sdw_master_rt_config(m_rt, stream_config); in sdw_stream_add_slave()
2211 sdw_master_rt_free(m_rt, stream); in sdw_stream_add_slave()