summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2019-11-07 07:52:17 -0500
committerTakashi Iwai <tiwai@suse.de>2019-11-07 07:52:17 -0500
commitdf37d941c4b5aee9259ab4e34de8bfda384f7681 (patch)
tree485d9bd2c2d6fe3d262be1f8f66bfe7b86e7fd71
parente7af6307a8a54f0b873960b32b6a644f2d0fbd97 (diff)
parent9508ef5a980f5d847cad9b932b6ada8f2a3466c1 (diff)
Merge tag 'asoc-fix-v5.4-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v5.4 These are a collection of fixes since v5.4-rc4 that have accumilated, they're all driver specific and there's nothing major in here so it's probably not essential to actually send them but I'll leave that call to you.
-rw-r--r--sound/core/compress_offload.c2
-rw-r--r--sound/soc/codecs/hdac_hda.c2
-rw-r--r--sound/soc/codecs/hdmi-codec.c12
-rw-r--r--sound/soc/codecs/max98373.c4
-rw-r--r--sound/soc/codecs/msm8916-wcd-analog.c4
-rw-r--r--sound/soc/kirkwood/kirkwood-i2s.c11
-rw-r--r--sound/soc/rockchip/rockchip_max98090.c7
-rw-r--r--sound/soc/sh/rcar/dma.c4
-rw-r--r--sound/soc/sof/debug.c6
-rw-r--r--sound/soc/sof/intel/hda-stream.c4
-rw-r--r--sound/soc/sof/ipc.c4
-rw-r--r--sound/soc/sof/topology.c11
-rw-r--r--sound/soc/stm/stm32_sai_sub.c12
-rw-r--r--sound/soc/ti/sdma-pcm.c2
14 files changed, 51 insertions, 34 deletions
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index 41905afada63..f34ce564d92c 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -528,7 +528,7 @@ static int snd_compress_check_input(struct snd_compr_params *params)
528{ 528{
529 /* first let's check the buffer parameter's */ 529 /* first let's check the buffer parameter's */
530 if (params->buffer.fragment_size == 0 || 530 if (params->buffer.fragment_size == 0 ||
531 params->buffer.fragments > INT_MAX / params->buffer.fragment_size || 531 params->buffer.fragments > U32_MAX / params->buffer.fragment_size ||
532 params->buffer.fragments == 0) 532 params->buffer.fragments == 0)
533 return -EINVAL; 533 return -EINVAL;
534 534
diff --git a/sound/soc/codecs/hdac_hda.c b/sound/soc/codecs/hdac_hda.c
index 91242b6f8ea7..4570f662fb48 100644
--- a/sound/soc/codecs/hdac_hda.c
+++ b/sound/soc/codecs/hdac_hda.c
@@ -410,8 +410,8 @@ static void hdac_hda_codec_remove(struct snd_soc_component *component)
410 return; 410 return;
411 } 411 }
412 412
413 snd_hdac_ext_bus_link_put(hdev->bus, hlink);
414 pm_runtime_disable(&hdev->dev); 413 pm_runtime_disable(&hdev->dev);
414 snd_hdac_ext_bus_link_put(hdev->bus, hlink);
415} 415}
416 416
417static const struct snd_soc_dapm_route hdac_hda_dapm_routes[] = { 417static const struct snd_soc_dapm_route hdac_hda_dapm_routes[] = {
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index b5fd8f08726e..f8b5b960e597 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -274,7 +274,7 @@ struct hdmi_codec_priv {
274 uint8_t eld[MAX_ELD_BYTES]; 274 uint8_t eld[MAX_ELD_BYTES];
275 struct snd_pcm_chmap *chmap_info; 275 struct snd_pcm_chmap *chmap_info;
276 unsigned int chmap_idx; 276 unsigned int chmap_idx;
277 struct mutex lock; 277 unsigned long busy;
278 struct snd_soc_jack *jack; 278 struct snd_soc_jack *jack;
279 unsigned int jack_status; 279 unsigned int jack_status;
280}; 280};
@@ -390,8 +390,8 @@ static int hdmi_codec_startup(struct snd_pcm_substream *substream,
390 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); 390 struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai);
391 int ret = 0; 391 int ret = 0;
392 392
393 ret = mutex_trylock(&hcp->lock); 393 ret = test_and_set_bit(0, &hcp->busy);
394 if (!ret) { 394 if (ret) {
395 dev_err(dai->dev, "Only one simultaneous stream supported!\n"); 395 dev_err(dai->dev, "Only one simultaneous stream supported!\n");
396 return -EINVAL; 396 return -EINVAL;
397 } 397 }
@@ -419,7 +419,7 @@ static int hdmi_codec_startup(struct snd_pcm_substream *substream,
419 419
420err: 420err:
421 /* Release the exclusive lock on error */ 421 /* Release the exclusive lock on error */
422 mutex_unlock(&hcp->lock); 422 clear_bit(0, &hcp->busy);
423 return ret; 423 return ret;
424} 424}
425 425
@@ -431,7 +431,7 @@ static void hdmi_codec_shutdown(struct snd_pcm_substream *substream,
431 hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; 431 hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN;
432 hcp->hcd.ops->audio_shutdown(dai->dev->parent, hcp->hcd.data); 432 hcp->hcd.ops->audio_shutdown(dai->dev->parent, hcp->hcd.data);
433 433
434 mutex_unlock(&hcp->lock); 434 clear_bit(0, &hcp->busy);
435} 435}
436 436
437static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, 437static int hdmi_codec_hw_params(struct snd_pcm_substream *substream,
@@ -811,8 +811,6 @@ static int hdmi_codec_probe(struct platform_device *pdev)
811 return -ENOMEM; 811 return -ENOMEM;
812 812
813 hcp->hcd = *hcd; 813 hcp->hcd = *hcd;
814 mutex_init(&hcp->lock);
815
816 daidrv = devm_kcalloc(dev, dai_count, sizeof(*daidrv), GFP_KERNEL); 814 daidrv = devm_kcalloc(dev, dai_count, sizeof(*daidrv), GFP_KERNEL);
817 if (!daidrv) 815 if (!daidrv)
818 return -ENOMEM; 816 return -ENOMEM;
diff --git a/sound/soc/codecs/max98373.c b/sound/soc/codecs/max98373.c
index eb709d528259..cae1def8902d 100644
--- a/sound/soc/codecs/max98373.c
+++ b/sound/soc/codecs/max98373.c
@@ -960,11 +960,11 @@ static int max98373_i2c_probe(struct i2c_client *i2c,
960 960
961 /* Power on device */ 961 /* Power on device */
962 if (gpio_is_valid(max98373->reset_gpio)) { 962 if (gpio_is_valid(max98373->reset_gpio)) {
963 ret = gpio_request(max98373->reset_gpio, "MAX98373_RESET"); 963 ret = devm_gpio_request(&i2c->dev, max98373->reset_gpio,
964 "MAX98373_RESET");
964 if (ret) { 965 if (ret) {
965 dev_err(&i2c->dev, "%s: Failed to request gpio %d\n", 966 dev_err(&i2c->dev, "%s: Failed to request gpio %d\n",
966 __func__, max98373->reset_gpio); 967 __func__, max98373->reset_gpio);
967 gpio_free(max98373->reset_gpio);
968 return -EINVAL; 968 return -EINVAL;
969 } 969 }
970 gpio_direction_output(max98373->reset_gpio, 0); 970 gpio_direction_output(max98373->reset_gpio, 0);
diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
index 667e9f73aba3..e3d311fb510e 100644
--- a/sound/soc/codecs/msm8916-wcd-analog.c
+++ b/sound/soc/codecs/msm8916-wcd-analog.c
@@ -306,7 +306,7 @@ struct pm8916_wcd_analog_priv {
306}; 306};
307 307
308static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" }; 308static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" };
309static const char *const rdac2_mux_text[] = { "ZERO", "RX2", "RX1" }; 309static const char *const rdac2_mux_text[] = { "RX1", "RX2" };
310static const char *const hph_text[] = { "ZERO", "Switch", }; 310static const char *const hph_text[] = { "ZERO", "Switch", };
311 311
312static const struct soc_enum hph_enum = SOC_ENUM_SINGLE_VIRT( 312static const struct soc_enum hph_enum = SOC_ENUM_SINGLE_VIRT(
@@ -321,7 +321,7 @@ static const struct soc_enum adc2_enum = SOC_ENUM_SINGLE_VIRT(
321 321
322/* RDAC2 MUX */ 322/* RDAC2 MUX */
323static const struct soc_enum rdac2_mux_enum = SOC_ENUM_SINGLE( 323static const struct soc_enum rdac2_mux_enum = SOC_ENUM_SINGLE(
324 CDC_D_CDC_CONN_HPHR_DAC_CTL, 0, 3, rdac2_mux_text); 324 CDC_D_CDC_CONN_HPHR_DAC_CTL, 0, 2, rdac2_mux_text);
325 325
326static const struct snd_kcontrol_new spkr_switch[] = { 326static const struct snd_kcontrol_new spkr_switch[] = {
327 SOC_DAPM_SINGLE("Switch", CDC_A_SPKR_DAC_CTL, 7, 1, 0) 327 SOC_DAPM_SINGLE("Switch", CDC_A_SPKR_DAC_CTL, 7, 1, 0)
diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c
index 61226fefe1c4..2a4ffe945177 100644
--- a/sound/soc/kirkwood/kirkwood-i2s.c
+++ b/sound/soc/kirkwood/kirkwood-i2s.c
@@ -555,10 +555,6 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
555 return PTR_ERR(priv->clk); 555 return PTR_ERR(priv->clk);
556 } 556 }
557 557
558 err = clk_prepare_enable(priv->clk);
559 if (err < 0)
560 return err;
561
562 priv->extclk = devm_clk_get(&pdev->dev, "extclk"); 558 priv->extclk = devm_clk_get(&pdev->dev, "extclk");
563 if (IS_ERR(priv->extclk)) { 559 if (IS_ERR(priv->extclk)) {
564 if (PTR_ERR(priv->extclk) == -EPROBE_DEFER) 560 if (PTR_ERR(priv->extclk) == -EPROBE_DEFER)
@@ -574,6 +570,10 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
574 } 570 }
575 } 571 }
576 572
573 err = clk_prepare_enable(priv->clk);
574 if (err < 0)
575 return err;
576
577 /* Some sensible defaults - this reflects the powerup values */ 577 /* Some sensible defaults - this reflects the powerup values */
578 priv->ctl_play = KIRKWOOD_PLAYCTL_SIZE_24; 578 priv->ctl_play = KIRKWOOD_PLAYCTL_SIZE_24;
579 priv->ctl_rec = KIRKWOOD_RECCTL_SIZE_24; 579 priv->ctl_rec = KIRKWOOD_RECCTL_SIZE_24;
@@ -587,7 +587,7 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
587 priv->ctl_rec |= KIRKWOOD_RECCTL_BURST_128; 587 priv->ctl_rec |= KIRKWOOD_RECCTL_BURST_128;
588 } 588 }
589 589
590 err = devm_snd_soc_register_component(&pdev->dev, &kirkwood_soc_component, 590 err = snd_soc_register_component(&pdev->dev, &kirkwood_soc_component,
591 soc_dai, 2); 591 soc_dai, 2);
592 if (err) { 592 if (err) {
593 dev_err(&pdev->dev, "snd_soc_register_component failed\n"); 593 dev_err(&pdev->dev, "snd_soc_register_component failed\n");
@@ -610,6 +610,7 @@ static int kirkwood_i2s_dev_remove(struct platform_device *pdev)
610{ 610{
611 struct kirkwood_dma_data *priv = dev_get_drvdata(&pdev->dev); 611 struct kirkwood_dma_data *priv = dev_get_drvdata(&pdev->dev);
612 612
613 snd_soc_unregister_component(&pdev->dev);
613 if (!IS_ERR(priv->extclk)) 614 if (!IS_ERR(priv->extclk))
614 clk_disable_unprepare(priv->extclk); 615 clk_disable_unprepare(priv->extclk);
615 clk_disable_unprepare(priv->clk); 616 clk_disable_unprepare(priv->clk);
diff --git a/sound/soc/rockchip/rockchip_max98090.c b/sound/soc/rockchip/rockchip_max98090.c
index 0097df1fae66..e80b09143b63 100644
--- a/sound/soc/rockchip/rockchip_max98090.c
+++ b/sound/soc/rockchip/rockchip_max98090.c
@@ -66,10 +66,13 @@ static int rk_jack_event(struct notifier_block *nb, unsigned long event,
66 struct snd_soc_jack *jack = (struct snd_soc_jack *)data; 66 struct snd_soc_jack *jack = (struct snd_soc_jack *)data;
67 struct snd_soc_dapm_context *dapm = &jack->card->dapm; 67 struct snd_soc_dapm_context *dapm = &jack->card->dapm;
68 68
69 if (event & SND_JACK_MICROPHONE) 69 if (event & SND_JACK_MICROPHONE) {
70 snd_soc_dapm_force_enable_pin(dapm, "MICBIAS"); 70 snd_soc_dapm_force_enable_pin(dapm, "MICBIAS");
71 else 71 snd_soc_dapm_force_enable_pin(dapm, "SHDN");
72 } else {
72 snd_soc_dapm_disable_pin(dapm, "MICBIAS"); 73 snd_soc_dapm_disable_pin(dapm, "MICBIAS");
74 snd_soc_dapm_disable_pin(dapm, "SHDN");
75 }
73 76
74 snd_soc_dapm_sync(dapm); 77 snd_soc_dapm_sync(dapm);
75 78
diff --git a/sound/soc/sh/rcar/dma.c b/sound/soc/sh/rcar/dma.c
index 0324a5c39619..28f65eba2bb4 100644
--- a/sound/soc/sh/rcar/dma.c
+++ b/sound/soc/sh/rcar/dma.c
@@ -508,10 +508,10 @@ static struct rsnd_mod_ops rsnd_dmapp_ops = {
508#define RDMA_SSI_I_N(addr, i) (addr ##_reg - 0x00300000 + (0x40 * i) + 0x8) 508#define RDMA_SSI_I_N(addr, i) (addr ##_reg - 0x00300000 + (0x40 * i) + 0x8)
509#define RDMA_SSI_O_N(addr, i) (addr ##_reg - 0x00300000 + (0x40 * i) + 0xc) 509#define RDMA_SSI_O_N(addr, i) (addr ##_reg - 0x00300000 + (0x40 * i) + 0xc)
510 510
511#define RDMA_SSIU_I_N(addr, i, j) (addr ##_reg - 0x00441000 + (0x1000 * (i)) + (((j) / 4) * 0xA000) + (((j) % 4) * 0x400)) 511#define RDMA_SSIU_I_N(addr, i, j) (addr ##_reg - 0x00441000 + (0x1000 * (i)) + (((j) / 4) * 0xA000) + (((j) % 4) * 0x400) - (0x4000 * ((i) / 9) * ((j) / 4)))
512#define RDMA_SSIU_O_N(addr, i, j) RDMA_SSIU_I_N(addr, i, j) 512#define RDMA_SSIU_O_N(addr, i, j) RDMA_SSIU_I_N(addr, i, j)
513 513
514#define RDMA_SSIU_I_P(addr, i, j) (addr ##_reg - 0x00141000 + (0x1000 * (i)) + (((j) / 4) * 0xA000) + (((j) % 4) * 0x400)) 514#define RDMA_SSIU_I_P(addr, i, j) (addr ##_reg - 0x00141000 + (0x1000 * (i)) + (((j) / 4) * 0xA000) + (((j) % 4) * 0x400) - (0x4000 * ((i) / 9) * ((j) / 4)))
515#define RDMA_SSIU_O_P(addr, i, j) RDMA_SSIU_I_P(addr, i, j) 515#define RDMA_SSIU_O_P(addr, i, j) RDMA_SSIU_I_P(addr, i, j)
516 516
517#define RDMA_SRC_I_N(addr, i) (addr ##_reg - 0x00500000 + (0x400 * i)) 517#define RDMA_SRC_I_N(addr, i) (addr ##_reg - 0x00500000 + (0x400 * i))
diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
index 54cd431faab7..5529e8eeca46 100644
--- a/sound/soc/sof/debug.c
+++ b/sound/soc/sof/debug.c
@@ -152,8 +152,10 @@ static ssize_t sof_dfsentry_write(struct file *file, const char __user *buffer,
152 */ 152 */
153 dentry = file->f_path.dentry; 153 dentry = file->f_path.dentry;
154 if (strcmp(dentry->d_name.name, "ipc_flood_count") && 154 if (strcmp(dentry->d_name.name, "ipc_flood_count") &&
155 strcmp(dentry->d_name.name, "ipc_flood_duration_ms")) 155 strcmp(dentry->d_name.name, "ipc_flood_duration_ms")) {
156 return -EINVAL; 156 ret = -EINVAL;
157 goto out;
158 }
157 159
158 if (!strcmp(dentry->d_name.name, "ipc_flood_duration_ms")) 160 if (!strcmp(dentry->d_name.name, "ipc_flood_duration_ms"))
159 flood_duration_test = true; 161 flood_duration_test = true;
diff --git a/sound/soc/sof/intel/hda-stream.c b/sound/soc/sof/intel/hda-stream.c
index 2c7447188402..0c11fceb28a7 100644
--- a/sound/soc/sof/intel/hda-stream.c
+++ b/sound/soc/sof/intel/hda-stream.c
@@ -190,7 +190,7 @@ hda_dsp_stream_get(struct snd_sof_dev *sdev, int direction)
190 * Workaround to address a known issue with host DMA that results 190 * Workaround to address a known issue with host DMA that results
191 * in xruns during pause/release in capture scenarios. 191 * in xruns during pause/release in capture scenarios.
192 */ 192 */
193 if (!IS_ENABLED(SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1)) 193 if (!IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1))
194 if (stream && direction == SNDRV_PCM_STREAM_CAPTURE) 194 if (stream && direction == SNDRV_PCM_STREAM_CAPTURE)
195 snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR, 195 snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
196 HDA_VS_INTEL_EM2, 196 HDA_VS_INTEL_EM2,
@@ -228,7 +228,7 @@ int hda_dsp_stream_put(struct snd_sof_dev *sdev, int direction, int stream_tag)
228 spin_unlock_irq(&bus->reg_lock); 228 spin_unlock_irq(&bus->reg_lock);
229 229
230 /* Enable DMI L1 entry if there are no capture streams open */ 230 /* Enable DMI L1 entry if there are no capture streams open */
231 if (!IS_ENABLED(SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1)) 231 if (!IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1))
232 if (!active_capture_stream) 232 if (!active_capture_stream)
233 snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR, 233 snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
234 HDA_VS_INTEL_EM2, 234 HDA_VS_INTEL_EM2,
diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
index b2f359d2f7e5..086eeeab8679 100644
--- a/sound/soc/sof/ipc.c
+++ b/sound/soc/sof/ipc.c
@@ -572,8 +572,10 @@ static int sof_set_get_large_ctrl_data(struct snd_sof_dev *sdev,
572 else 572 else
573 err = sof_get_ctrl_copy_params(cdata->type, partdata, cdata, 573 err = sof_get_ctrl_copy_params(cdata->type, partdata, cdata,
574 sparams); 574 sparams);
575 if (err < 0) 575 if (err < 0) {
576 kfree(partdata);
576 return err; 577 return err;
578 }
577 579
578 msg_bytes = sparams->msg_bytes; 580 msg_bytes = sparams->msg_bytes;
579 pl_size = sparams->pl_size; 581 pl_size = sparams->pl_size;
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
index 0aabb3190ddc..4452594c2e17 100644
--- a/sound/soc/sof/topology.c
+++ b/sound/soc/sof/topology.c
@@ -543,15 +543,16 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
543 struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value; 543 struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
544 int max_size = sbe->max; 544 int max_size = sbe->max;
545 545
546 if (le32_to_cpu(control->priv.size) > max_size) { 546 /* init the get/put bytes data */
547 scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
548 le32_to_cpu(control->priv.size);
549
550 if (scontrol->size > max_size) {
547 dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n", 551 dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
548 control->priv.size, max_size); 552 scontrol->size, max_size);
549 return -EINVAL; 553 return -EINVAL;
550 } 554 }
551 555
552 /* init the get/put bytes data */
553 scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
554 le32_to_cpu(control->priv.size);
555 scontrol->control_data = kzalloc(max_size, GFP_KERNEL); 556 scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
556 cdata = scontrol->control_data; 557 cdata = scontrol->control_data;
557 if (!scontrol->control_data) 558 if (!scontrol->control_data)
diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c
index a4060813bc74..48e629ac2d88 100644
--- a/sound/soc/stm/stm32_sai_sub.c
+++ b/sound/soc/stm/stm32_sai_sub.c
@@ -1218,6 +1218,16 @@ static int stm32_sai_pcm_process_spdif(struct snd_pcm_substream *substream,
1218 return 0; 1218 return 0;
1219} 1219}
1220 1220
1221/* No support of mmap in S/PDIF mode */
1222static const struct snd_pcm_hardware stm32_sai_pcm_hw_spdif = {
1223 .info = SNDRV_PCM_INFO_INTERLEAVED,
1224 .buffer_bytes_max = 8 * PAGE_SIZE,
1225 .period_bytes_min = 1024,
1226 .period_bytes_max = PAGE_SIZE,
1227 .periods_min = 2,
1228 .periods_max = 8,
1229};
1230
1221static const struct snd_pcm_hardware stm32_sai_pcm_hw = { 1231static const struct snd_pcm_hardware stm32_sai_pcm_hw = {
1222 .info = SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP, 1232 .info = SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP,
1223 .buffer_bytes_max = 8 * PAGE_SIZE, 1233 .buffer_bytes_max = 8 * PAGE_SIZE,
@@ -1270,7 +1280,7 @@ static const struct snd_dmaengine_pcm_config stm32_sai_pcm_config = {
1270}; 1280};
1271 1281
1272static const struct snd_dmaengine_pcm_config stm32_sai_pcm_config_spdif = { 1282static const struct snd_dmaengine_pcm_config stm32_sai_pcm_config_spdif = {
1273 .pcm_hardware = &stm32_sai_pcm_hw, 1283 .pcm_hardware = &stm32_sai_pcm_hw_spdif,
1274 .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config, 1284 .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
1275 .process = stm32_sai_pcm_process_spdif, 1285 .process = stm32_sai_pcm_process_spdif,
1276}; 1286};
diff --git a/sound/soc/ti/sdma-pcm.c b/sound/soc/ti/sdma-pcm.c
index a236350beb10..2b0bc234e1b6 100644
--- a/sound/soc/ti/sdma-pcm.c
+++ b/sound/soc/ti/sdma-pcm.c
@@ -62,7 +62,7 @@ int sdma_pcm_platform_register(struct device *dev,
62 config->chan_names[0] = txdmachan; 62 config->chan_names[0] = txdmachan;
63 config->chan_names[1] = rxdmachan; 63 config->chan_names[1] = rxdmachan;
64 64
65 return devm_snd_dmaengine_pcm_register(dev, config, 0); 65 return devm_snd_dmaengine_pcm_register(dev, config, flags);
66} 66}
67EXPORT_SYMBOL_GPL(sdma_pcm_platform_register); 67EXPORT_SYMBOL_GPL(sdma_pcm_platform_register);
68 68