Hi Pierre, [reducing the recipient list ALSA people] On 12/18/19 4:32 PM, Pierre-Louis Bossart wrote: > On 12/18/19 3:49 AM, Daniel Mack wrote: >> Hi, >> >> On 12/17/19 8:28 PM, Pierre-Louis Bossart wrote: >>> On 12/9/19 12:35 PM, Daniel Mack wrote: >> >>>> + if (!ad242x_node_is_master(priv->node) && >>>> + ((format & SND_SOC_DAIFMT_MASTER_MASK) != >>>> SND_SOC_DAIFMT_CBM_CFM)) { >>>> + dev_err(component->dev, "slave node must be clock master\n"); >>>> + return -EINVAL; >>>> + } >>> >>> It was my understanding that the master node provides the clock to the >>> bus, so not sure how it could be a clock slave, and conversely how a >>> slave node could provide a clock to the bus? >> >> The slave nodes receive the A2B clock from the master node and then >> produce digital audio output that is sent to other components such as >> codecs. Hence, in ASoC terms, they are the clock master. >> >> Likewise, as the master node is receiving its clock from other >> components, it has to be a clock slave in the audio network. >> >> Does that make sense? > > Your slave node acts as a bridge then, but it seems you don't model the > bus-facing interface, which has to follow the master clock. Or do you? Yes, the driver currently only models the SOC-facing side, and that follows the 'reverse' clocking scheme: * The master node always receives the clock on the SOC-facing side, and produces the clock on the bus-facing side. * The slave node always receives the clock on the bus-facing side, and produces the clock on the SOC-facing side. I currently don't see a reason for modelling the bus-facing side in the ASoC topology at all, but of course that could be added. But for the SOC-facing side on *slave* nodes, the currently implemented logic should be correct, no? Do you think it makes sense to add the bus-side as well? > Likewise the master has an 'SOC-facing' interface and a bus-facing > interface. it *could* be master on both if ASRC was supported. The point > is that the bus-facing interface is not clock slave. That's right, I need to look into the modes for the master node again. Maybe the check needs to be relaxed on that end. Thanks, Daniel _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel