Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp2612247ybg; Fri, 31 Jul 2020 05:31:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxDTP8bypTHGg+c/z+AcxpiDorPTGIoQUDp/MTug+02/92WAiNpYTYYlG7Vrgz1baCKoe5w X-Received: by 2002:a17:906:c007:: with SMTP id e7mr3823233ejz.481.1596198698807; Fri, 31 Jul 2020 05:31:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596198698; cv=none; d=google.com; s=arc-20160816; b=giKPXckLaCQvM2GeBwSnfBHdhUdUatdDXXeAZnhPnObChsDCKwMOyiclAacE90leTO E/JVTXCypm8bB6GYnxdim3LOdlqPQSy4nKZpO1pcuzF0aESc/axTJsi8PIq5NIaGnmnt ODPVRxEPikj2qEeoYPAvP/FiGK0EBaFAqWcZMD0RDi4uffscgkbku5IxZEPUJtOxcDiu Tx0lybRqO5UiOA9zZVnZ9+Y6IRG/H+w+zkTzwkkQaypczpUfLsfRCY+o9NRmBrW5xJEC AyeTM1XX+3+jxu5OUqOElJ0nsEUXJkUcXeogsWCIQZRgthW1TmYOmEwVurU6Li0t53zE wktA== 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=fnbRlc8srN3cT4nVwHVLL96zxugKhbOa5OhOJYr4JJw=; b=zQWbPPgrwSpMljO+nFmYhvDe2alPIFdQkwQuYdAAbyoCJY4SSaAAZGCYke/92csfmG DIMd3NJiq9mg9P3+UjVqedQwA7kvj/DAkfbgzxenRRNqf3nNcqOOqM81yvXvTQGgePBF Gzc0eEXxB0GS26ZjJWW1nf6Dr/t0EOUb7nTOwi+5e2FU6XyUhALBuRI+lHWs/Gol9EuO gHptURx1zaaB4JkqpCpG4HGAThDT869eyJLqhaGfZcZuydSqYTfYWHHTN5R2vhBz1saJ v3+n5hCBRuVg45uKf4cFEez5VvyODHG67IT7bVS2XMKiDSMpxjE/JhhAAd+9NzBIORH0 +jGQ== 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 z3si4766957ejc.547.2020.07.31.05.31.16; Fri, 31 Jul 2020 05:31:38 -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 S1733199AbgGaMao (ORCPT + 99 others); Fri, 31 Jul 2020 08:30:44 -0400 Received: from mga14.intel.com ([192.55.52.115]:59727 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733191AbgGaMao (ORCPT ); Fri, 31 Jul 2020 08:30:44 -0400 IronPort-SDR: 8pdLd7vkamO5L316bPanob9DzqVzShEaV45qZG7l5yourkGTYqllQaZmQmJsq5XP2lnlSwrUXg /Fl4YIBCniAw== X-IronPort-AV: E=McAfee;i="6000,8403,9698"; a="150963378" X-IronPort-AV: E=Sophos;i="5.75,418,1589266800"; d="scan'208";a="150963378" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2020 05:30:43 -0700 IronPort-SDR: 3ncVmCcCNj+kcfqtoxKO0Smsyp/L27d5EyoqOCNhtQ0vcZITqrgOHCAvmFVOhXoDdTpZHljAzH My9r2MEzGXwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,418,1589266800"; d="scan'208";a="365483171" Received: from brentlu-desk0.itwn.intel.com ([10.5.253.11]) by orsmga001.jf.intel.com with ESMTP; 31 Jul 2020 05:30:40 -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 v3 1/2] ASoC: intel: atom: Add period size constraint Date: Fri, 31 Jul 2020 20:26:04 +0800 Message-Id: <1596198365-10105-2-git-send-email-brent.lu@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1596198365-10105-1-git-send-email-brent.lu@intel.com> References: <1596020585-11517-1-git-send-email-brent.lu@intel.com> <1596198365-10105-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 Use constraint to make sure the period size could always be multiple of 1ms to align with the fundamental design/limitation of firmware. Signed-off-by: Brent Lu --- sound/soc/intel/atom/sst-mfld-platform-pcm.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sound/soc/intel/atom/sst-mfld-platform-pcm.c b/sound/soc/intel/atom/sst-mfld-platform-pcm.c index 49b9f18..5f89956 100644 --- a/sound/soc/intel/atom/sst-mfld-platform-pcm.c +++ b/sound/soc/intel/atom/sst-mfld-platform-pcm.c @@ -333,6 +333,17 @@ static int sst_media_open(struct snd_pcm_substream *substream, if (ret_val < 0) return ret_val; + /* + * Make sure the period to be multiple of 1ms to align the + * design of firmware. Apply same rule to buffer size to make + * sure alsa could always find a value for period size + * regardless the buffer size given by user space. + */ + snd_pcm_hw_constraint_step(substream->runtime, 0, + SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 48); + snd_pcm_hw_constraint_step(substream->runtime, 0, + SNDRV_PCM_HW_PARAM_BUFFER_SIZE, 48); + /* Make sure, that the period size is always even */ snd_pcm_hw_constraint_step(substream->runtime, 0, SNDRV_PCM_HW_PARAM_PERIODS, 2); -- 2.7.4