On 7/26/19 5:14 AM, Cezary Rojewski wrote:
On 2019-07-26 01:40, Pierre-Louis Bossart wrote:
- return do_bank_switch(stream); + ret = do_bank_switch(stream); + if (ret < 0) { + dev_err(bus->dev, "Bank switch failed: %d\n", ret); + return ret; + }
+ /* make sure alternate bank (previous current) is also disabled */ + list_for_each_entry(m_rt, &stream->master_list, stream_node) { + bus = m_rt->bus; + /* Disable port(s) */ + ret = sdw_enable_disable_ports(m_rt, false); + if (ret < 0) { + dev_err(bus->dev, "Disable port(s) failed: %d\n", ret); + return ret; + } + }
+ return 0; } /**
While not directly connected to this commit, I see that you do: link_for_each_entry(m_rt, &stream->master_list, stream_node)
quite often in /stream.c code. Helpful macro would prove useful.
Yes, but the flip side is that people need to look at what the macro does to figure it out, while everyone knows what list_for_each_entry() means. Not sure about this one. And on top of this we'll probably have to rework this code to have a background copy of the current bank in the alternate bank so it'd rather leave it simple for now.