[PATCH 01/13] ALSA: pcm: add more sample rate definitions
Jaroslav Kysela
perex at perex.cz
Wed Sep 11 03:58:53 PDT 2024
On 11. 09. 24 12:51, Takashi Iwai wrote:
> On Wed, 11 Sep 2024 12:33:01 +0200,
> Péter Ujfalusi wrote:
>>
>> On 11/09/2024 12:21, Takashi Iwai wrote:
>>>> Wondering if this is backwards compatible with the alsa-lib definitions,
>>>> specifically the topology parts which did unfortunately have a list of
>>>> rates that will map to a different index now:
>>>>
>>>>
>>>> typedef enum _snd_pcm_rates {
>>>> SND_PCM_RATE_UNKNOWN = -1,
>>>> SND_PCM_RATE_5512 = 0,
>>>> SND_PCM_RATE_8000,
>>>> SND_PCM_RATE_11025,
>>>> SND_PCM_RATE_16000,
>>>> SND_PCM_RATE_22050,
>>>> SND_PCM_RATE_32000,
>>>> SND_PCM_RATE_44100,
>>>> SND_PCM_RATE_48000,
>>>> SND_PCM_RATE_64000,
>>>> SND_PCM_RATE_88200,
>>>> SND_PCM_RATE_96000,
>>>> SND_PCM_RATE_176400,
>>>> SND_PCM_RATE_192000,
>>>> SND_PCM_RATE_CONTINUOUS = 30,
>>>> SND_PCM_RATE_KNOT = 31,
>>>> SND_PCM_RATE_LAST = SND_PCM_RATE_KNOT,
>>>> } snd_pcm_rates_t;
>>>
>>> As far as I understand correctly, those rate bits used for topology
>>> are independent from the bits used for PCM core, although it used to
>>> be the same. Maybe better to rename (such as SND_TPLG_RATE_*) so that
>>> it's clearer only for topology stuff.
>>
>> Even if we rename these in alsa-lib we will need translation from
>> SND_TPLG_RATE_ to SND_PCM_RATE_ in kernel likely?
>>
>> The topology files are out there and this is an ABI...
>>
>>> But it'd be better if anyone can double-check.
>>
>> Since the kernel just copies the rates bitfield, any rate above 11025
>> will be misaligned and result broken setup.
>
> Yep, I noticed it now, too.
>
> Below is the fix patch, totally untested.
> It'd be appreciated if anyone can test it quickly.
>
>
> thanks,
>
> Takashi
>
> -- 8< --
> From: Takashi Iwai <tiwai at suse.de>
> Subject: [PATCH] ALSA: pcm: Fix breakage of PCM rates used for topology
>
> It turned out that the topology ABI takes the standard PCM rate bits
> as is, and it means that the recent change of the PCM rate bits would
> lead to the inconsistent rate values used for topology.
>
> This patch reverts the original PCM rate bit definitions while adding
> the new rates to the extended bits instead. This needed the change of
> snd_pcm_known_rates, too. And this also required to fix the handling
> in snd_pcm_hw_limit_rates() that blindly assumed that the list is
> sorted while it became unsorted now.
>
> Fixes: 090624b7dc83 ("ALSA: pcm: add more sample rate definitions")
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
This looks fine. But the topology rate bits should not depend on those bits.
It's a bit pitty that the standard PCM ABI does not use those bits for user
space and we are doing this change just for topology ABI.
Reviewed-by: Jaroslav Kysela <perex at perex.cz>
--
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
More information about the linux-arm-kernel
mailing list