Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2753773ybz; Mon, 27 Apr 2020 04:01:00 -0700 (PDT) X-Google-Smtp-Source: APiQypJMpW7ajLZZf4PWQFTIdMo3ts1OjLUdSvaXwFRCwpghYU9dJlzxpRP7AXYRKrXKT8T15gzj X-Received: by 2002:a17:906:770b:: with SMTP id q11mr18522780ejm.224.1587985260212; Mon, 27 Apr 2020 04:01:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587985260; cv=none; d=google.com; s=arc-20160816; b=ydhizydN1wWi3QxoWNE5T1A4c6W9YLrY577ElqRl4HOF78VWI0mo5oyZj+MN1K0xRW P19TnD1+BC0uhRmL+kUGzVBhN7GHFFh++YUoiOQlYcfG4+zsEZWAL3gfUnTXMaDWMdf8 KBlV+z/1vXdC1pllBtWYmLagAg3OlC8/Mfr3b/S/lQVIMyGDE5Z/Tl+U5/wtgS6dlmW/ Znl2VvtX1aIacdC7+rbn1rD/0lSHka1lJtoOcr4R5cxCBv4Cic/twL8geh3vIkFiJUP4 tHMIyRPsczwn6rU2gG/ASBXK0gKkywHkTD8Dwp+h2/wl85pTZh0VY/rdKNJebuweCdqs q6hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:ironport-sdr:ironport-sdr; bh=h38/7khEAQiyMbtS+2o9+pz7fcv1TUq0a8QrjLUwfOA=; b=GVLUthLhmjmCS2gtQtuH4/LWHh0rS7IzaOJQ+LdhLKhEpNmApzP6USWIfdi9a/RMZL FLUWIDiL/hb053plOxgF+ihyhHzWI3B4gVjonRnXVZZe36WaDFIN8ArXi3RUeZjfp4jx 31BHF1Lav99b+Jpk3fNkidDVvpH8uTetlX7ZrZfEuKK5DGa1s+hCacJVkdy7lh8DNtss Eu5EGvE9UDIsqhzUPea4iGiOkTvAdEGHjl338KJzernu3qT+pQQLKr29Dllw7dFS78PY HLJ6zHK/tLq4rDbW0buPRxSjqWrv1SCgGScNG8z5a8gNQGeq8X7V+5l4Txn3w12SO6+K RKig== 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 p8si5167772ejz.441.2020.04.27.04.00.36; Mon, 27 Apr 2020 04:01:00 -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 S1726997AbgD0K6q (ORCPT + 99 others); Mon, 27 Apr 2020 06:58:46 -0400 Received: from mga04.intel.com ([192.55.52.120]:54245 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726504AbgD0K6q (ORCPT ); Mon, 27 Apr 2020 06:58:46 -0400 IronPort-SDR: LKWNzK98fce8dozLNJEHY1hjMTOVgXWjQp093evzBgtQXVDXGCW+lSLHCtP5ZMtezzPAYcqWER tzXvRyT5wE9w== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2020 03:58:45 -0700 IronPort-SDR: /VxuhP7/0fY2Rl+Xtnu7E/Iqt4QccWwkH0YPxd1SHVuRptIaVtx9bKCeRZBO98W066wv3Ml9tx v25cl6sXNh0w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,323,1583222400"; d="scan'208";a="302340862" Received: from crojewsk-mobl1.ger.corp.intel.com (HELO [10.213.7.127]) ([10.213.7.127]) by FMSMGA003.fm.intel.com with ESMTP; 27 Apr 2020 03:58:42 -0700 Subject: Re: [PATCH 2/3] ASoC: bdw-rt5650: channel constraint support To: Brent Lu , alsa-devel@alsa-project.org Cc: Pierre-Louis Bossart , Liam Girdwood , Jie Yang , Mark Brown , Jaroslav Kysela , Takashi Iwai , Ben Zhang , Mac Chiang , Guennadi Liakhovetski , Kuninori Morimoto , linux-kernel@vger.kernel.org References: <1587976638-29806-1-git-send-email-brent.lu@intel.com> <1587976638-29806-3-git-send-email-brent.lu@intel.com> From: Cezary Rojewski Message-ID: Date: Mon, 27 Apr 2020 12:58:41 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <1587976638-29806-3-git-send-email-brent.lu@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-04-27 10:37, Brent Lu wrote: > BDW boards using this machine driver supports only 2 or 4-channel capture. > Implement a constraint to enforce it. > What about playback configurations? Title for the overall series fits better than the one chosen for actual patches. "channel constraint support" is misleading. Constraints are added or removed but certainly not supported. > Signed-off-by: Brent Lu > --- > sound/soc/intel/boards/bdw-rt5650.c | 34 ++++++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/sound/soc/intel/boards/bdw-rt5650.c b/sound/soc/intel/boards/bdw-rt5650.c > index af2f502..dd4f219 100644 > --- a/sound/soc/intel/boards/bdw-rt5650.c > +++ b/sound/soc/intel/boards/bdw-rt5650.c > @@ -21,6 +21,9 @@ > > #include "../../codecs/rt5645.h" > > +#define DUAL_CHANNEL 2 > +#define QUAD_CHANNEL 4 > + Remove, we need not additional too-obvious macro. One could argue 'STEREO' is a better choice for '2' channel configuration too. > struct bdw_rt5650_priv { > struct gpio_desc *gpio_hp_en; > struct snd_soc_component *component; > @@ -162,6 +165,36 @@ static int bdw_rt5650_rtd_init(struct snd_soc_pcm_runtime *rtd) > } > #endif > > +static const unsigned int channels[] = { > + DUAL_CHANNEL, QUAD_CHANNEL, Inline as stated above. > +}; > + > +static const struct snd_pcm_hw_constraint_list constraints_channels = { > + .count = ARRAY_SIZE(channels), > + .list = channels, > + .mask = 0, > +}; > + > +static int bdw_fe_startup(struct snd_pcm_substream *substream) Entire file uses 'bdw_rt5650_' naming convention. Let's not stray away from that path now. > +{ > + struct snd_pcm_runtime *runtime = substream->runtime; > + Missing hw.channels_max assignment from rt5677 - inconsistency/ copy error? > + /* > + * On this platform for PCM device we support, > + * 2 or 4 channel capture > + */ Sometimes you add a newline add and before, while other times just one, before the comment. Please streamline the format across all patches in the series. Comment can be more strict too /* Board supports stereo and quad configurations */ > + if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) > + snd_pcm_hw_constraint_list(runtime, 0, > + SNDRV_PCM_HW_PARAM_CHANNELS, > + &constraints_channels); Redesign to reduce indentation and improve readability - if (stream != capture) return 0; return snd_pcm_hw_contraint_list(...); > + > + return 0; > +} > + > +static const struct snd_soc_ops bdw_rt5650_fe_ops = { > + .startup = bdw_fe_startup, > +}; > + > static int bdw_rt5650_init(struct snd_soc_pcm_runtime *rtd) > { > struct bdw_rt5650_priv *bdw_rt5650 = > @@ -234,6 +267,7 @@ static struct snd_soc_dai_link bdw_rt5650_dais[] = { > .name = "System PCM", > .stream_name = "System Playback", > .dynamic = 1, > + .ops = &bdw_rt5650_fe_ops, > #if !IS_ENABLED(CONFIG_SND_SOC_SOF_BROADWELL) > .init = bdw_rt5650_rtd_init, > #endif >