On Tue, Sep 10, 2019 at 02:22:06AM +0000, S.j. Wang wrote:
Hi
On Mon, Sep 09, 2019 at 06:33:19PM -0400, Shengjiu Wang wrote:
snd_pcm_format_t is more formal than enum asrc_word_width, which
has
two property, width and physical width, which is more accurate than enum asrc_word_width. So it is better to use in(out)put_format instead of in(out)put_word_width.
Hmm...I don't really see the benefit of using snd_pcm_format_t here...I mean, I know it's a generic one, and would understand if we use it as a param for a common API. But this patch merely packs the "width" by intentionally using this snd_pcm_format_t and then adds another translation to unpack it.. I feel it's a bit overcomplicated. Or am I missing something?
And I feel it's not necessary to use ALSA common format in our own "struct asrc_config" since it is more IP/register specific.
Thanks Nicolin
As you know, we have another M2M function internally, when user want to Set the format through M2M API, it is better to use snd_pcm_format_t instead the Width, for snd_pcm_format_t include two property, data with and physical width In driver some place need data width, some place need physical width. For example how to distinguish S24_LE and S24_3LE in driver, DMA setting needs The physical width, but ASRC need data width.
Another purpose is that we have another new designed ASRC, which support more Formats, I would like it can share same API with this ASRC, using snd_pcm_format_t That we can use the common API, like snd_pcm_format_linear, snd_pcm_format_big_endian to get the property of the format, which is needed by driver.
I see. Just acked the patch.