> On 6. 6. 2022, at 22:17, Mark Brown <broonie@xxxxxxxxxx> wrote: > > On Mon, Jun 06, 2022 at 09:19:08PM +0200, Martin Povišer wrote: > >> +++ b/sound/soc/apple/mca.c >> @@ -0,0 +1,1122 @@ >> +/* >> + * Apple SoCs MCA driver > > Please add SPDX headers to all your files. > >> + mca_modify(cl, serdes_conf, >> + SERDES_CONF_SOME_RST, SERDES_CONF_SOME_RST); >> + (void) readl_relaxed(cl->base + serdes_conf); > > Please drop the cast, casts to/from void are generally a warning sign as > they're unneeded in C. If you want to document the barrier use a > comment or wrapper function. > >> + /* >> + * Codecs require clocks at time of umute with the 'mute_stream' op. >> + * We need to enable them here at the latest (frontend prepare would >> + * be too late). >> + */ >> + if (!mca_fe_clocks_in_use(fe_cl)) { >> + ret = mca_fe_enable_clocks(fe_cl); >> + if (ret < 0) >> + return ret; >> + } > > This requirement is CODEC specific. It's fine to bodge around to > satisfy it though, especially given the restricted set of platforms this > can be used with. > >> + fe_cl = &mca->clusters[cl->port_driver]; >> + if (!mca_fe_clocks_in_use(fe_cl)) >> + return 0; /* Nothing to do */ >> + >> + cl->clocks_in_use[substream->stream] = false; >> + >> + if (!mca_fe_clocks_in_use(fe_cl)) >> + mca_fe_disable_clocks(fe_cl); > > Are you sure this doesn't need locking? I am not sure. I need to study what locking is already done by ALSA/ASoC. I assume the two stream directions here don’t share a lock already...