Hi
On 2019-06-19 03:18, Kuninori Morimoto wrote:
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
ALSA SoC is now supporting "no Platform". Sound card doesn't need to select "CPU component" as "Platform" anymore if it doesn't need special Platform. This patch removes such settings.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
This patch causes regression on Samsung Exynos-based boards: Snow, Peach-Pi and Peach-Pit (all that use snow machine driver) since linux next-20190620. ASoC device is properly registered, but it is not usable:
[ 3.203006] samsung-i2s 3830000.i2s-sec: DMA channels sourced from device 3830000.i2s [ 3.213440] snow-audio sound: Failed parsing codec node [ 3.423241] snow-audio sound: multicodec <-> samsung-i2s mapping ok [ 3.429776] max98095 7-0011: ASoC: mux External MIC has no paths [ 3.434513] max98095 7-0011: ASoC: mux Linein Mux has no paths [ 4.043488] ALSA device list: [ 4.047171] #0: Snow-I2S-MAX98095
# speaker-test -l1
speaker-test 1.1.3
Playback device is default Stream parameters are 48000Hz, S16_LE, 1 channels Using 16 octaves of pink noise Playback open error: -22,Invalid argument
#
The kernel logs are exactly the same whem it worked fine (i.e. next-20190619, so the message about codec node can be ignored).
Similar issue appears also on Hardkernel's OdroidXU board (Exynos5410-based, uses sound-card-simple ASoC driver) and Samsung TM2 board (Exynos5433, uses tm2_wm5110 driver). I'm open to test any patch or provide more logs if needed.
sound/soc/samsung/snow.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/sound/soc/samsung/snow.c b/sound/soc/samsung/snow.c index 8ea7799..7d669c4 100644 --- a/sound/soc/samsung/snow.c +++ b/sound/soc/samsung/snow.c @@ -14,9 +14,9 @@
#define FIN_PLL_RATE 24000000
-SND_SOC_DAILINK_DEFS(links,
- DAILINK_COMP_ARRAY(COMP_EMPTY()),
- DAILINK_COMP_ARRAY(COMP_EMPTY()),
+SND_SOC_DAILINK_DEF(links_cpus,
- DAILINK_COMP_ARRAY(COMP_EMPTY()));
+SND_SOC_DAILINK_DEF(links_codecs, DAILINK_COMP_ARRAY(COMP_EMPTY()));
struct snow_priv { @@ -150,8 +150,6 @@ static int snow_probe(struct platform_device *pdev) link->num_cpus = ARRAY_SIZE(links_cpus); link->codecs = links_codecs; link->num_codecs = ARRAY_SIZE(links_codecs);
link->platforms = links_platforms;
link->num_platforms = ARRAY_SIZE(links_platforms);
card->dai_link = link; card->num_links = 1;
@@ -207,8 +205,6 @@ static int snow_probe(struct platform_device *pdev) } }
- link->platforms->of_node = link->cpus->of_node;
- /* Update card-name if provided through DT, else use default name */ snd_soc_of_parse_card_name(card, "samsung,model");
Best regards