Re: [PATCH 3/3] ASoC: broadwell: channel constraint support

From: Cezary Rojewski
Date: Mon Apr 27 2020 - 06:58:54 EST


On 2020-04-27 10:37, Brent Lu wrote:
BDW boards using this machine driver supports only stereo capture and
playback. Implement a constraint to enforce it.


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 <brent.lu@xxxxxxxxx>
---
sound/soc/intel/boards/broadwell.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

diff --git a/sound/soc/intel/boards/broadwell.c b/sound/soc/intel/boards/broadwell.c
index f9a8336..09347f2 100644
--- a/sound/soc/intel/boards/broadwell.c
+++ b/sound/soc/intel/boards/broadwell.c
@@ -19,6 +19,8 @@
#include "../../codecs/rt286.h"
+#define DUAL_CHANNEL 2
+

Remove, we need not additional too-obvious macro. One could argue 'STEREO' is a better choice too.

static struct snd_soc_jack broadwell_headset;
/* Headset jack detection DAPM pins */
static struct snd_soc_jack_pin broadwell_headset_pins[] = {
@@ -143,6 +145,36 @@ static int broadwell_rtd_init(struct snd_soc_pcm_runtime *rtd)
}
#endif
+static const unsigned int channels[] = {
+ DUAL_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 broadwell_fe_startup(struct snd_pcm_substream *substream)
+{
+ struct snd_pcm_runtime *runtime = substream->runtime;
+
+ /*
+ * On this platform for PCM device we support,
+ * stereo audio
+ */
+

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 configuration only */

+ runtime->hw.channels_max = DUAL_CHANNEL;

Inline. If you really want to avoid using 2, make use of 0-entry of constrains_channels array.

+ snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
+ &constraints_channels);
+
+ return 0;
+}
+
+static const struct snd_soc_ops broadwell_fe_ops = {
+ .startup = broadwell_fe_startup,
+};
+
SND_SOC_DAILINK_DEF(system,
DAILINK_COMP_ARRAY(COMP_CPU("System Pin")));
@@ -180,6 +212,7 @@ static struct snd_soc_dai_link broadwell_rt286_dais[] = {
.init = broadwell_rtd_init,
#endif
.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
+ .ops = &broadwell_fe_ops,
.dpcm_playback = 1,
.dpcm_capture = 1,
SND_SOC_DAILINK_REG(system, dummy, platform),