soc-pcm.c (fc30eea1542dd787c6aa46e970014e97e390c5b2) soc-pcm.c (754590651ccbbcc74a7c20907be4bb15d642bde3)
1// SPDX-License-Identifier: GPL-2.0+
2//
3// soc-pcm.c -- ALSA SoC PCM
4//
5// Copyright 2005 Wolfson Microelectronics PLC.
6// Copyright 2005 Openedhand Ltd.
7// Copyright (C) 2010 Slimlogic Ltd.
8// Copyright (C) 2010 Texas Instruments Inc.

--- 1195 unchanged lines hidden (view full) ---

1204 be_substream = snd_soc_dpcm_get_substream(be, stream);
1205
1206 if (!fe_substream->pcm->nonatomic && be_substream->pcm->nonatomic) {
1207 dev_err(be->dev, "%s: FE is atomic but BE is nonatomic, invalid configuration\n",
1208 __func__);
1209 return -EINVAL;
1210 }
1211 if (fe_substream->pcm->nonatomic && !be_substream->pcm->nonatomic) {
1// SPDX-License-Identifier: GPL-2.0+
2//
3// soc-pcm.c -- ALSA SoC PCM
4//
5// Copyright 2005 Wolfson Microelectronics PLC.
6// Copyright 2005 Openedhand Ltd.
7// Copyright (C) 2010 Slimlogic Ltd.
8// Copyright (C) 2010 Texas Instruments Inc.

--- 1195 unchanged lines hidden (view full) ---

1204 be_substream = snd_soc_dpcm_get_substream(be, stream);
1205
1206 if (!fe_substream->pcm->nonatomic && be_substream->pcm->nonatomic) {
1207 dev_err(be->dev, "%s: FE is atomic but BE is nonatomic, invalid configuration\n",
1208 __func__);
1209 return -EINVAL;
1210 }
1211 if (fe_substream->pcm->nonatomic && !be_substream->pcm->nonatomic) {
1212 dev_warn(be->dev, "%s: FE is nonatomic but BE is not, forcing BE as nonatomic\n",
1213 __func__);
1212 dev_dbg(be->dev, "FE is nonatomic but BE is not, forcing BE as nonatomic\n");
1214 be_substream->pcm->nonatomic = 1;
1215 }
1216
1217 dpcm = kzalloc(sizeof(struct snd_soc_dpcm), GFP_KERNEL);
1218 if (!dpcm)
1219 return -ENOMEM;
1220
1221 dpcm->be = be;

--- 91 unchanged lines hidden (view full) ---

1313
1314 dev_dbg(card->dev, "ASoC: find BE for widget %s\n", widget->name);
1315
1316 for_each_card_rtds(card, be) {
1317
1318 if (!be->dai_link->no_pcm)
1319 continue;
1320
1213 be_substream->pcm->nonatomic = 1;
1214 }
1215
1216 dpcm = kzalloc(sizeof(struct snd_soc_dpcm), GFP_KERNEL);
1217 if (!dpcm)
1218 return -ENOMEM;
1219
1220 dpcm->be = be;

--- 91 unchanged lines hidden (view full) ---

1312
1313 dev_dbg(card->dev, "ASoC: find BE for widget %s\n", widget->name);
1314
1315 for_each_card_rtds(card, be) {
1316
1317 if (!be->dai_link->no_pcm)
1318 continue;
1319
1320 if (!snd_soc_dpcm_get_substream(be, stream))
1321 continue;
1322
1321 for_each_rtd_dais(be, i, dai) {
1322 w = snd_soc_dai_get_widget(dai, stream);
1323
1324 dev_dbg(card->dev, "ASoC: try BE : %s\n",
1325 w ? w->name : "(not set)");
1326
1327 if (w == widget)
1328 return be;

--- 1733 unchanged lines hidden ---
1323 for_each_rtd_dais(be, i, dai) {
1324 w = snd_soc_dai_get_widget(dai, stream);
1325
1326 dev_dbg(card->dev, "ASoC: try BE : %s\n",
1327 w ? w->name : "(not set)");
1328
1329 if (w == widget)
1330 return be;

--- 1733 unchanged lines hidden ---