Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp1197313imc; Mon, 11 Mar 2019 08:27:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqwy/iDX5Qc93DEu3lazzpgnzzXWDVnLaE19ZtA+04HacwAbYDbKJfu5BNUbYoy0u+/ADzYZ X-Received: by 2002:a17:902:284b:: with SMTP id e69mr33550389plb.11.1552318064387; Mon, 11 Mar 2019 08:27:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552318064; cv=none; d=google.com; s=arc-20160816; b=GHGYdQn9Gh6w5TLLl+oOeD5efUfm4U7fmPW/Vp8T6AaLKKsQT7xhy7xXy8ov2wf3w2 ckGHqjYGPFQZOdZAX4mTNMMz7BW3Xo1JWK5RWO4ah6LxmvLrAPrmgGu5a/FPBCF0gktz LxrHcdN09oUZhnZ5+mZqlItU3B0FrnU8aXkT6Av3U1kYjOEkeFmeDCsoaUbIzGZhd3v8 mBnWZUldF213+bzdHslvir9PFTIqVaHRa+kWEa7xYW2e1Zv29Zh4nv0I06oBv0P2BVeH nA+dnGBf6dpWCVs1wLtBcHasdpxcS0/2KbwGp2sXFVTBNprItBlAGAsKuQyvEtO82uFa 9i4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:to:from; bh=FSeW9jl1IpTxeBH6iDdvI8XfPae5WIwid+rwSk3ddoI=; b=q1Lv4YXHpDVtZhophgC+u/v35wlpktrNEk7PwTS30a+J+BVUuBobKa1dzJg51lUR1U KA7uzmx/DCL1Kyl/1AA5XAeh27ucXWg3LGxFFuJGeLs4cGtV9QxfNbpmTOjr7cODE+FZ aDmSkJHbNcUtNzxvhGNFvGeGPjhUSoq3/17Q2ib7iPbMpnGyK0z8l6vZ0RlAXA7pIKHH gQ57IUUjzpGuTuL5YGecP5L0lnsMsuVp19TxTyNcZRDzIjriA3hDus+p1DhWlTRdcUnQ 3H8E6Sv+ic25SIHtqQO1ZhfnGQZZdvGzUmGXYkgLLXeEOp7CCXK2HtM9ah9oyFsRteAb M+ZA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si4874642pgt.415.2019.03.11.08.27.26; Mon, 11 Mar 2019 08:27:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727153AbfCKP07 (ORCPT + 99 others); Mon, 11 Mar 2019 11:26:59 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:55479 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726942AbfCKP07 (ORCPT ); Mon, 11 Mar 2019 11:26:59 -0400 Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx08-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2BFLfbm011746; Mon, 11 Mar 2019 16:26:37 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2r458m4j0g-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 11 Mar 2019 16:26:37 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 5A4CD31; Mon, 11 Mar 2019 15:26:36 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas23.st.com [10.75.90.46]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 3C6F954C7; Mon, 11 Mar 2019 15:26:36 +0000 (GMT) Received: from SAFEX1HUBCAS24.st.com (10.75.90.95) by SAFEX1HUBCAS23.st.com (10.75.90.46) with Microsoft SMTP Server (TLS) id 14.3.435.0; Mon, 11 Mar 2019 16:26:36 +0100 Received: from localhost (10.201.23.16) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.435.0; Mon, 11 Mar 2019 16:26:36 +0100 From: Olivier Moysan To: , , , , , , , , , , , , Subject: [PATCH 2/3] ASoC: stm32: i2s: improve channel capabilities handling Date: Mon, 11 Mar 2019 16:26:29 +0100 Message-ID: <1552317990-24219-3-git-send-email-olivier.moysan@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1552317990-24219-1-git-send-email-olivier.moysan@st.com> References: <1552317990-24219-1-git-send-email-olivier.moysan@st.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.201.23.16] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-03-11_12:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use alsa snd_pcm_hw_constraint_single service to manage channels restriction. This provides better status on driver limitations, to the application. Signed-off-by: Olivier Moysan --- sound/soc/stm/stm32_i2s.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sound/soc/stm/stm32_i2s.c b/sound/soc/stm/stm32_i2s.c index 783b33497435..06bbbef74b3a 100644 --- a/sound/soc/stm/stm32_i2s.c +++ b/sound/soc/stm/stm32_i2s.c @@ -496,12 +496,6 @@ static int stm32_i2s_configure(struct snd_soc_dai *cpu_dai, unsigned int fthlv; int ret; - if ((params_channels(params) == 1) && - ((i2s->fmt & SND_SOC_DAIFMT_FORMAT_MASK) != SND_SOC_DAIFMT_DSP_A)) { - dev_err(cpu_dai->dev, "Mono mode supported only by DSP_A\n"); - return -EINVAL; - } - switch (format) { case 16: cfgr = I2S_CGFR_DATLEN_SET(I2S_I2SMOD_DATLEN_16); @@ -551,6 +545,10 @@ static int stm32_i2s_startup(struct snd_pcm_substream *substream, i2s->substream = substream; spin_unlock_irqrestore(&i2s->irq_lock, flags); + if ((i2s->fmt & SND_SOC_DAIFMT_FORMAT_MASK) != SND_SOC_DAIFMT_DSP_A) + snd_pcm_hw_constraint_single(substream->runtime, + SNDRV_PCM_HW_PARAM_CHANNELS, 2); + ret = clk_prepare_enable(i2s->i2sclk); if (ret < 0) { dev_err(cpu_dai->dev, "Failed to enable clock: %d\n", ret); -- 2.7.4