Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp4012658rdb; Thu, 14 Sep 2023 09:11:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEAt1Bc0PPoeK6p4MyGTARbSlKVPCETa6sAPLJ0wPM9AH9cHVPE4k0G3B+a5cIEaY2ND/xZ X-Received: by 2002:a05:6358:4298:b0:142:d262:36fa with SMTP id s24-20020a056358429800b00142d26236famr6458675rwc.6.1694707885762; Thu, 14 Sep 2023 09:11:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694707885; cv=none; d=google.com; s=arc-20160816; b=WL8wIeArWUUl0fluDcwkuY5DCRg8SfTaN2MRq1iPuhX1gqCBaUkbnT7+aRlJ+Atq9Q yDl7ikFqTpq5TisQM7nJHmMUsXadzyC2kfv51c9nkPa0//o/h8WIjv4pXgjSaZb+quOu D+wMN04NfTgScO3Ombw2SxoCyYzm4i2GL1owmhb8q6js4rJK+1OjpK4vDo4xxAAsem92 fFkHGjQVx4AfEOQFidDFwcgAVnYB1w6QRfNCl62JXnxe9kZslKKVX9cH0lWAfcyTtucw aMK7TnjgSRsCLAh5GOVcbirZweBPMjvHBGpNX32HeZHVhckFaaQRqiV5/S7523cPiVPF G1+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=PgPgRK+/j1+zXmVy3XMmwkmh0K8fdGhl//JJcR1N0uQ=; fh=+/DzR/shtn859kA9twsgbLwV1z5MglYuHp6J65I2G0k=; b=slq8sCtGY2ed11IbIyoFXYobAybvjEEQYD6OU8ynjn3pa5TvnwmwRXXdPDbvS1eG40 BFAw/JUTC7sqq+oaTZ2tzlmyP0dQ604a2Jcjj8OWaC4FBN+usXAQS+tnzpb40gey2ELY NKYSKb1xyjJViDBxuddcaIx2RdghXSRZv1luWwquyqbVTtlB3ZuY5DJ2DPMtLWlydMZb Ibz9IO4czMYVX8Tpas+x/gS7gYnfQnTXWgjE2eejneBu6cvcffTkOprALO2v10onwVoT boNdaJ3QJttvFJzNGOKO3Wh26t562RIQPW+OUqVx1z+eeQAmDlZziPpWmGGo4sv6gz5P FByQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b="KESbjM/m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Return-Path: Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id k3-20020a6568c3000000b005641fc2684bsi1854627pgt.527.2023.09.14.09.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Sep 2023 09:11:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b="KESbjM/m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 75660824BACE; Thu, 14 Sep 2023 02:39:32 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237860AbjINJjC (ORCPT + 99 others); Thu, 14 Sep 2023 05:39:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49824 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237253AbjINJi0 (ORCPT ); Thu, 14 Sep 2023 05:38:26 -0400 Received: from mx0b-001ae601.pphosted.com (mx0a-001ae601.pphosted.com [67.231.149.25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BA6C71FC4; Thu, 14 Sep 2023 02:38:20 -0700 (PDT) Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 38E3ihC2012982; Thu, 14 Sep 2023 04:37:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h= date:from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=PODMain02222019; bh=PgPgRK+/j1+zXmV y3XMmwkmh0K8fdGhl//JJcR1N0uQ=; b=KESbjM/m4ZW7mMq5uzG5dkqyirKQeL4 BDqeq0I1ihRuCLseqbliVzcCFp+b5PxoNo8z2y5MpoCscN4mE/pHDbxJP4GquRcu CRSNKjWI4oJ4Mzet80XEyy+yNjpDhzQwxI7ipaUKt+MuRof11DJA0tOKIGXiAk+I x5xsifkGQE1IXQ+amgV6dp6Tvwi3MvVbxzaqE7De/zZ2NdBepcYV4sCGk66s42tv dOEP2xlWVQABUa1AqrVgZvoKJTCfd+DuTM3PFLikAVj8g3eDJ6OkO1fm8C2ZL2VP AvybehyKqGXG+BElqCibioPP9ThyJ1UBKdG2bWlVpqrHgsxiqFyCOmw== Received: from ediex01.ad.cirrus.com ([84.19.233.68]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 3t2y7u25xv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 14 Sep 2023 04:37:33 -0500 (CDT) Received: from ediex02.ad.cirrus.com (198.61.84.81) by ediex01.ad.cirrus.com (198.61.84.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.37; Thu, 14 Sep 2023 10:37:31 +0100 Received: from ediswmail.ad.cirrus.com (198.61.86.93) by anon-ediex02.ad.cirrus.com (198.61.84.81) with Microsoft SMTP Server id 15.2.1118.37 via Frontend Transport; Thu, 14 Sep 2023 10:37:31 +0100 Received: from ediswmail.ad.cirrus.com (ediswmail.ad.cirrus.com [198.61.86.93]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id 03BE93575; Thu, 14 Sep 2023 09:37:31 +0000 (UTC) Date: Thu, 14 Sep 2023 09:37:31 +0000 From: Charles Keepax To: John Watts CC: , Liam Girdwood , "Mark Brown" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , Jaroslav Kysela , Takashi Iwai , , , Subject: Re: [PATCH v2 1/3] ASoC: wm8782: Handle maximum audio rate at runtime Message-ID: <20230914093731.GS103419@ediswmail.ad.cirrus.com> References: <20230913171552.92252-1-contact@jookia.org> <20230913171552.92252-2-contact@jookia.org> <20230914092107.GR103419@ediswmail.ad.cirrus.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Proofpoint-GUID: b6do4WOHYNEt-Js07443kw8u0Rdbb7Z4 X-Proofpoint-ORIG-GUID: b6do4WOHYNEt-Js07443kw8u0Rdbb7Z4 X-Proofpoint-Spam-Reason: safe Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Thu, 14 Sep 2023 02:39:32 -0700 (PDT) X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email On Thu, Sep 14, 2023 at 07:27:03PM +1000, John Watts wrote: > On Thu, Sep 14, 2023 at 09:21:07AM +0000, Charles Keepax wrote: > > On Thu, Sep 14, 2023 at 03:15:50AM +1000, John Watts wrote: > > > The wm8782 supports up to 192kHz audio when pins are set correctly. > > > Instead of hardcoding which rates are supported enable them all > > > then refer to a max_rate variable at runtime. > > > > > > Signed-off-by: John Watts > > > --- > > > +static int wm8782_dai_hw_params(struct snd_pcm_substream *component, > > > + struct snd_pcm_hw_params *params, > > > + struct snd_soc_dai *dai) > > > +{ > > > + struct wm8782_priv *priv = > > > + snd_soc_component_get_drvdata(dai->component); > > > + > > > + if (params_rate(params) > priv->max_rate) > > > + return -EINVAL; > > > + > > > + return 0; > > > +} > > > > We should be setting this as a constraint in startup, rather > > than returning an error in hw_params. That will let user-space > > know the supported rates and allow it to resample if necessary. > > How do you do this? The struct with the rate is statically defined. > You can programmatically add additional constraints, commonly this will be done from the startup callback on the DAI. See something like arizona_startup in sound/soc/codecs/arizona.c for an example, that enables 44.1/48k rates based on clocks but the principle should be similar. Thanks, Charles