@@ -56,23 +56,24 @@ EXPORT_SYMBOL_GPL(snd_soc_params_to_bclk);
/**
* snd_soc_tdm_params_to_bclk - calculate bclk from params and tdm slot info.
*
- * Calculate the bclk from the params sample rate and the tdm slot count and
- * tdm slot width. Either or both of tdm_width and tdm_slots can be 0.
+ * Calculate the bclk from the params sample rate, the tdm slot count and the
+ * tdm slot width. Optionally round-up the slot count to a given multiple.
+ * Either or both of tdm_width and tdm_slots can be 0.
*
- * If tdm_width == 0 and tdm_slots > 0: the params_width will be used.
- * If tdm_width > 0 and tdm_slots == 0: the params_channels will be used
- * as the slot count.
- * Both tdm_width and tdm_slots are 0: this is equivalent to calling
- * snd_soc_params_to_bclk().
+ * If tdm_width == 0: use params_width() as the slot width.
+ * If tdm_slots == 0: use params_channels() as the slot count.
*
- * If slot_multiple > 1 the slot count (or params_channels if tdm_slots == 0)
- * will be rounded up to a multiple of this value. This is mainly useful for
+ * If slot_multiple > 1 the slot count (or params_channels() if tdm_slots == 0)
+ * will be rounded up to a multiple of slot_multiple. This is mainly useful for
* I2S mode, which has a left and right phase so the number of slots is always
* a multiple of 2.
*
+ * If tdm_width == 0 && tdm_slots == 0 && slot_multiple < 2, this is equivalent
+ * to calling snd_soc_params_to_bclk().
+ *
* @params: Pointer to struct_pcm_hw_params.
- * @tdm_width: Width in bits of the tdm slots.
- * @tdm_slots: Number of tdm slots per frame.
+ * @tdm_width: Width in bits of the tdm slots. Must be >= 0.
+ * @tdm_slots: Number of tdm slots per frame. Must be >= 0.
* @slot_multiple: If >1 roundup slot count to a multiple of this value.
*
* Return: bclk frequency in Hz, else a negative error code if params format
The statement that snd_soc_tdm_params_to_bclk() is equivalent to snd_soc_params_to_bclk() if tdm_width==tdm_slots==0 is not accurate, it is only true is slot_multiple is also <2. However, the description of special-case behaviour in terms of pairs of tdm_width and tdm_slot values is not particularly helpful so we might as well take the opportunity to rework the description to say the same thing in a simpler way. The behaviour of a pair of values is obvious from a description of each argument. At the same time make a few edits to clarify the rest of the description. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> --- sound/soc/soc-utils.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-)