Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp1747851ybg; Thu, 30 Jul 2020 01:20:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxemlA0CxO6QBbXBTEaDGQRP26WekUfP5JMGaaR12hulgMv1nbb9Yw24pRBo4eH4wWM6Zap X-Received: by 2002:aa7:d155:: with SMTP id r21mr1432333edo.87.1596097243092; Thu, 30 Jul 2020 01:20:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596097243; cv=none; d=google.com; s=arc-20160816; b=HxIoQwhWsfg847ET85YKS4K2FOUENhhgtHB3OOTFo6vOs+on4PHxXXhqFfZn9ZFYKW g4oJA32LQozrJrWpSKZEGopog+ygtF7m5/k10ruRPl2d12OIrw0wAHCpE6mUzzVLHvGM VnN1Z9R8xsoRUa3PTMAXwp/xywDtOvkjidu1EVTzIRVAiPq/bSYIeNjlcDqkyj+aW0Xw Mbui1HGIi/k/UMP6HbJ5iRZqX1J+x73gWFzZTodC9tAmu85nj9jXXqqtrrUYmZFgAHb6 sckaRfmKSl4MRS3fNAR9ZLsTguuOmTcopLEdgLLH83SIz5X8YWq/dDoYr167sUwgWo6I M4YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:ironport-sdr:ironport-sdr; bh=ADNNWX03FGBFRIj82zG+I4Ry90XZFWJPLi0fWOwe+24=; b=UMlkKDT8AzBZhbIsxrnk8gUO5wRoMs82mG2Sg69zlZTbjkvLU6hsMULj1tQziCnr6X lB/gCHJuOUz9pbYQod5q1ukRqi1h9/fqke8lMeYFgdY8MSNERnw6lhzY7eav2VUlxoP6 v94H/JpG67JzYF+NOwIHSDUeH4UIT7gOOs1cEAn1bQ0sX2XyF00Fb+JyUEWz2ruXfySh LAC4Qs6dgZDX9qg9nBqLShh+keG89K7aoBNAAOCwT+UizvWNKURNfgDu4WCxvaXBR1Nc Y/5eBSojLH543pSVHi8N+K4QgC6eQYeXAev5Z2eV6sjTgmeqgEhDsEQvEMPCEsq58f/0 yFhg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h23si2581096ejj.573.2020.07.30.01.20.21; Thu, 30 Jul 2020 01:20:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729629AbgG3IS1 (ORCPT + 99 others); Thu, 30 Jul 2020 04:18:27 -0400 Received: from mga11.intel.com ([192.55.52.93]:37782 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730309AbgG3ISZ (ORCPT ); Thu, 30 Jul 2020 04:18:25 -0400 IronPort-SDR: Hj1CHM+aHH6Xv4MyQ2ODjO4wUqS+EbyPbp9to6k0GF7mYRtGuYW2X53Dy4WcrA+EN22c87+HOq Ob/+p570zr8g== X-IronPort-AV: E=McAfee;i="6000,8403,9697"; a="149394418" X-IronPort-AV: E=Sophos;i="5.75,413,1589266800"; d="scan'208";a="149394418" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jul 2020 01:18:25 -0700 IronPort-SDR: 1fVS2jg0dgV/a8QpBMPaWqGS1VfFv14PttNzgl6lt8t/13HJslfgDb43NLnV9KyKTuywB3y7nw aZMAT4cvVGVg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,413,1589266800"; d="scan'208";a="272863448" Received: from brentlu-desk0.itwn.intel.com ([10.5.253.11]) by fmsmga007.fm.intel.com with ESMTP; 30 Jul 2020 01:18:21 -0700 From: Brent Lu To: alsa-devel@alsa-project.org Cc: Cezary Rojewski , Pierre-Louis Bossart , Liam Girdwood , Jie Yang , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Ranjani Sridharan , Brent Lu , linux-kernel@vger.kernel.org, Daniel Stuart , Andy Shevchenko , Yu-Hsuan Hsu , Guennadi Liakhovetski , Kai Vehmanen , Sam McNally , Damian van Soelen Subject: [PATCH v2 2/2] ASoC: Intel: Add period size constraint on strago board Date: Thu, 30 Jul 2020 16:13:35 +0800 Message-Id: <1596096815-32043-3-git-send-email-brent.lu@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1596096815-32043-1-git-send-email-brent.lu@intel.com> References: <1596096815-32043-1-git-send-email-brent.lu@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yu-Hsuan Hsu The CRAS server does not set the period size in hw_param so ALSA will calculate a value for period size which is based on the buffer size and other parameters. The value may not always be aligned with Atom's dsp design so a constraint is added to make sure the board always has a good value. Cyan uses chtmax98090 and others(banon, celes, edgar, kefka...) use rt5650. Signed-off-by: Yu-Hsuan Hsu Signed-off-by: Brent Lu --- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 14 +++++++++++++- sound/soc/intel/boards/cht_bsw_rt5645.c | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c index 835e9bd..bf67254 100644 --- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c +++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c @@ -283,8 +283,20 @@ static int cht_codec_fixup(struct snd_soc_pcm_runtime *rtd, static int cht_aif1_startup(struct snd_pcm_substream *substream) { - return snd_pcm_hw_constraint_single(substream->runtime, + int err; + + /* Set period size to 240 to align with Atom design */ + err = snd_pcm_hw_constraint_minmax(substream->runtime, + SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 240, 240); + if (err < 0) + return err; + + err = snd_pcm_hw_constraint_single(substream->runtime, SNDRV_PCM_HW_PARAM_RATE, 48000); + if (err < 0) + return err; + + return 0; } static int cht_max98090_headset_init(struct snd_soc_component *component) diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c index b53c024..6e62f0d 100644 --- a/sound/soc/intel/boards/cht_bsw_rt5645.c +++ b/sound/soc/intel/boards/cht_bsw_rt5645.c @@ -414,8 +414,20 @@ static int cht_codec_fixup(struct snd_soc_pcm_runtime *rtd, static int cht_aif1_startup(struct snd_pcm_substream *substream) { - return snd_pcm_hw_constraint_single(substream->runtime, + int err; + + /* Set period size to 240 to align with Atom design */ + err = snd_pcm_hw_constraint_minmax(substream->runtime, + SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 240, 240); + if (err < 0) + return err; + + err = snd_pcm_hw_constraint_single(substream->runtime, SNDRV_PCM_HW_PARAM_RATE, 48000); + if (err < 0) + return err; + + return 0; } static const struct snd_soc_ops cht_aif1_ops = { -- 2.7.4