forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 140
Closed
Labels
P1Blocker bugs or important featuresBlocker bugs or important featuresbugSomething isn't workingSomething isn't workingduplicateThis issue or pull request already existsThis issue or pull request already existsfirmwareProved to be a firmware issueProved to be a firmware issue
Description
With the usual 6 SSP+1DMIC topology the DSP panics. When the SSP5 is commented out from the topology file things work fine.
I suspect an off-by-one error. Filing as a kernel bug for now but this is more of a firmware issue I suspect.
Differences in the topology file to make things work:
diff --git a/topology/sof-apl-nocodec.m4 b/topology/sof-apl-nocodec.m4
index 2a99560..711589f 100644
--- a/topology/sof-apl-nocodec.m4
+++ b/topology/sof-apl-nocodec.m4
@@ -100,17 +100,17 @@ PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4,
10, 4, 2, s16le,
48, 1000, 0, 0)
-# Low Latency playback pipeline 11 on PCM 5 using max 2 channels of s16le.
-# Schedule 48 frames per 1000us deadline on core 0 with priority 0
-PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4,
- 11, 5, 2, s16le,
- 48, 1000, 0, 0)
-
-# Low Latency capture pipeline 12 on PCM 5 using max 2 channels of s16le.
-# Schedule 48 frames per 1000us deadline on core 0 with priority 0
-PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4,
- 12, 5, 2, s16le,
- 48, 1000, 0, 0)
+# # Low Latency playback pipeline 11 on PCM 5 using max 2 channels of s16le.
+# # Schedule 48 frames per 1000us deadline on core 0 with priority 0
+# PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4,
+# 11, 5, 2, s16le,
+# 48, 1000, 0, 0)
+
+# # Low Latency capture pipeline 12 on PCM 5 using max 2 channels of s16le.
+# # Schedule 48 frames per 1000us deadline on core 0 with priority 0
+# PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4,
+# 12, 5, 2, s16le,
+# 48, 1000, 0, 0)
# Passthrough capture pipeline 13 on PCM 6 using max 2 channels.
# Schedule 48 frames per 1000us deadline on core 0 with priority 0
@@ -197,26 +197,26 @@ DAI_ADD(sof/pipe-dai-capture.m4,
PIPELINE_SINK_10, 2, s16le,
48, 1000, 0, 0)
-# playback DAI is SSP5 using 2 periods
-# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0
-DAI_ADD(sof/pipe-dai-playback.m4,
- 11, SSP, 5, NoCodec-5,
- PIPELINE_SOURCE_11, 2, s16le,
- 48, 1000, 0, 0)
-
-# capture DAI is SSP5 using 2 periods
-# Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0
-DAI_ADD(sof/pipe-dai-capture.m4,
- 12, SSP, 5, NoCodec-5,
- PIPELINE_SINK_12, 2, s16le,
- 48, 1000, 0, 0)
-
-# capture DAI is DMIC 0 using 2 periods
-# Buffers use s32le format, with 48 frame per 1000us on core 0 with priority 0
-DAI_ADD(sof/pipe-dai-capture.m4,
- 13, DMIC, 0, NoCodec-6,
- PIPELINE_SINK_13, 2, s32le,
- 48, 1000, 0, 0)
+# # playback DAI is SSP5 using 2 periods
+# # Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0
+# DAI_ADD(sof/pipe-dai-playback.m4,
+# 11, SSP, 5, NoCodec-5,
+# PIPELINE_SOURCE_11, 2, s16le,
+# 48, 1000, 0, 0)
+
+# # capture DAI is SSP5 using 2 periods
+# # Buffers use s16le format, with 48 frame per 1000us on core 0 with priority 0
+# DAI_ADD(sof/pipe-dai-capture.m4,
+# 12, SSP, 5, NoCodec-5,
+# PIPELINE_SINK_12, 2, s16le,
+# 48, 1000, 0, 0)
+
+# # capture DAI is DMIC 0 using 2 periods
+# # Buffers use s32le format, with 48 frame per 1000us on core 0 with priority 0
+# DAI_ADD(sof/pipe-dai-capture.m4,
+# 13, DMIC, 0, NoCodec-6,
+# PIPELINE_SINK_13, 2, s32le,
+# 48, 1000, 0, 0)
dnl PCM_DUPLEX_ADD(name, pcm_id, playback, capture)
PCM_DUPLEX_ADD(Port0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
@@ -224,7 +224,7 @@ PCM_DUPLEX_ADD(Port1, 1, PIPELINE_PCM_3, PIPELINE_PCM_4)
PCM_DUPLEX_ADD(Port2, 2, PIPELINE_PCM_5, PIPELINE_PCM_6)
PCM_DUPLEX_ADD(Port3, 3, PIPELINE_PCM_7, PIPELINE_PCM_8)
PCM_DUPLEX_ADD(Port4, 4, PIPELINE_PCM_9, PIPELINE_PCM_10)
-PCM_DUPLEX_ADD(Port5, 5, PIPELINE_PCM_11, PIPELINE_PCM_12)
+#PCM_DUPLEX_ADD(Port5, 5, PIPELINE_PCM_11, PIPELINE_PCM_12)
dnl PCM_CAPTURE_ADD(name, pipeline, capture)
PCM_CAPTURE_ADD(DMIC01, 6, PIPELINE_PCM_13)
@@ -270,12 +270,12 @@ DAI_CONFIG(SSP, 4, 4, NoCodec-4,
SSP_TDM(2, 16, 3, 3),
SSP_CONFIG_DATA(SSP, 4, 16)))
-DAI_CONFIG(SSP, 5, 5, NoCodec-5,
- SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
- SSP_CLOCK(bclk, 1536000, codec_slave),
- SSP_CLOCK(fsync, 48000, codec_slave),
- SSP_TDM(2, 16, 3, 3),
- SSP_CONFIG_DATA(SSP, 5, 16)))
+# DAI_CONFIG(SSP, 5, 5, NoCodec-5,
+# SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
+# SSP_CLOCK(bclk, 1536000, codec_slave),
+# SSP_CLOCK(fsync, 48000, codec_slave),
+# SSP_TDM(2, 16, 3, 3),
+# SSP_CONFIG_DATA(SSP, 5, 16)))
DAI_CONFIG(DMIC, 0, 6, NoCodec-6,
dnl DMIC_CONFIG(driver_version, clk_min, clk_mac, duty_min, duty_max,
Metadata
Metadata
Assignees
Labels
P1Blocker bugs or important featuresBlocker bugs or important featuresbugSomething isn't workingSomething isn't workingduplicateThis issue or pull request already existsThis issue or pull request already existsfirmwareProved to be a firmware issueProved to be a firmware issue