> > static int do_bank_switch(struct sdw_stream_runtime *stream) > > { > >- struct sdw_master_runtime *m_rt = stream->m_rt; > >+ struct sdw_master_runtime *m_rt = NULL; > > const struct sdw_master_ops *ops; > >- struct sdw_bus *bus = m_rt->bus; > >+ struct sdw_bus *bus = NULL; > > int ret = 0; > >- ops = bus->ops; > >- /* Pre-bank switch */ > >- if (ops->pre_bank_switch) { > >- ret = ops->pre_bank_switch(bus); > >+ list_for_each_entry(m_rt, &stream->master_list, stream_node) { > >+ bus = m_rt->bus; > >+ ops = bus->ops; > >+ > >+ /* Pre-bank switch */ > >+ if (ops->pre_bank_switch) { > >+ ret = ops->pre_bank_switch(bus); > >+ if (ret < 0) { > >+ dev_err(bus->dev, > >+ "Pre bank switch op failed: %d", ret); > >+ return ret; > >+ } > >+ } > >+ > >+ /* Bank switch */ > >+ ret = sdw_bank_switch(bus); > > if (ret < 0) { > >- dev_err(bus->dev, "Pre bank switch op failed: %d", ret); > >+ dev_err(bus->dev, "Bank switch failed: %d", ret); > > return ret; > > } > You probably want to add a comment that in multi-link operation the actual > bank_switch happens later and is done in a synchronized manner. This is lost > if you just move code around and move the bank_switch into a loop. > As mentioned in the commit log, this is just a boilerplate conversion to loop over multiple m_rt and it is in the next patch that the multilink_bank_switch() is added. So, I can mention in the commit log of this patch that this is just a preparatory patch for the next patch. And, also I will add the necessary details in the next patch. --Shreyas -- _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel