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 X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 05DEBC2BA19 for ; Tue, 14 Apr 2020 18:20:18 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 87D9E2054F for ; Tue, 14 Apr 2020 18:20:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="Sj17m2NX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87D9E2054F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id DBB6E16B4; Tue, 14 Apr 2020 20:19:25 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz DBB6E16B4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1586888415; bh=0XOYLW1TG0sNcxurg9zPZnXL7edftdvPFeW1BUnPR+w=; h=Subject:To:References:From:Date:In-Reply-To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=Sj17m2NX6D0zDnVGwA1NnUzSVCjljAIJyn90WAhXZnQceqlHfNNfZHbKTdNIWXbEp xfON0CsWEzzHkz5+3jG+nRqbiC9yzQrfMcHRS2zJTJ+kzWpAfXBukJYaLubJrKSoDD OzRimp5WIFIH5aVTxU47mpQX5y3mZe7s70w1XZ7M= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 116EDF802A7; Tue, 14 Apr 2020 20:17:16 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 7F0FDF802A8; Tue, 14 Apr 2020 20:17:12 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 65EF1F802A0 for ; Tue, 14 Apr 2020 20:17:07 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 65EF1F802A0 IronPort-SDR: FPpfc+BWJQPiLNOlgnx02jWgzfYGeXByL3f9BAtqgxCob4JjgwBwBeh25MvlKe75qWF0qFsnv5 LP2FwMSBtf1w== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2020 11:17:03 -0700 IronPort-SDR: 425xsj/me+Mu6KoRt4fmVvOx1tDcYvRrrY3jMhJI3+ahp/vk1Nz3R6YgMJAcUuVTc1v1tVNijn 4HDs1NURcHXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,383,1580803200"; d="scan'208";a="253272934" Received: from svarahab-mobl.amr.corp.intel.com (HELO [10.212.190.40]) ([10.212.190.40]) by orsmga003.jf.intel.com with ESMTP; 14 Apr 2020 11:16:58 -0700 Subject: Re: [RFC PATCH 05/16] ASoC: Intel: sof-pcm512x: reconfigure sclk in hw_params if needed To: Andy Shevchenko References: <20200409195841.18901-1-pierre-louis.bossart@linux.intel.com> <20200409195841.18901-6-pierre-louis.bossart@linux.intel.com> <20200414172459.GE34613@smile.fi.intel.com> From: Pierre-Louis Bossart Message-ID: Date: Tue, 14 Apr 2020 13:06:58 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200414172459.GE34613@smile.fi.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Cc: alsa-devel@alsa-project.org, Rob Herring , linux-gpio@vger.kernel.org, tiwai@suse.de, Linus Walleij , Stephen Boyd , Daniel Matuschek , Hui Wang , Matthias Reichl , broonie@kernel.org, Bartosz Golaszewski , Michael Turquette , linux-clk@vger.kernel.org X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" >> + err = snd_interval_ratnum(hw_param_interval(params, >> + SNDRV_PCM_HW_PARAM_RATE), >> + 1, &rats_no_pll, &num, &den); > >> + if (err >= 0 && den) { > > Perhaps usual pattern, i.e. > > if (err < 0 || !den) > return 0; > (so, above seems optional configuration) > > params...; > return 0; ok > >> + if (ctx->is_dac_pro) { > > if (!...) > return 0; > > ...and drop the redundant ret assignment above. yes, this was suggested by Guennadi today as well. >> + ret = aif1_update_rate_den(substream, params); >> + if (ret) { >> + dev_err(dev, "Failed to update rate denominator: %d\n", ret); >> + return ret; >> + } > > Do you still need below steps when current_rate == sclk_rate? Good question. I assume the values are properly stored by the regmap cache, but if these channel and width do change (something we don't support for now) then yes we should move this out of the if case. I'll give it a try, thanks for flagging this. >> + ret = snd_soc_dai_set_bclk_ratio(rtd->codec_dai, >> + channels * width); >> + if (ret) { >> + dev_err(dev, "Failed to set bclk ratio : %d\n", ret); >> + return ret; >> + } >> + } >> + >> + return ret; >> +} > 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 X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF7DBC2BA19 for ; Tue, 14 Apr 2020 18:17:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8B21420767 for ; Tue, 14 Apr 2020 18:17:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503748AbgDNSRH (ORCPT ); Tue, 14 Apr 2020 14:17:07 -0400 Received: from mga11.intel.com ([192.55.52.93]:39813 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2503741AbgDNSRF (ORCPT ); Tue, 14 Apr 2020 14:17:05 -0400 IronPort-SDR: 6ceffJvKuuEqWJwBNiFHtJbi8lxdxraQCMEwCeBpaRfdMJTpu2v+IXTb3+ufX+J3H4r+6AEdCj YmQb7VrOi16w== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2020 11:17:04 -0700 IronPort-SDR: 425xsj/me+Mu6KoRt4fmVvOx1tDcYvRrrY3jMhJI3+ahp/vk1Nz3R6YgMJAcUuVTc1v1tVNijn 4HDs1NURcHXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,383,1580803200"; d="scan'208";a="253272934" Received: from svarahab-mobl.amr.corp.intel.com (HELO [10.212.190.40]) ([10.212.190.40]) by orsmga003.jf.intel.com with ESMTP; 14 Apr 2020 11:16:58 -0700 Subject: Re: [RFC PATCH 05/16] ASoC: Intel: sof-pcm512x: reconfigure sclk in hw_params if needed To: Andy Shevchenko Cc: alsa-devel@alsa-project.org, tiwai@suse.de, broonie@kernel.org, Daniel Matuschek , Matthias Reichl , Hui Wang , linux-gpio@vger.kernel.org, Linus Walleij , Bartosz Golaszewski , linux-clk@vger.kernel.org, Michael Turquette , Stephen Boyd , Rob Herring References: <20200409195841.18901-1-pierre-louis.bossart@linux.intel.com> <20200409195841.18901-6-pierre-louis.bossart@linux.intel.com> <20200414172459.GE34613@smile.fi.intel.com> From: Pierre-Louis Bossart Message-ID: Date: Tue, 14 Apr 2020 13:06:58 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200414172459.GE34613@smile.fi.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org >> + err = snd_interval_ratnum(hw_param_interval(params, >> + SNDRV_PCM_HW_PARAM_RATE), >> + 1, &rats_no_pll, &num, &den); > >> + if (err >= 0 && den) { > > Perhaps usual pattern, i.e. > > if (err < 0 || !den) > return 0; > (so, above seems optional configuration) > > params...; > return 0; ok > >> + if (ctx->is_dac_pro) { > > if (!...) > return 0; > > ...and drop the redundant ret assignment above. yes, this was suggested by Guennadi today as well. >> + ret = aif1_update_rate_den(substream, params); >> + if (ret) { >> + dev_err(dev, "Failed to update rate denominator: %d\n", ret); >> + return ret; >> + } > > Do you still need below steps when current_rate == sclk_rate? Good question. I assume the values are properly stored by the regmap cache, but if these channel and width do change (something we don't support for now) then yes we should move this out of the if case. I'll give it a try, thanks for flagging this. >> + ret = snd_soc_dai_set_bclk_ratio(rtd->codec_dai, >> + channels * width); >> + if (ret) { >> + dev_err(dev, "Failed to set bclk ratio : %d\n", ret); >> + return ret; >> + } >> + } >> + >> + return ret; >> +} >