From nobody Wed Feb 11 04:18:29 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8054B324B1D for ; Tue, 10 Feb 2026 16:45:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770741920; cv=none; b=FAKoCzDC3XzOadbmb+vrAV/gAPf/3gaq86ANw9GlX+BoM+8nw3rkpLj8zp+lHAcgAIcH8z0haXsC44axz4dioGhMlXLBrGFe+k81cZLYswBIr3hh1W6i/qO35vgDJgB+IVaQAlV6Mrj6oHC/eeLVUY3XalG6N6cKP3QL2sXL9r8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770741920; c=relaxed/simple; bh=rM5wReeBWtgy9nmTdYAlxFeY/pYQ4Hi13y3M6Ph4508=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SIRpSankHjBeDQXd8h/wLtxXYvl8jYBe4CPTCCZabuyCMLBepAjbcslf0eBuKOcwicS6droQA3KhAnUmQ7h1a4aCr/MRpDPW+mFd/Vu6mKrjLMfcQt6QQHwqBKmhkyvBuXoyyiv4bf42txm2xub8AfPPUUrEmc901m/a63PtGlI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fbuzp09Z; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fbuzp09Z" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-47edd6111b4so85574545e9.1 for ; Tue, 10 Feb 2026 08:45:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770741918; x=1771346718; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5UbDOXAtO3a1IS407zSIaYrMcpaX7Lzf/cb9+OP6YuM=; b=fbuzp09ZXbIEt5bPvOJqaavp3j26Nekj78OiVbnOenKf9BWB+rpy/zbxOK3RRGRUSy 4H6Q+zj4PR5RqvZfTHANY02tRGz8PsyWJWseprdw5HhRhQsSnl6vpUBW53tiPF4QyIN9 s16q1mNfb8hGdvmbLxii/MIBTjq9gGbl+0//RYBM9xsYECNJSfgLkKmfoPxe39IYuXLj MIiYog3VnncktOYbF7hJ531oV0bSx5Z2862t9ZP/iBWpNJl7gEJRuWeFn5P5AX+8Z6z3 abEYaXjRgrT9e6HjbUlD/x8rtiQkYXQHzdHGv9tVGPMEu6458g3FIcu2AZLxQWeFtzhJ ZkgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770741918; x=1771346718; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5UbDOXAtO3a1IS407zSIaYrMcpaX7Lzf/cb9+OP6YuM=; b=UDheFbWM7n1zBE9DKoYwMa5+h1FadHhDsKvd4mov3VtYlz3fRTxuGv0nYinS15NPTJ hztEXv4KWgokdbzPH1GBkzFUa4Tbyqv5+24fXBq+76PpPQnovApcX1GdKaz/r9Mwddsn a5RRazvcm9Mm2qhPwL/BpJzx1KTm77MAdEdkM8Cu1O2lJxZweEPyhKT14xby3L2RB6jD RhNrXPjF1GV1rbUsm2xXEXgpNKUDtwaOXRyLj9ierC6yDD6vL9nhbx4GmxxIbSIuIhCK f59QU0eyPQ2eB2HHdpT1sldyuN3ssWxItqruLE60XHX+J7QV9g7XsjIad+75M4vF1WPf G+sQ== X-Forwarded-Encrypted: i=1; AJvYcCVEqv+TF2jzvT21YX6RSl7BOYsfxG9oZRZ3sEiMOZmZ0j9avi7E3Rfsj3jgS2qIQMacqDuL9/7+9LpyOjs=@vger.kernel.org X-Gm-Message-State: AOJu0YyNZh2IvazF588CSVJyiCvZewW/xYYBRAy56Vk6QhYPmd23+/3r jvCfJEDJls8TXelRQ/+DPXf0WNnKyXEAuL5L8TMXKbMUaCJr4xvV+11Z X-Gm-Gg: AZuq6aLkxeyWwGbQHhIoW0G9/ugn7V8lRovNht0th/mJDZtgBRj3VROlRKSNTW7AzsG n/ftDBr0BNJEMWzeKkqYDuX7hAAHQxivRqjxtbdEQiYxIeNrDjUzFvLZwSRBjVAfmndYlwNr2wQ ILT0wg/WfeNG/XzpWGhiD0hW/3rQpAJb6GXgGo/7A9egarwTpjEcbGXBnD5IBefojUz0t7Lsoy+ jQ3RfX/cByD0KQrDIaOL/pHpdh24IDNYPvtPx/5fCLFjAp4SWf+0007fzpjFATyN6J9Y2h3hdki 5WNbVuzb8DBPIG54ToYsVwYbfibp5ubHWxiH2Gg+KN3wacTCWBJaKgz3KAEJ8vY10aMQJCfm/su DrLpX/glIe7jOuIXgPqvQJp4kW4obungMJoNKSKRwagBdlAGcQwZExZM03Iy+mLcMcgb6E3uEK3 pYvJnt9R7soKbLMmC+YkcYJYKQ/0A6/uZxJRGV6c7KqDjcN3jtX+Enj2pCJtFp6Wii9DwNe+jcp DWTVrElMHV7Gv9r1lhOkfvGlwyUC6SRGPDuvSStuz+qd/1bXoc= X-Received: by 2002:a05:600c:a43:b0:477:93f7:bbc5 with SMTP id 5b1f17b1804b1-483507e18acmr44929135e9.10.1770741917807; Tue, 10 Feb 2026 08:45:17 -0800 (PST) Received: from Lord-Beerus.station (net-188-152-100-94.cust.vodafonedsl.it. [188.152.100.94]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4834d5d78cfsm96294245e9.1.2026.02.10.08.45.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Feb 2026 08:45:17 -0800 (PST) From: Stefano Radaelli X-Google-Original-From: Stefano Radaelli To: Kuninori Morimoto , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mark Brown , Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jaroslav Kysela , Takashi Iwai , alexander.h@variscite.com, pierluigi.p@variscite.com, Stefano Radaelli Subject: [PATCH v2 1/2] dt-bindings: sound: simple-card: add sysclk-cpu-first flag Date: Tue, 10 Feb 2026 17:45:05 +0100 Message-ID: <20260210164506.161810-2-stefano.r@variscite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260210164506.161810-1-stefano.r@variscite.com> References: <20260210164506.161810-1-stefano.r@variscite.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefano Radaelli The simple-audio-card driver can program sysclk for CPU and codec DAIs during hw_params. Some setups require calling the CPU DAI sysclk first so that the codec sees the final MCLK rate. Document a new boolean DT flag, sysclk-cpu-first, which allows selecting CPU-first sysclk ordering where needed. The property is supported both as a top-level simple-audio-card property (prefixed) and on dai-link subnodes (non-prefixed). Signed-off-by: Stefano Radaelli --- .../devicetree/bindings/sound/simple-card.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Doc= umentation/devicetree/bindings/sound/simple-card.yaml index 533d0a1da56e..ddad440636be 100644 --- a/Documentation/devicetree/bindings/sound/simple-card.yaml +++ b/Documentation/devicetree/bindings/sound/simple-card.yaml @@ -35,6 +35,13 @@ definitions: description: see tdm-slot.txt. $ref: /schemas/types.yaml#/definitions/uint32 =20 + sysclk-cpu-first: + description: + When mclk-fs is used, configure CPU DAI sysclk before codec DAI sysc= lk + so the codec sees the final MCLK rate. + This property only affects the mclk-fs code path. + $ref: /schemas/types.yaml#/definitions/flag + system-clock-frequency: description: | If a clock is specified and a multiplication factor is given with @@ -194,6 +201,8 @@ properties: $ref: "#/definitions/format" simple-audio-card,mclk-fs: $ref: "#/definitions/mclk-fs" + simple-audio-card,sysclk-cpu-first: + $ref: "#/definitions/sysclk-cpu-first" simple-audio-card,aux-devs: $ref: "#/definitions/aux-devs" simple-audio-card,additional-devs: @@ -251,6 +260,8 @@ patternProperties: $ref: "#/definitions/format" mclk-fs: $ref: "#/definitions/mclk-fs" + sysclk-cpu-first: + $ref: "#/definitions/sysclk-cpu-first" aux-devs: $ref: "#/definitions/aux-devs" convert-rate: --=20 2.47.3 From nobody Wed Feb 11 04:18:29 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B291324B1A for ; Tue, 10 Feb 2026 16:45:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770741922; cv=none; b=FzZ6arDT+sUmJ1FKL8Aumx2XPNf+3nvqELkuipIWm1UGywIBXnbXpw1sx5M1XV73wNgU55LaeJQabsetThmio81sglTSKMWw/HH08x0ROmUkMI0eghAJXZnLxGzOruQk2z99cWCCUpBU4+QwUJfotshek440KU+xZyOhbJeL9kc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770741922; c=relaxed/simple; bh=8XLFcuGCoDNtMNhZSpvJ5AtY+fBT/jH4kJppxgBBCMI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EhL+oj0ZDGHTUlA5XS0ml+b23O2TktJ5USlfAy7mVzjPl/q+DMnIVEzEURD29uNhPWi1uaxFdCxQfJVwfmA8thR9RviYa0w+O9QVgtwEAvsUSlCdt3yQQL5CxHUPirGqfeIWnzxkuMQWFiXQIzST55KzzRHu8yKc8gdz84xeGA4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=k8TqODZP; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k8TqODZP" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4806e0f6b69so44825055e9.3 for ; Tue, 10 Feb 2026 08:45:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770741919; x=1771346719; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8M/AzEHOLu66CWQK6hdbu+gOPzelRhtjh/h1JCujosM=; b=k8TqODZPnIyAk+JStUq3t39mIoLJqOZbNgfv2vCO58JsguTb6oZeVduLWCBWu0wub9 yA2h44U6qNiKXmxrqakyVt195uwM1lR//qkWCMSdrfSJUl7QJNvO18qvhZErAkSSMUq9 KDuNBR7pnCuimjOLPG3xJ2RiHClYPIZWL9QikgJpFKdV/qfkRhgjz2pJsOlFWPOkbIC0 ldqzqJ/JKKoIJz/aZhVyJKy4Iar9fwUfXuI92+pB/fBiGIMK0mTOUtLu8k/iRcUsBODd ppT0trpOGqTNR8gMOPuZOe/v8F9rhdFsDPuArVsNJcJyzHflOd8E9Z3IZaZ8gsG+bCDM XS7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770741919; x=1771346719; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8M/AzEHOLu66CWQK6hdbu+gOPzelRhtjh/h1JCujosM=; b=FWpDF0Nx74of2W2k1mcxNnfiLghzLUXldzOw5ZkRi2IrwshTbrBihZJBmkgoVI0xdV d38ncl6filjWApsnHNc2274GV6rNz9VGs4AhqyBcJAkC+o4Hqeojzj5qsRIq+JjhaaJR JH7kIkXoEzKP6a+3T0GabaRjr7IZTVwOxiX+QAtlCBkRROAoUDLHv8bIRVxu8QKBensN BT42kNOpooFR6/YC6FbNxFIjJLmf5mH1UCn+vzuH1Kz5iifcWnsPQZChj7+zFT4fskaP Iy5rVS4BMYrJVWwR10C8NwHY9JaTGydd8QF6yE4+EhlgcbiEcXa43rw8XOjRs3ktB3q7 PgTw== X-Forwarded-Encrypted: i=1; AJvYcCXsbuCi3w69/wZ7OT9VXSlsz/meaeKBHo2aphE01M25r6LXlbHNqPkDRbY5x3mecZ8zP4o0dK0ql4+nQ6c=@vger.kernel.org X-Gm-Message-State: AOJu0YwWTuLutkSjf0uc7kNTsjXgJpil8dgl34MSltoArERtzcrf19pD i0wQEZmk8MHuhKd2L8f+dp++swd54wIDWILWWYEQhFQf2bV0l7RmOK4e X-Gm-Gg: AZuq6aIPRKOYL4v0iz+9YYLmVBOetDNeSlgMRIdh5n+t71tCjf9dXJ631I2JsVkrOF+ rj646Scw4wCjPDUjy9kJDHXrNoRd5U161IvS/1U/NEUnrNfV/rehfCJwBQJOiCVDRGtKkIIuxkA b24OFxWFlGRtxr60iXAPs/oTZDJP2SXDfAEOQ8ydcCWqzZDAZDPQs6JWCPHPW7RUrjgVrkGx7lu K+w0EN4mX2zxHDZTjfVXBJHnsOMXYOXdZ59lNHkR47SscWderq6OgaXZRaHU3hoQbzQpP44a2pw eL3UpGg/HoJuUyb21KQxBydZ7rzM5CMz/nMaxnGczQ8ZMbMTPFhl7kLjN7gYLL9d9ldtnm1tMfV 1s7A2KNv4rTdx/BzfIM/l9YQwmZp0XUnl0TzjwkzlsRDRZaPAC8hdGgpMElcnnVIy8NDd0ZNzrO w1Al/zrIsJYvFpm4iRN5N61JdgYilsTfAd9pXhFMpp6teUAs3khCQMMJaXGSwJLMl3bm/wp7BKq 2zyICaustmzGLeoYvpNzvtlLgAvQ6yXXorypbFX6w68PTWUgvY= X-Received: by 2002:a05:600c:1381:b0:477:6d96:b3c8 with SMTP id 5b1f17b1804b1-4835081e44dmr37145235e9.23.1770741918836; Tue, 10 Feb 2026 08:45:18 -0800 (PST) Received: from Lord-Beerus.station (net-188-152-100-94.cust.vodafonedsl.it. [188.152.100.94]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4834d5d78cfsm96294245e9.1.2026.02.10.08.45.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Feb 2026 08:45:18 -0800 (PST) From: Stefano Radaelli X-Google-Original-From: Stefano Radaelli To: Kuninori Morimoto , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mark Brown , Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jaroslav Kysela , Takashi Iwai , alexander.h@variscite.com, pierluigi.p@variscite.com, Stefano Radaelli Subject: [PATCH v2 2/2] ASoC: simple-card-utils: add selectable sysclk ordering Date: Tue, 10 Feb 2026 17:45:06 +0100 Message-ID: <20260210164506.161810-3-stefano.r@variscite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260210164506.161810-1-stefano.r@variscite.com> References: <20260210164506.161810-1-stefano.r@variscite.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stefano Radaelli When simple-audio-card programs sysclk for CPU and codec DAIs during hw_params, the ordering of these calls can matter on some platforms. Some CPU DAIs apply the final MCLK rate as part of their set_sysclk() callback (for example by changing the underlying clock rate via clk_set_rate()). If the codec sysclk is configured before the CPU DAI applies the final MCLK rate, the codec may configure its internal clocking based on a non-final MCLK value, leading to an incorrect clocking state on the first playback after boot. This behaviour was observed on i.MX95 systems using fsl_sai with downstream kernels, but the issue is generic and can affect any setup where the CPU DAI finalizes the MCLK rate in set_sysclk(). A reproducible symptom is that the first playback runs at the wrong speed, while subsequent playbacks work correctly. Keep the existing default behaviour (codec sysclk configured before CPU sysclk) to avoid regressions, and add a DT flag that allows selecting CPU-first sysclk ordering when needed. Example setup: - CPU DAI: fsl_sai (i.MX95) - Codec: wm8904 Reproducer: aplay -D hw:wm8904audio /home/Front_Center_8k.wav Signed-off-by: Stefano Radaelli --- include/sound/simple_card_utils.h | 1 + sound/soc/generic/simple-card-utils.c | 39 +++++++++++++++++++-------- sound/soc/generic/simple-card.c | 7 +++++ 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_= utils.h index 69a9c9c4d0e9..60ab4df8e954 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -63,6 +63,7 @@ struct simple_util_priv { struct snd_soc_codec_conf *codec_conf; struct prop_nums num; unsigned int mclk_fs; + bool sysclk_cpu_first; } *dai_props; struct simple_util_jack hp_jack; struct simple_util_jack mic_jack; diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simp= le-card-utils.c index bdc02e85b089..f5b851e7782d 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -501,18 +501,35 @@ int simple_util_hw_params(struct snd_pcm_substream *s= ubstream, goto end; } =20 - for_each_rtd_codec_dais(rtd, i, sdai) { - pdai =3D simple_props_to_dai_codec(props, i); - ret =3D snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); - if (ret && ret !=3D -ENOTSUPP) - goto end; - } + if (props->sysclk_cpu_first) { + for_each_rtd_cpu_dais(rtd, i, sdai) { + pdai =3D simple_props_to_dai_cpu(props, i); + ret =3D snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); + if (ret && ret !=3D -ENOTSUPP) + goto end; + } =20 - for_each_rtd_cpu_dais(rtd, i, sdai) { - pdai =3D simple_props_to_dai_cpu(props, i); - ret =3D snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); - if (ret && ret !=3D -ENOTSUPP) - goto end; + for_each_rtd_codec_dais(rtd, i, sdai) { + pdai =3D simple_props_to_dai_codec(props, i); + ret =3D snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); + if (ret && ret !=3D -ENOTSUPP) + goto end; + } + /* default: codec first */ + } else { + for_each_rtd_codec_dais(rtd, i, sdai) { + pdai =3D simple_props_to_dai_codec(props, i); + ret =3D snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); + if (ret && ret !=3D -ENOTSUPP) + goto end; + } + + for_each_rtd_cpu_dais(rtd, i, sdai) { + pdai =3D simple_props_to_dai_cpu(props, i); + ret =3D snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); + if (ret && ret !=3D -ENOTSUPP) + goto end; + } } } =20 diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-car= d.c index 5af6d1b308f2..a16ead577f50 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -188,6 +188,7 @@ static int simple_link_init(struct simple_util_priv *pr= iv, enum snd_soc_trigger_order trigger_start =3D SND_SOC_TRIGGER_ORDER_DEFAUL= T; enum snd_soc_trigger_order trigger_stop =3D SND_SOC_TRIGGER_ORDER_DEFAUL= T; bool playback_only =3D 0, capture_only =3D 0; + bool cpu_first =3D false; int ret; =20 ret =3D simple_util_parse_daifmt(dev, node, codec, @@ -209,6 +210,12 @@ static int simple_link_init(struct simple_util_priv *p= riv, of_property_read_u32(codec, "mclk-fs", &dai_props->mclk_fs); of_property_read_u32(codec, PREFIX "mclk-fs", &dai_props->mclk_fs); =20 + cpu_first |=3D of_property_read_bool(top, "sysclk-cpu-first"); + cpu_first |=3D of_property_read_bool(top, PREFIX "sysclk-cpu-first"); + cpu_first |=3D of_property_read_bool(node, "sysclk-cpu-first"); + cpu_first |=3D of_property_read_bool(node, PREFIX "sysclk-cpu-first"); + dai_props->sysclk_cpu_first =3D cpu_first; + graph_util_parse_trigger_order(priv, top, &trigger_start, &trigger_stop); graph_util_parse_trigger_order(priv, node, &trigger_start, &trigger_stop); graph_util_parse_trigger_order(priv, cpu, &trigger_start, &trigger_stop); --=20 2.47.3