From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A4FE0EE4981 for ; Wed, 11 Sep 2024 09:22:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:MIME-Version: References:In-Reply-To:Subject:Cc:To:From:Message-ID:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=jHHB1d6LpCAvI301vcFCxsMNfaOpaL8edCvtkNjoSj0=; b=E3eAlFmGbJ5ptb4swLTHx7ybeh N8VlIVZ6OsP9RurjD84kKvu8lvXCqpYdaBjVK11HoGixpKoYYyCPbyBT2BJEam/dErwUUGmegRixJ NiDYNDVIP/usGf5+qIlmp6EwfIJklt3IhAI4V0Dt55wNTKJgPHSZGrcwyWBd/RUGIRvSZeIj5X8jT 4J3oye6KvcbwKql0eg4i4ZaQeb5HpFuSijBctKKzVpvQJmHLb4/xOTB911+z2/CNaTVm3V4QvPEkv u6Hzq9+0PcpBdPpHjjnGsB5d2jEaykjTFhWWDy2xOChDHthsHrOXcveJ48eNRWzu0P9aVKjNsxsZY ZE0EEdEQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1soJYo-00000008tQC-17Pm; Wed, 11 Sep 2024 09:22:50 +0000 Received: from smtp-out1.suse.de ([195.135.223.130]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1soJWz-00000008t4z-0H8o for linux-arm-kernel@lists.infradead.org; Wed, 11 Sep 2024 09:21:01 +0000 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 1751021977; Wed, 11 Sep 2024 09:20:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1726046455; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=jHHB1d6LpCAvI301vcFCxsMNfaOpaL8edCvtkNjoSj0=; b=WlQ0c93ft5NkmtIjDAxIyoPfnShfAph0lnN95j1EQQmemU2/rNQzVpZ6GPU0uRQ2Nx5msM omGPJJygqEFdcA6sSMrokC8qPgYDze0kr08JjPdvwI+DUFzZdRZ+1RApuisDk+mAZFRYVT 4fPRqYJat1eN2YxjDNELF7YstZcimLY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1726046455; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=jHHB1d6LpCAvI301vcFCxsMNfaOpaL8edCvtkNjoSj0=; b=dXvnduZTuWfVWuFS/1Ru9PU0tD2khFp3SISeB1vp+/7MtjgeDTqMXMt5CzcGB0ruBLurpL lznzo8kcduKy9VBw== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1726046454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=jHHB1d6LpCAvI301vcFCxsMNfaOpaL8edCvtkNjoSj0=; b=jZ1PUUEEbTy/jFdjFdttLjX3JZjXzc2heJAfTztuFvMe2tVCTTGobEuOsI0P5P3OKZFa69 l5w/sOp34YsMuI5ayIpX3q6kH36SjkTjHwvEboO38H8RslAL7TReTcZh+Oqh2/bCaj08UR czNv/IWhzprYgI8ov/sKHmoc4hGAOFA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1726046454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=jHHB1d6LpCAvI301vcFCxsMNfaOpaL8edCvtkNjoSj0=; b=QM1RHpuyGurfRc1rjQQF09dFQ0fje1sSk36DLrg1MrSjI/+xUkB0jNkLGRgCTji61M8Prd 6+7pi6dPBeeF5RCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6F261132CB; Wed, 11 Sep 2024 09:20:53 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id Kj/PGfVg4WbbbgAAD6G6ig (envelope-from ); Wed, 11 Sep 2024 09:20:53 +0000 Date: Wed, 11 Sep 2024 11:21:41 +0200 Message-ID: <87ed5q4kbe.wl-tiwai@suse.de> From: Takashi Iwai To: Pierre-Louis Bossart Cc: Jerome Brunet , Jaroslav Kysela , Takashi Iwai , David Rhodes , Richard Fitzgerald , Liam Girdwood , Mark Brown , Cezary Rojewski , Liam Girdwood , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Kai Vehmanen , Srinivas Kandagatla , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com, alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev Subject: Re: [PATCH 01/13] ALSA: pcm: add more sample rate definitions In-Reply-To: <1ab3efaa-863c-4dd0-8f81-b50fd9775fad@linux.intel.com> References: <20240905-alsa-12-24-128-v1-0-8371948d3921@baylibre.com> <20240905-alsa-12-24-128-v1-1-8371948d3921@baylibre.com> <1ab3efaa-863c-4dd0-8f81-b50fd9775fad@linux.intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.2 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spamd-Result: default: False [-1.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; RCPT_COUNT_TWELVE(0.00)[25]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[baylibre.com,perex.cz,suse.com,cirrus.com,opensource.cirrus.com,gmail.com,kernel.org,intel.com,linux.intel.com,linaro.org,csie.org,sholland.org,vger.kernel.org,alsa-project.org,lists.infradead.org,lists.linux.dev]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,baylibre.com:email,suse.de:mid] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240911_022057_286895_B59CC377 X-CRM114-Status: GOOD ( 32.66 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, 11 Sep 2024 11:09:59 +0200, Pierre-Louis Bossart wrote: > > > > On 9/5/24 16:12, Jerome Brunet wrote: > > This adds a sample rate definition for 12kHz, 24kHz and 128kHz. > > > > Admittedly, just a few drivers are currently using these sample > > rates but there is enough of a recurrence to justify adding a definition > > for them and remove some custom rate constraint code while at it. > > > > The new definitions are not added to the interval definitions, such as > > SNDRV_PCM_RATE_8000_44100, because it would silently add new supported > > rates to drivers that may or may not support them. For sure the drivers > > have not been tested for these new rates so it is better to leave them out > > of interval definitions. > > > > That being said, the added rates are multiples of well know rates families, > > it is very likely that a lot of devices out there actually supports them. > > > > Signed-off-by: Jerome Brunet > > --- > > include/sound/pcm.h | 31 +++++++++++++++++-------------- > > sound/core/pcm_native.c | 6 +++--- > > 2 files changed, 20 insertions(+), 17 deletions(-) > > > > diff --git a/include/sound/pcm.h b/include/sound/pcm.h > > index 732121b934fd..c993350975a9 100644 > > --- a/include/sound/pcm.h > > +++ b/include/sound/pcm.h > > @@ -109,20 +109,23 @@ struct snd_pcm_ops { > > #define SNDRV_PCM_RATE_5512 (1U<<0) /* 5512Hz */ > > #define SNDRV_PCM_RATE_8000 (1U<<1) /* 8000Hz */ > > #define SNDRV_PCM_RATE_11025 (1U<<2) /* 11025Hz */ > > -#define SNDRV_PCM_RATE_16000 (1U<<3) /* 16000Hz */ > > -#define SNDRV_PCM_RATE_22050 (1U<<4) /* 22050Hz */ > > -#define SNDRV_PCM_RATE_32000 (1U<<5) /* 32000Hz */ > > -#define SNDRV_PCM_RATE_44100 (1U<<6) /* 44100Hz */ > > -#define SNDRV_PCM_RATE_48000 (1U<<7) /* 48000Hz */ > > -#define SNDRV_PCM_RATE_64000 (1U<<8) /* 64000Hz */ > > -#define SNDRV_PCM_RATE_88200 (1U<<9) /* 88200Hz */ > > -#define SNDRV_PCM_RATE_96000 (1U<<10) /* 96000Hz */ > > -#define SNDRV_PCM_RATE_176400 (1U<<11) /* 176400Hz */ > > -#define SNDRV_PCM_RATE_192000 (1U<<12) /* 192000Hz */ > > -#define SNDRV_PCM_RATE_352800 (1U<<13) /* 352800Hz */ > > -#define SNDRV_PCM_RATE_384000 (1U<<14) /* 384000Hz */ > > -#define SNDRV_PCM_RATE_705600 (1U<<15) /* 705600Hz */ > > -#define SNDRV_PCM_RATE_768000 (1U<<16) /* 768000Hz */ > > +#define SNDRV_PCM_RATE_12000 (1U<<3) /* 12000Hz */ > > +#define SNDRV_PCM_RATE_16000 (1U<<4) /* 16000Hz */ > > +#define SNDRV_PCM_RATE_22050 (1U<<5) /* 22050Hz */ > > +#define SNDRV_PCM_RATE_24000 (1U<<6) /* 24000Hz */ > > +#define SNDRV_PCM_RATE_32000 (1U<<7) /* 32000Hz */ > > +#define SNDRV_PCM_RATE_44100 (1U<<8) /* 44100Hz */ > > +#define SNDRV_PCM_RATE_48000 (1U<<9) /* 48000Hz */ > > +#define SNDRV_PCM_RATE_64000 (1U<<10) /* 64000Hz */ > > +#define SNDRV_PCM_RATE_88200 (1U<<11) /* 88200Hz */ > > +#define SNDRV_PCM_RATE_96000 (1U<<12) /* 96000Hz */ > > +#define SNDRV_PCM_RATE_128000 (1U<<13) /* 128000Hz */ > > +#define SNDRV_PCM_RATE_176400 (1U<<14) /* 176400Hz */ > > +#define SNDRV_PCM_RATE_192000 (1U<<15) /* 192000Hz */ > > +#define SNDRV_PCM_RATE_352800 (1U<<16) /* 352800Hz */ > > +#define SNDRV_PCM_RATE_384000 (1U<<17) /* 384000Hz */ > > +#define SNDRV_PCM_RATE_705600 (1U<<18) /* 705600Hz */ > > +#define SNDRV_PCM_RATE_768000 (1U<<19) /* 768000Hz */ > > > > #define SNDRV_PCM_RATE_CONTINUOUS (1U<<30) /* continuous range */ > > #define SNDRV_PCM_RATE_KNOT (1U<<31) /* supports more non-continuous rates */ > > diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c > > index 44381514f695..7461a727615c 100644 > > --- a/sound/core/pcm_native.c > > +++ b/sound/core/pcm_native.c > > @@ -2418,13 +2418,13 @@ static int snd_pcm_hw_rule_sample_bits(struct snd_pcm_hw_params *params, > > return snd_interval_refine(hw_param_interval(params, rule->var), &t); > > } > > > > -#if SNDRV_PCM_RATE_5512 != 1 << 0 || SNDRV_PCM_RATE_192000 != 1 << 12 > > +#if SNDRV_PCM_RATE_5512 != 1 << 0 || SNDRV_PCM_RATE_768000 != 1 << 19 > > #error "Change this table" > > #endif > > > > static const unsigned int rates[] = { > > - 5512, 8000, 11025, 16000, 22050, 32000, 44100, > > - 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000 > > + 5512, 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, > > + 88200, 96000, 128000, 176400, 192000, 352800, 384000, 705600, 768000, > > }; > > > > const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = { > > 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. But it'd be better if anyone can double-check. thanks, Takashi