mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:46:16 +00:00
drivers:soundwire: qcom: cleanup port maask calculations
Cleanup the port map calculations, existing masks of having separate masks for in and out ports is not really required. Having a single mask for all the ports in the controller is simple and cuts of some unnecessary code. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20240618-soundwire-port-map-v1-1-9644e5545b9b@linaro.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
5a4c1f0207
commit
518aee32c5
@ -197,8 +197,7 @@ struct qcom_swrm_ctrl {
|
|||||||
int num_dout_ports;
|
int num_dout_ports;
|
||||||
int cols_index;
|
int cols_index;
|
||||||
int rows_index;
|
int rows_index;
|
||||||
unsigned long dout_port_mask;
|
unsigned long port_mask;
|
||||||
unsigned long din_port_mask;
|
|
||||||
u32 intr_mask;
|
u32 intr_mask;
|
||||||
u8 rcmd_id;
|
u8 rcmd_id;
|
||||||
u8 wcmd_id;
|
u8 wcmd_id;
|
||||||
@ -1146,11 +1145,7 @@ static void qcom_swrm_stream_free_ports(struct qcom_swrm_ctrl *ctrl,
|
|||||||
mutex_lock(&ctrl->port_lock);
|
mutex_lock(&ctrl->port_lock);
|
||||||
|
|
||||||
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
|
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
|
||||||
if (m_rt->direction == SDW_DATA_DIR_RX)
|
port_mask = &ctrl->port_mask;
|
||||||
port_mask = &ctrl->dout_port_mask;
|
|
||||||
else
|
|
||||||
port_mask = &ctrl->din_port_mask;
|
|
||||||
|
|
||||||
list_for_each_entry(p_rt, &m_rt->port_list, port_node)
|
list_for_each_entry(p_rt, &m_rt->port_list, port_node)
|
||||||
clear_bit(p_rt->num, port_mask);
|
clear_bit(p_rt->num, port_mask);
|
||||||
}
|
}
|
||||||
@ -1195,13 +1190,9 @@ static int qcom_swrm_stream_alloc_ports(struct qcom_swrm_ctrl *ctrl,
|
|||||||
if (ctrl->bus.id != m_rt->bus->id)
|
if (ctrl->bus.id != m_rt->bus->id)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (m_rt->direction == SDW_DATA_DIR_RX) {
|
port_mask = &ctrl->port_mask;
|
||||||
maxport = ctrl->num_dout_ports;
|
maxport = ctrl->num_dout_ports + ctrl->num_din_ports;
|
||||||
port_mask = &ctrl->dout_port_mask;
|
|
||||||
} else {
|
|
||||||
maxport = ctrl->num_din_ports;
|
|
||||||
port_mask = &ctrl->din_port_mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
|
list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) {
|
||||||
slave = s_rt->slave;
|
slave = s_rt->slave;
|
||||||
@ -1401,8 +1392,7 @@ static int qcom_swrm_get_port_config(struct qcom_swrm_ctrl *ctrl)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* Valid port numbers are from 1-14, so mask out port 0 explicitly */
|
/* Valid port numbers are from 1-14, so mask out port 0 explicitly */
|
||||||
set_bit(0, &ctrl->dout_port_mask);
|
set_bit(0, &ctrl->port_mask);
|
||||||
set_bit(0, &ctrl->din_port_mask);
|
|
||||||
|
|
||||||
ret = of_property_read_u8_array(np, "qcom,ports-offset1",
|
ret = of_property_read_u8_array(np, "qcom,ports-offset1",
|
||||||
off1, nports);
|
off1, nports);
|
||||||
|
Loading…
Reference in New Issue
Block a user