From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 A94843F210B for ; Tue, 9 Jun 2026 11:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005145; cv=none; b=eoTl+57x/AjZ+rZXt+nQn51Pwa4gcZ6LrW2NfY9HjR4SetVOOQ6j8qQ4YNzSO5czV66q/floSk8QDecWiWOQO9eAJadsCYX1hhz9y4WDjEouhVc6HQYh+jOJbWMmsLiWRuMKRp1cGTvJzRIh4KBmoZr6Otl15Nt8afULxsNCm0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005145; c=relaxed/simple; bh=hFuaXMBuOsZvycVnG5qVkZeVz5/9NRuZ7/y9BtjtH7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JUPe4zsv5FAvMU84B8eYL5L29/9DSRK2zQyx6mJr4l+P94l7WAEODdL+E+/seDzi7BpRBq5I7XZfXPz9GvRhy5Ot2TaK288XH0VO85Qiqlsk/ck8v26p4YGuta4aC3FqA3JFycyutgEIIOMAf1xSCM2YVm4Uiq1wNjmr2ld/rCw= 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=RnHEGmiV; arc=none smtp.client-ip=209.85.214.177 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="RnHEGmiV" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2c0aa420401so41745325ad.3 for ; Tue, 09 Jun 2026 04:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005143; x=1781609943; 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=/ABlpN+jPxbmTB0MnLce2t9pp9M98KB9DN7jc9qFYRY=; b=RnHEGmiVLLbjOKUrJPpus7niF8zeafRAphwpPiN71X9degIXm87nX8M23Uxj3rhFHc KIeysW1KX7lo8DcVFrPli3Mjs2RhRFLtYUsSA4Bu4SQAfLo/PS4PEoM/iqOQxsLqGqCQ zCqXsWziXItLQNR7ZcerxBSK9B1dNq2sAcSAiUUto2ImRb6HfUPipqsceTjrQlEm+dc2 se3rPlHIvoisMdn6vsIzfccMAlglboYrkwDMHUB5ryyPwJTOXuNvkiLzLf+z7/7/gNll vL0CMYVl/ubTyjj4WDoNQJUHcjDejki0bypBOsDYhcWbbJqnjwIETh5plRwVRwny41FP N0kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005143; x=1781609943; 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=/ABlpN+jPxbmTB0MnLce2t9pp9M98KB9DN7jc9qFYRY=; b=Qin4oZ3a0HduhGi4DZIpZLyTCyfF685UNR1jEhCODZrmTFvunEgOIPFimD7FEQBbo2 A3E0p586Cq67z5+5/fOjoEluEOhuzg81TZvDIctw7OoA8uPsqay56CldmBgt8UIwbu3+ iIf5ykghnfdgwUWEqQj+dGuXjTJBw2YfrznsujTMgpgYnrOtgxYZfVn0jH/T3PmhGEw7 Pq3B3LVJBGUZXgHreK3rDizbOvU4cpK5QZqAuoaTSzD40gCLCj7MpV/nmgrKp0oWMptQ eqjDSX6tw15dtAEUXpIyiuVFgumvw/AI1kaWjsSN082qm1DVUyfh+Jr4sslP2iGOnbq/ NJYw== X-Forwarded-Encrypted: i=1; AFNElJ9A7P9PR0S6IC4fe/8W1gZ4AR1SQvVGGRZ2/kQ8uLNxNMd5yBMMSJY1lXndwfFLJHQauDkvNS10wF4Kh0c=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/JnoaqHti5y28EGmyVH+6NLTFfIrzTYzIPuEfH1xQx+c/AHXN 7jUIcPhDbvz1dMENSDBcfI8ph0Q/Z7ObtzcaUXgPyJpNDvV8XeWLa2HL X-Gm-Gg: Acq92OHsarpGAHYekWhcSWT5r/o4vK8GJuHnO98SjobmoZD5Yc6+MSa4jWi0yz4qkEY pgMHtW+4/QRlfWz/NuikfQy2RlpOcxnqZ7/TkZK4r1KfVNJ0TFYQWLFG8m3ZBhBgGa6p0hoLqsu q0LuEu25mFBQpDj8HUx+Q/t6f/9AGX+Kq2YA5ak7m+MTrSCLN0EPldqynR5Dj8yiEdYNSg+/nrn GtdhaXp33c7GG10Ven87daq5n4rzlj+EEo1S8GpggLtwKWxpZq9Fj4s0FgMxJ30dwd9gPvyP9+Q jeivkUm7aaEdJHsSgbSjTEECY6qHR0pH40I36cINkVbj5NZs7Nm48NTbIyYGGQ6HYnAXfrNTEhH U3ZEhEQtBGy6qS6t5SgPssD2hiOCNMp3bHRZXrCrCPgnl/WMFW/RbGFjzr3AQjH3hTY5cAHkdpP TDOHsMxj1iDE/3bgvwFAZ/PUNAwH7h59fHP0olcuSZbLME78mGgtX0ol3bLoDqw0Yjp3Jh X-Received: by 2002:a17:902:f745:b0:2c2:2a8a:af69 with SMTP id d9443c01a7336-2c22a8ab1a9mr174051145ad.9.1781005142987; Tue, 09 Jun 2026 04:39:02 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:02 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 01/11] ASoC: dt-bindings: renesas,fsi: add support multiple clocks Date: Tue, 9 Jun 2026 18:38:26 +0700 Message-ID: <20260609113836.45079-2-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc The FSI on r8a7740 requires the SPU bus/bridge clock to be enabled before accessing its registers. Without this clock, any register access leads to a system hang as the FSI block sits behind the SPU bus. Update the binding to support multiple clocks to properly describe the hardware clock tree, including: - SPU bus/bridge clock (spu) for register access. - CPG DIV6 clocks (icka/b) as functional clock. - FSI dividers (diva/b) for audio clock generation. - External clock inputs (xcka/b) provided by the board. The hardware supports several valid clock configurations. For example, when both FSIA and FSIB operate as slaves, only the fck and spu clocks are required. When a port operates as a master, it can use either an internal clock source (ickx + divx) or an external clock source (ickx + xckx). Therefore, while fck and spu are mandatory on r8a7740, the remaining clocks (icka/b, diva/b and xcka/b) are optional and depend on the selected master/slave configuration and clock source. Both sh73a0 and r8a7740 define the SPU DIV6 clock control register at 0xe6150084. The binding therefore documents the clocks supported by the FSI driver for these variants. Signed-off-by: bui duc phuc Reviewed-by: Krzysztof Kozlowski --- Changes in v6: - DT binding updates (drop uniqueItems, commit message) based on=20 Krzysztof's feedback. Changes in v4: - Update dt-bindings based on feedback from Krzysztof, Rob, and Geert. .../bindings/sound/renesas,fsi.yaml | 60 +++++++++++++++++-- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/sound/renesas,fsi.yaml b/Doc= umentation/devicetree/bindings/sound/renesas,fsi.yaml index df91991699a7..803945b7f82f 100644 --- a/Documentation/devicetree/bindings/sound/renesas,fsi.yaml +++ b/Documentation/devicetree/bindings/sound/renesas,fsi.yaml @@ -9,9 +9,6 @@ title: Renesas FIFO-buffered Serial Interface (FSI) maintainers: - Kuninori Morimoto =20 -allOf: - - $ref: dai-common.yaml# - properties: $nodename: pattern: "^sound@.*" @@ -38,7 +35,32 @@ properties: maxItems: 1 =20 clocks: - maxItems: 1 + minItems: 1 + items: + - description: Main FSI module clock + - description: | + SPU bus/bridge clock. On R8A7740, this clock must be enabled to = allow + register access as the FSI block is connected behind the SPU bus. + - description: CPG DIV6 functional clocks for FSI port A + - description: CPG DIV6 functional clocks for FSI port B + - description: FSI dividers for port A used for audio clock generati= on + - description: FSI dividers for port B used for audio clock generati= on + - description: External clock inputs for FSI port A provided by the = board + - description: External clock inputs for FSI port B provided by the = board + + clock-names: + minItems: 1 + maxItems: 8 + items: + enum: + - fck # Main FSI module clock + - spu # optional SPU bus/bridge clock + - icka # optional CPG DIV6 functional clocks for FSI port A + - ickb # optional CPG DIV6 functional clocks for FSI port B + - diva # optional FSI dividers for port A used for audio clock gen= eration + - divb # optional FSI dividers for port B used for audio clock gen= eration + - xcka # optional External clock inputs for FSI port A provided by= the board + - xckb # optional External clock inputs for FSI port B provided by= the board =20 power-domains: maxItems: 1 @@ -69,6 +91,30 @@ required: =20 unevaluatedProperties: false =20 +allOf: + - $ref: dai-common.yaml# + - if: + properties: + compatible: + contains: + const: renesas,fsi2-r8a7740 + then: + required: + - clock-names + + properties: + clock-names: + minItems: 2 + items: + - const: fck + - const: spu + - enum: [icka, ickb, diva, divb, xcka, xckb] + - enum: [icka, ickb, diva, divb, xcka, xckb] + - enum: [icka, ickb, diva, divb, xcka, xckb] + - enum: [icka, ickb, diva, divb, xcka, xckb] + - enum: [icka, ickb, diva, divb, xcka, xckb] + - enum: [icka, ickb, diva, divb, xcka, xckb] + examples: - | #include @@ -77,7 +123,11 @@ examples: compatible =3D "renesas,fsi2-r8a7740", "renesas,sh_fsi2"; reg =3D <0xfe1f0000 0x400>; interrupts =3D ; - clocks =3D <&mstp3_clks R8A7740_CLK_FSI>; + clocks =3D <&mstp3_clks R8A7740_CLK_FSI>, <&spu_clk>, + <&fsia_clk>, <&fsiack_clk>, <&fsidiva_clk>, + <&fsib_clk>, <&fsibck_clk>, <&fsidivb_clk>; + clock-names =3D "fck", "spu", "icka", "xcka", "diva", + "ickb", "xckb", "divb"; power-domains =3D <&pd_a4mp>; =20 #sound-dai-cells =3D <1>; --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 2DED03FF1CB for ; Tue, 9 Jun 2026 11:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005149; cv=none; b=QjzctBykz5yRlo0BHLgQnTfUmV8Ts/eO4hvAI7D88wlA0tKO3CQl7kw4/UyzyMnkki+DZJiPxHZ3AVS1NHNfxJhd3QOX20wxr/TsUEUv60o395fKUEcsv+84bZ7qv9mFtdjiYzsklj86qvmmrny0UNWjmUtTDuRZoaYEahcOl5s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005149; c=relaxed/simple; bh=fTbdpRCyfFLaOtbYVQuXBTeh5e2Blvm9k0H83//ETNE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uieRwTxqM6gY2vOfQz37W3ngFM64a3L81WeQFA0OUtbrm8kxPuKQ5tE8yI3q+SAEAILbUdRke+1C+EQGwnYlfK1IX8R/yyB3zdvIEIZZcMMuGn0NqYnGtz6+SpSyvtk6yC7GIW7eViAjBfVzKofuCOWmTbz88/YAWe5ZqNpyf8g= 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=f0K17pzG; arc=none smtp.client-ip=209.85.214.174 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="f0K17pzG" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2c132ac5ec2so53023015ad.1 for ; Tue, 09 Jun 2026 04:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005147; x=1781609947; 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=JwW5NMDZEbB74SUEwI6Q2ihuAyLFKsCwR8MKDpGPFxY=; b=f0K17pzGok8AG6cblWdht+Y+BPqVuaLw2dmKrPaRplni+FCwgCS3j+9kVFL+gslipB cpQQwL+kq5+WP46TtnC55rbKiWZ2me8IfuGS0lyi8s8w6G/KzGdTXM8CCgUiV5h7GQD9 06IkXgygPzwE5rlEBmnEU4GLRpvgQPSC67NJ5lqYaU1e6CWgHBvWLi/doZjZyH5vP/73 Y+oeLbcXPP3qiilNBXPMxIEuLX03DKtkbh8QADw/SDI5P+SY0vEh4Zg/4gN2I4JLYjF6 8FpZ+hEtkgjhXffD5JeDayv0aWJVEsngAb2/KQ9/5Kcm/McYQzaQ9ZEUciTTUgImF13A /O0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005147; x=1781609947; 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=JwW5NMDZEbB74SUEwI6Q2ihuAyLFKsCwR8MKDpGPFxY=; b=KbQiT+7CiJlyUZHtW0bMvb+8NnJn9Vhqz4feH1s5riSYxgGFx6E+yEynvL09lRlI8o WEpwIA+H3ONvAPAsfjOMGGq0DUBwN/2Tks/fyRqj6zdCs6FcFys5MJif02mBQt0sZNFd h39ueAGm6AwEv5VV3BDM3HOWgCcD0AZeX5rwRr8j2q9r9j1jucDWeHjNNpRRRNNrKyEq bsuqJeaRZJnuTHauCAauNRbzkvHh3JWO1oROaqxXPBKOgMDcbkJK0+yINnT8PloDkqIV 2REbRDHE4T+06+4rjIASsxHs5B47h5p4YO14gbyeiFkDGiUduw8L4x/6SIN3oh0INQBK HWHA== X-Forwarded-Encrypted: i=1; AFNElJ87t/uUZtlPDnkMtp2hj0lBh8F5HyfLwT0O+5Nff/kwjo9XHLxAKPx1JVt33gRYt7bKVQrWcqudBZKBplE=@vger.kernel.org X-Gm-Message-State: AOJu0Yxxd4rXmHdH2vy5F9NSMAr+kQBPh4qqTSj0w+CxO2d2n//Xboxj TRgov4mVVZHznDWcksSRrsQYaBC+g3HmGHqqdrMcDzqkbDhR/W3FzQn3 X-Gm-Gg: Acq92OE4ZY0qfZ2P+DvJYQiE8R9Aj4ocZe6zG7qnbJB8/P0pGdsJCeTX5rbh9HhK/E3 lj3sr9vtl6u8LhBMAFyQmE0F/sANPuzgmv42e41toCQSET0GrX4xLhD678JtUUFTNirD3cMIDfd jDH9TtGmyQp/l5YLGYgdnGbHGzDBDbHnHw7xStLAoQ3l3X6wHihxq9KO+gmXF/LBvlhQNt1XB1P /9VA6OWVjUqRp9CeBrJrwNP7NabAUHEin6V1+7vJyHd5Q7ABF24kJgjth2Iy6dJOt817Joz6RE1 jfDvXeEnPWPX1z89s2A0WOT3zUvN+0mgplypgZYoxPW6Mt+sOfQhXomfbqdHW0W1jLRhxqb02UZ Pro93lftmn8XGin3BCCiDJYA5vo6VpHdbuE/a3mp2EUMi/vOsPuCX2J8bnpXu6BjLLUU3zOAuhY O3O39pu8n+/QYbPXvfJzSRAA1D23Q4Jlv6Ml60/goi9mGxFdSCIcGE0scqyuWgNYn25fRxeaRxZ BJWnxY= X-Received: by 2002:a17:903:3d06:b0:2bf:2114:ecbe with SMTP id d9443c01a7336-2c1e8209435mr230863995ad.23.1781005147530; Tue, 09 Jun 2026 04:39:07 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:07 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 02/11] ARM: dts: renesas: r8a7740: Add clocks for FSI Date: Tue, 9 Jun 2026 18:38:27 +0700 Message-ID: <20260609113836.45079-3-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Add the SPU bus clock, icka/b functional clocks, and xcka/b external clock inputs to the FSI device node. This prepares for subsequent driver changes that explicitly manage the SPU clock required for FSI register access on the r8a7740. Signed-off-by: bui duc phuc Reviewed-by: Geert Uytterhoeven --- arch/arm/boot/dts/renesas/r8a7740.dtsi | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/renesas/r8a7740.dtsi b/arch/arm/boot/dts/ren= esas/r8a7740.dtsi index d13ab86c3ab4..6f9d9bbfd159 100644 --- a/arch/arm/boot/dts/renesas/r8a7740.dtsi +++ b/arch/arm/boot/dts/renesas/r8a7740.dtsi @@ -393,7 +393,11 @@ sh_fsi2: sound@fe1f0000 { compatible =3D "renesas,fsi2-r8a7740", "renesas,sh_fsi2"; reg =3D <0xfe1f0000 0x400>; interrupts =3D ; - clocks =3D <&mstp3_clks R8A7740_CLK_FSI>; + clocks =3D <&mstp3_clks R8A7740_CLK_FSI>, <&spu_clk>, + <&fsia_clk>, <&fsib_clk>, <&fsiack_clk>, + <&fsibck_clk>; + clock-names =3D "fck", "spu", "icka", "ickb", "xcka", + "xckb"; power-domains =3D <&pd_a4mp>; status =3D "disabled"; }; @@ -614,6 +618,12 @@ vou_clk: vou@e6150088 { <0>; #clock-cells =3D <0>; }; + fsib_clk: fsib@e6150090 { + compatible =3D "renesas,r8a7740-div6-clock", "renesas,cpg-div6-clock"; + reg =3D <0xe6150090 4>; + clocks =3D <&pllc1_div2_clk>, <&fsibck_clk>, <0>, <0>; + #clock-cells =3D <0>; + }; stpro_clk: stpro@e615009c { compatible =3D "renesas,r8a7740-div6-clock", "renesas,cpg-div6-clock"; reg =3D <0xe615009c 4>; --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 13FFC3FE663 for ; Tue, 9 Jun 2026 11:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005156; cv=none; b=d6W40nAC8WlhnBxPwpm8mBwqDlZ0WL7NrlsqFgHDrvoiNk0fWPRuo5bzTElOrXLUDxlIo69ENl/8f4bYr1ELEagzKiVoPvdxx/7Z7HKColYezGtQKaNX83YpA+MeM7QuV7wkscmQlsLNfK3D7FtT0aJdUHVIsqnHc4nETAGPy9c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005156; c=relaxed/simple; bh=+xrzJMsTkYG93fo+90IGUX9wUe4dn+/Qn2o113vfxno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BVGgdjgN82ckkkIAH+ubO609eA3OvQJAjA0Z8b6Roork+XNduJtLXPH6dPsKxT955ND9mTxfR6aruDqErS4Yz9Q1EsviLEtFhp8dMDM3i5nLPrJPshQTExU2pfMBQ9e1KlZhnwTawVLjzVYSOofDZeMCZA5xodSdwDqg44FwsTA= 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=a4KzTUZl; arc=none smtp.client-ip=209.85.214.169 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="a4KzTUZl" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2bf1f074a12so55984575ad.0 for ; Tue, 09 Jun 2026 04:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005153; x=1781609953; 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=XSIuBNvqBaODcdv8iM12D2GiUh6JRLaoNHjKcJ+PWwc=; b=a4KzTUZlCQ+UAFKRAoD6QnjKWTpMRF/+MRjfgojPwaIA1d+1Nk6p7jqgSnTGCzkANI Lw+Lt9JN+zjNe5Wj0hKBNL9HO3MT0zRM1sZd2Nvss/4y6HJp71frTFoT0EyKI1L3CwHr mu2gE6VuVmgq0l+JjrHERyEEaykeDaUgRi2IilDfvhk5Qf7QxrkT/HKEgJEwXiH6Vy0C kx7H4H3ZD8Ae4wWrSwcS7nL0QlQiG+3YsSYakLFRg9uCbToD77Upltw4Ryt+5VIdrbf3 ue0n9sG6H02dVvzrJZSOaXh3nNlztaa+Sv5roisfH682kTxEw/HEaQ+ZsCCbjVfNrt1i odGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005153; x=1781609953; 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=XSIuBNvqBaODcdv8iM12D2GiUh6JRLaoNHjKcJ+PWwc=; b=Ttqth9oV/EFsP47jjEooFsdUxfmzSsQWPF8eUf38kKqnIBiHT18l3E52vh9hGqe305 ZvY34kJqSWsBB6ZQLVcJJeHcPtCoXSfJFAf3/tGGPm/nsXd7RyQIMr04Xbb9VHKtLwhD d9fqT2iGYOAj0wh39bF76hg7fZvoXUGLC2RwMMo7p8MEOV9qq7MYofAgHuMCPbmBANfe iUU8PRmJTf/xlpItCCEs2VCrnw9Xs8698UMHPWpQ3NI0FGCNovkDwxKrJ1AoDk4cHOCw p1dEGkGnpjgNceifwvBCNDvubJaWRL+JnhWfqsLRxu1lbSYwTSpotPbJVtqe+9IhEHHi 8v+g== X-Forwarded-Encrypted: i=1; AFNElJ+LJdybAqux2jETk6W5rFrAPZh7+4VwD5qL7vuK4e3XouVwh0/6jMoiAtsv5O+cazEUQjrRCGLBd6jefto=@vger.kernel.org X-Gm-Message-State: AOJu0Yzmettens7A+Ve6+4XArjpANqAImsiTWcuzlDm5XNDCd1/XDzVQ lZ72a/I/VPR+b9CNF/veHuUBVXl81Sf6vSEjdZp3aJsU6VP0n6tIHGTO X-Gm-Gg: Acq92OFyZn3ex/l/dhF6IZmxnDTo0289mJ1HGhzdFVfh1PAC1PBUFOVdOrN1WhiW8OC 7cIz+ZjYv83ymAgD1IWjNocRlnO8JMba8czmliN47TgDPJeIbmYkNM8dkv039dHeZdTbNXzDy6L vG8PrQAcHHRma1SkyRflkSNQ055vYvvF7EiJOa/bIoGlM3zYPw02tRdwITjQCgZiEWvda09qYrF qo3rrDqAaDx6Sw3sZP/RvXp641x++UrsqnowCPxhnPHEAvd07kX1f866Dcel0CE/4tiBYAOY+ma uwzTe6JRY8eaQRbv7p9rOi6Jf2YNnKFzb2z+IVLURP3BFYJqNgYymSNUzbMSMdE8yvr+YAjVJhR GKnL5PhkNavpacj5uTcV4lCMIYWtQ9gNfpcLnIQwsX//6bkHjP2nXi8R6mWQFNKZHW11jxjAqQz uJtI49sYC2cVAIAMP8Z0xqHtZZoIPkMPWoa3RVk93OY0mTj4/j6RWrphszrmwD85DyHDqEad+kg z5zgE0= X-Received: by 2002:a17:903:1b44:b0:2b9:7ad1:bf2b with SMTP id d9443c01a7336-2c1e85aef51mr248401615ad.29.1781005153477; Tue, 09 Jun 2026 04:39:13 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:13 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 03/11] ASoC: renesas: fsi: Fix trigger stop ordering Date: Tue, 9 Jun 2026 18:38:28 +0700 Message-ID: <20260609113836.45079-4-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Call fsi_stream_stop() before fsi_hw_shutdown(). This matches the existing order in the suspend path. This change ensures all register accesses during stream shutdown are fully completed before disabling the clocks. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. Changes in v5: - Move fsi_hw_shutdown() after fsi_stream_quit() to prepare for subsequent patches that use fsi_stream_is_working() to handle in-flight IRQ handlers. Changes in v4: - update commit messages=20 sound/soc/renesas/fsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 8cbd7acc26f4..800ac40f9680 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -1586,10 +1586,10 @@ static int fsi_dai_trigger(struct snd_pcm_substream= *substream, int cmd, ret =3D fsi_stream_transfer(io); break; case SNDRV_PCM_TRIGGER_STOP: - if (!ret) - ret =3D fsi_hw_shutdown(fsi, dai->dev); fsi_stream_stop(fsi, io); fsi_stream_quit(fsi, io); + if (!ret) + ret =3D fsi_hw_shutdown(fsi, dai->dev); break; } =20 --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 A654E400DEF for ; Tue, 9 Jun 2026 11:39:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005159; cv=none; b=TCLAoF4o/1RXcjW25yzsjXIJ9PnLSlMY8QBiCnt4BmlgmpqdyfQ5074nU/WbWLxCHQGCzhUq8PxSlOYXrDPRLHJEi9CM2sGKVDzt33lF1iB+KwrfnPRDnMrSdvgJEOG3K6t58kmcyMdT9Mwern3CsLpXckYDvDsF1vH44sQkOB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005159; c=relaxed/simple; bh=ZU2QqApVqvEo5X6AM4WeF7JDMWioZDbuBtbtX/QxkFg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cEVlGf0jrQbPJhFGXMO8BDKX0tdtKXWA5hxnHxfxjeaGlBl52dyPPwm0cXxJ8JuTDmcnKm/CF298Wg0Kc7DmJsL0N+59ufRVf6jSKfexTdUh4d52l0oE1KW+4S9B3MY52JH5O1853EWakWFDOzbKxzIeMVcm3CxhYA4lXwyNPZk= 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=Kqh4BB8H; arc=none smtp.client-ip=209.85.214.171 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="Kqh4BB8H" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2c0c1e0d00bso52285105ad.0 for ; Tue, 09 Jun 2026 04:39:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005158; x=1781609958; 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=yW9dUme6TNQwUT8ub5SHPZ5CpB9qrccUxB5qRYGWeaw=; b=Kqh4BB8HURyADWPMv71MwCW2L+foiM7MV8zPXw+ilQOI8z9i3LeKb4UVTTQx8XiG4X +zDoX1RgO8XpJMg5lDUzZAPyXSJHuO/WI9cKq/DijkCB9Z2SkM4YK3kC+KV4sId8+DTT onTyoLk8y8ZS0JqL7rxNx+5ElyasacDfZUkdDrfiZNG+KLYCAlBcgLWq7fF+3JsXd/1W MRjLIMw3OH9juWnXLG5UyOBYjF4VNDXDbgn5MdgC1Tx/8NtH2CMfedJQXkaMbX0mtYol LI7cclAZYgcBoijLU/uTxC/Q5K/Kr64x8e86KlP0raGZl+61Ih6LwBs3epBi+16uGzXb +3Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005158; x=1781609958; 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=yW9dUme6TNQwUT8ub5SHPZ5CpB9qrccUxB5qRYGWeaw=; b=sSg0nlxq7P2PavYslGUiy6WCj9EXjcf/Kyjs7kmFuIRGmytck5HOS2XruWEnANTw6d eRKi73RJoHvzPwYRYTbzWmuB3wAnHcD+lEYPc/5HHeWsUYJ2wTkOjKTJpfefsLogHiBT b49ZBTgYr/p0GGtKx6pAn0yVYtY+nBt+378/2ubb4pZ+sK3wlXQtqouX5w9uAO0BUA8Q faqe8oUAhLfHpAkLYQqsLxRAVHE7qXaLB1tliwSWljPHUmLoaXAy/P7kpc0Mf8jfzNOe 0PEsviaLE2la7dHZdXfeiLwLp6dHX1AjCWEzpMJ4TSeRbEq/yXYJDR3KlBhQSMdN7+rl zBnA== X-Forwarded-Encrypted: i=1; AFNElJ8f1S1rIw9K9yI7CjGv2Ba+KQ1CTnpG6m8d2XWfQ53BJsgIisjyca6f1H0Bmib3+nsSTJgdipnWr/mdyOg=@vger.kernel.org X-Gm-Message-State: AOJu0YzNjNRrsu8glxZo+0NAABxlDPh+bvRHad3Z3lrjTRxH/rwKIcLa dkYw37elaay3QWf67wajjTITtA0a6LEXpDIISLmKoj0nfmxf2fyifoJQ X-Gm-Gg: Acq92OGvq+zY6Mfxj9mviPmNtxQh4DYWLC+dAT3N97UFJk7tDamwnAOhalFhg8RXdy5 HEQr7EMuGADshBgM3oh4D2eqNmSVago64yIJeXid5QMhEHis7XpnaJtXK2CL7wpeS0JAxesQSHs 2RsMfI9krJtsfJ7dlicQ/0WS7MspLzDPslwImOHRassfafmIW8gRS9TIHWiYqkwoC4SiyJ/pN/2 NxKFfv3Nt3+OPUn2UTheKrf90n+y6UkNX+Kyi4CcwXBOy9mgT5dzUeyVAK9SBTg1aZ8JZENAkqQ MQow9tmltlelgzxNCezvmYnJdY4aGiTYMrLYOF2vzNDiJDc/Vtd/nIilvhvTkD6D35KSlLNCuW1 tYTO4dDNwQcryuLvD8+VLynJ1A1e1hipCsChml1HVOCAmBaQMhjmnvXJnwOuCCNjYl8Boqt+AdE /r3ix51rG0aj8DxzL39ZmayBNVWMZi12gL4d4GSibjLtP93VoS1FickjEghCJjvJEb7QzD X-Received: by 2002:a17:902:f70f:b0:2bf:356f:4e0c with SMTP id d9443c01a7336-2c1e80d2996mr249158845ad.1.1781005158114; Tue, 09 Jun 2026 04:39:18 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:17 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 04/11] ASoC: renesas: fsi: Move fsi_stream_is_working() Date: Tue, 9 Jun 2026 18:38:29 +0700 Message-ID: <20260609113836.45079-5-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Move fsi_stream_is_working() before fsi_count_fifo_err(). This prepares for a subsequent patch that needs to check stream status when handling in-flight IRQ handlers. No functional changwqes intended. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. sound/soc/renesas/fsi.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 800ac40f9680..0bd0e0c8c5a3 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -442,6 +442,16 @@ static int fsi_sample2frame(struct fsi_priv *fsi, int = samples) return samples / fsi->chan_num; } =20 +static int fsi_stream_is_working(struct fsi_priv *fsi, + struct fsi_stream *io) +{ + struct fsi_master *master =3D fsi_get_master(fsi); + + guard(spinlock_irqsave)(&master->lock); + + return !!(io->substream && io->substream->runtime); +} + static int fsi_get_current_fifo_samples(struct fsi_priv *fsi, struct fsi_stream *io) { @@ -488,16 +498,6 @@ static inline struct fsi_stream *fsi_stream_get(struct= fsi_priv *fsi, return fsi_is_play(substream) ? &fsi->playback : &fsi->capture; } =20 -static int fsi_stream_is_working(struct fsi_priv *fsi, - struct fsi_stream *io) -{ - struct fsi_master *master =3D fsi_get_master(fsi); - - guard(spinlock_irqsave)(&master->lock); - - return !!(io->substream && io->substream->runtime); -} - static struct fsi_priv *fsi_stream_to_priv(struct fsi_stream *io) { return io->priv; --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 33EDC3FFFA7 for ; Tue, 9 Jun 2026 11:39:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005164; cv=none; b=OPJSI/pBltB3FF0C8TaqdUs5hykA7bMlQD3ue2IZt9auvLUTlBYMu761ZGog4i9pbkVwc0VP9/1Ri1zzCTAW5FFJ1h/dHUXKE3yH5HN+SteA5P+YSviiJbEkvjhPdaZWlLkxfiuBrZE3ieTmB7jOm3y0AenZr7D13Duwz+/U4UY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005164; c=relaxed/simple; bh=KLBeFBd8zRYhdnRHp7jNIs9piYCuaRzWB6QekH1GJ9A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y5M4Gnu4PuJm9SjtYVO5ZOBv/9p3bXq/jV7D154PM/gblkWtRq4+FwB4KPVBd3naaiC7Vzz0EM6T+3gvNvUqpEaDNvZhgRWhkS/G2DgnKNEqQYu/+1mVBD6EYWe6DWqMjUe0s5tpLdwkl+BdRg65nogWg6xsBuoqr7Vxn/7qziE= 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=osmFXvay; arc=none smtp.client-ip=209.85.214.172 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="osmFXvay" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2c0c1e0d00bso52285755ad.0 for ; Tue, 09 Jun 2026 04:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005163; x=1781609963; 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=E47jwlvDyMcrvrKHDjZ9gREZbPczY+LcNlcn/JdbBhI=; b=osmFXvayH0xWIaeQOzBVnU1TOqhOYUrrizKNqnaaSdJ1MtgVdkPg1wnq7X3OAn+sWM EuKw/WR87sbLH7miyucJMBuHRT45EWO5WJWiuKC2zQNCB42thvU+JM8n0LDyMlAtE9hV WMTeqURnlTw9yvHhVSUOUmh6A7gBQPSWjhogEJc5kxVkVWEt14tosEYbZZMCRSMwhuQW ZkZG7ynYnOEUUT6wHjkmFSJAIp0T/oIOx9yvln/tSaCn1lqmYjk5ITa2ja2nJyOTi7FO bmiey9INihUfnAQzVdqEkqsFbAOF90mM9vyfBcm6LtIT15mqnAoq8eTMZR69DZ8oJdZP eA9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005163; x=1781609963; 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=E47jwlvDyMcrvrKHDjZ9gREZbPczY+LcNlcn/JdbBhI=; b=SlEHC35dWdihx2NCJRarhXm1KXkPXsSpjlzZr03q3hc8bDWovAHuMwWYoC/hbsd5xT KiI/ReFGkjeyTOmsbLduTvQhp5m9s0knj8Dl4DSDIVV7dAz7Zi2s8hP1KTjoso1oPF+7 4iaOV0eg2arjhCONQnL1yYuq6aLry2phFjI8oM+2JDKaBa8L2mG6n2ol3N0feN2HR9ia w3gBb3ul4fNSVposlqoVMvW3ul9AdS37SQVUWwea46dBppffE9vf4k1hYKO/DnjhZNb2 0vcwEuxtZJ2VVT79bzBpkmCBcfPt/XwL3Nr0diTAJbKProwN50HBfl5Z0jH2kg56yvea k8RA== X-Forwarded-Encrypted: i=1; AFNElJ9Dc6+Er0Slxz1Mkqqe2X/DnKwpphGOLtPRcr2AosT/gRirINCT+TsO5SshqYpuCSrZT/I1oLYd98nmnAA=@vger.kernel.org X-Gm-Message-State: AOJu0YzONnjCsYPiXzqObtI5Ptj0Bo77aXnhlbwJUOXVXyo+eT00ai3Q himXX9ALQ3SzZ1z1VPk/mVzscr5enW/FiGCu2QyYYBT7RHj1WwWd43+h X-Gm-Gg: Acq92OESNBOtgRdoCn5fPJUX1n9fy5xVrT787ZV5MkTP7n/xFvl5iIUcQcDmUtttfPF Pel5IQfPtAltwMhrAxcjBmysGj5Goba5jIySbUGOBkB4pLuiFgSsU4JLBkuxZ+y9K+nzG4ijunL 5prrFTky+1qdrjsvzswpA1+bfZz+lBR8S2tM5h99+0zZCCjdk4dHHZv9xynk9SPvMsClqDwmC3z ScBHJ4o8pI0SMPjV86DSY/c7dh3z6uwrSY5JsQchyS1mGj2w19WAiVhd4BJrMOYBuMR8nRpiyP3 Wya62UOoVqyrb2oeo01iztV7AOlCd/fNtBobHtciWMhacmR9D9jmzU5emyAGakzwc1Ot7XdFE6D zBVCt0CKysqQJr8/pPAO/798tX662/+aMIVd/82ytFz2tphzwRQeZVXcwEltMGw9pwv5x8sgbyx ub+lLa+KLtdI8yQImpohopSjxDn4lmNB0Og4t2amjo44WvqEZOcPH5CAYh9RYh2uZnc1vM X-Received: by 2002:a17:902:da8b:b0:2bf:2e06:2ebf with SMTP id d9443c01a7336-2c1e85ac571mr241805645ad.31.1781005162565; Tue, 09 Jun 2026 04:39:22 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:22 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 05/11] ASoC: renesas: fsi: Fix register access from in-flight IRQ after shutdown Date: Tue, 9 Jun 2026 18:38:30 +0700 Message-ID: <20260609113836.45079-6-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc In-flight IRQs may still be running when the SPU clock is disabled, leading to register access after shutdown and causing system hangs. Fix this to use fsi_stream_is_working() when handling in-flight IRQ handlers. If no streams are active, the handler now returns immediately to prevent hardware access. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. Changes in v4: - use fsi_stream_is_working instead of running_streams. sound/soc/renesas/fsi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 0bd0e0c8c5a3..3e3c6fd7c56b 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -470,6 +470,10 @@ static int fsi_get_current_fifo_samples(struct fsi_pri= v *fsi, =20 static void fsi_count_fifo_err(struct fsi_priv *fsi) { + if (!fsi_stream_is_working(fsi, &fsi->playback) && + !fsi_stream_is_working(fsi, &fsi->capture)) + return; + u32 ostatus =3D fsi_reg_read(fsi, DOFF_ST); u32 istatus =3D fsi_reg_read(fsi, DIFF_ST); =20 @@ -681,6 +685,10 @@ static void fsi_irq_clear_status(struct fsi_priv *fsi) u32 data =3D 0; struct fsi_master *master =3D fsi_get_master(fsi); =20 + if (!fsi_stream_is_working(fsi, &fsi->playback) && + !fsi_stream_is_working(fsi, &fsi->capture)) + return; + data |=3D AB_IO(1, fsi_get_port_shift(fsi, &fsi->playback)); data |=3D AB_IO(1, fsi_get_port_shift(fsi, &fsi->capture)); =20 --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (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 A31D73FFFA7 for ; Tue, 9 Jun 2026 11:39:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005169; cv=none; b=Ce+6Xg4LT0UQkm3BbOO+7oIRoivpY4mFPH4rmveHH4xNx0FndoJq+YquibL3CBo56/gtlLId3qPF+kpXsB60SZ2ZlzTDVwmjrtT/Df3ZzfO1SxuIeGeCnAuOLnF7y4bdN9Th+f5tRGFSHHxBrJHRhTqRK3DGGOuEmFOlkr+/BB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005169; c=relaxed/simple; bh=m996FWhRx8Jyse1pg+wk0JpYoaqx8/UREkFYUcB/3mI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OHjgRVE33wUbN9lhkhuXcdu9Z33nxUe7x+NnOM4cnW61MUSq0GfByrFL5cyvdaCSJ5I3aDfIr674Wlswnwb6WPnrn5A4fnXa5dq1PJly7CRp76uw2HQmqc3bTMLstctt07IBITSzSsdGJtIMCOtw30pOc0Lp+3FsJVpXI0Otm2Q= 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=ROQr9E3c; arc=none smtp.client-ip=209.85.216.49 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="ROQr9E3c" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-36b8d414666so3048799a91.3 for ; Tue, 09 Jun 2026 04:39:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005167; x=1781609967; 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=RFE4SMGzYu6VfqVWZy1LVzG1tn7Hezp1rS4Db45ZIm0=; b=ROQr9E3cGqMkiJLWPAGhCFmHQ5RCEH7s86veA0+pL+HxA6/9HGQ2r+mC9uE3ufOe9b HvXZEnnZF75Lwj/Laj9aDLWMdzhui+5bZB+49RKYWbHNnaw1JRjH3Ea87jckZMC7rb2I uj1UInB/hA2wibqGNka5MSzp10+n80uBmXOsKXuU4J9z1FMYQPEH3FgI+VPoWnqsb1uA rEdLmbjWoQiBaoiBaobBegWyQexlzSJS4ApMFrpsFcHULi4MzS9Bqp8nmVz6UqGQVkBD nbDMm3NWFWtPVEUGr6e6CXzv3Hm3vVbNggkbiM4HLrC28tzYC6g30FU3/OBhwujmjHF5 tU5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005167; x=1781609967; 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=RFE4SMGzYu6VfqVWZy1LVzG1tn7Hezp1rS4Db45ZIm0=; b=SQbG3JmfnHoS5floSfX7QWKCgQWevNWg1YWDQFma50TJKl6QcYnbMsgy1WhQB1pwO4 E/Dt8IlmX2/gaEtsaqDY80Iq55G8rCceKoN7J4bZGtPJZor2uRWN9yxEsdc1XMj/ZPXu fZOOYP8psEcbFrx6sdwRLnZZfhWZf2qykYFrtsIQLM+oW+iqLXnH7hL6iQnX4nyv7arp WNa3Zt36T/A9bhGuif72QJRzL7jRcMP7GEBp7ntv/WeAyVGZ4RgTeGX+W+9+lcKpw1+7 W8FW0UJXk4B/EAQQ/U35V7CHOJWtM6kiZfTNELaOmRRJtuJLidIXY5va1K6KmO9kQOTk y+og== X-Forwarded-Encrypted: i=1; AFNElJ8Q5/9x+UXbKhchnjgDKENPwKBr/qpytjvSssABSF/EN6YLdKTNhUndRHLqrw30jik0u2fY5oS/qoMpQK4=@vger.kernel.org X-Gm-Message-State: AOJu0YySKeL6DAzMYQpEvfvM16MS8/SxVFdLbkPKe9JQy7/Ie+qt7caH rLp+h/v1BfbUzJ2avy3NOdZe2z1OeReUdGnroMfbZ6ZPaXRsjKPcqJSR X-Gm-Gg: Acq92OF12aTxkygzScaMBbFT4CRS7/+7D3Op0PNTOBI3CWrlsUmEt7WrMReBr7dpr7p EkD+TJqOXsDz4ZJbuk/hFJwUd2dIe0RkfXMarGxtbp5xy95ZKzV1n5fq4+Myl6D3u1KEK1zoprU mYyGI0QCJdV/zHV5khGB/W9MprZkaRUSuvf5xHCiQBG1eahIrk25kfJGj90TpGAY4Btck4c3wDK vV/TKZZFBofBBmXgQIUbSWQhuQU8fRc7s4+Wz2z46EL3lVIxCvQpZ6YKSoKNe8KNn6yGF/B3M7s q0VAuj1Kiwcpt78Kt7HYy6YHKrbS48jIxVgnOM/jEN3xk3G/kBYWY+N0RCN0Er4k+pI/PJxEg7e NAvzxCuQxYcT/IBF/xffkBihCOeDaVZ7Q0J7EmSrUPaHZhT1YvtmipLmIKjVba2t4KsV0UOosJc bK3BXjlCJTWXxHrdgx0Qm/CVUfp4JpS3KY1jtIF226a08zjziruO/m7JYrnMKoc7ZYC1ru X-Received: by 2002:a17:90b:4d11:b0:36d:689a:cb27 with SMTP id 98e67ed59e1d1-37521779d48mr2843139a91.24.1781005167145; Tue, 09 Jun 2026 04:39:27 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:26 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 06/11] ASoC: renesas: fsi: Move fsi_clk_init() Date: Tue, 9 Jun 2026 18:38:31 +0700 Message-ID: <20260609113836.45079-7-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Move fsi_clk_init() after set_rate() functions to prepare for subsequent refactoring. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. sound/soc/renesas/fsi.c | 128 ++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 3e3c6fd7c56b..1df7dc014363 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -717,70 +717,6 @@ static void fsi_spdif_clk_ctrl(struct fsi_priv *fsi, i= nt enable) /* * clock function */ -static int fsi_clk_init(struct device *dev, - struct fsi_priv *fsi, - int xck, - int ick, - int div, - int (*set_rate)(struct device *dev, - struct fsi_priv *fsi)) -{ - struct fsi_clk *clock =3D &fsi->clock; - int is_porta =3D fsi_is_port_a(fsi); - - clock->xck =3D NULL; - clock->ick =3D NULL; - clock->div =3D NULL; - clock->rate =3D 0; - clock->count =3D 0; - clock->set_rate =3D set_rate; - - clock->own =3D devm_clk_get(dev, NULL); - if (IS_ERR(clock->own)) - return -EINVAL; - - /* external clock */ - if (xck) { - clock->xck =3D devm_clk_get(dev, is_porta ? "xcka" : "xckb"); - if (IS_ERR(clock->xck)) { - dev_err(dev, "can't get xck clock\n"); - return -EINVAL; - } - if (clock->xck =3D=3D clock->own) { - dev_err(dev, "cpu doesn't support xck clock\n"); - return -EINVAL; - } - } - - /* FSIACLK/FSIBCLK */ - if (ick) { - clock->ick =3D devm_clk_get(dev, is_porta ? "icka" : "ickb"); - if (IS_ERR(clock->ick)) { - dev_err(dev, "can't get ick clock\n"); - return -EINVAL; - } - if (clock->ick =3D=3D clock->own) { - dev_err(dev, "cpu doesn't support ick clock\n"); - return -EINVAL; - } - } - - /* FSI-DIV */ - if (div) { - clock->div =3D devm_clk_get(dev, is_porta ? "diva" : "divb"); - if (IS_ERR(clock->div)) { - dev_err(dev, "can't get div clock\n"); - return -EINVAL; - } - if (clock->div =3D=3D clock->own) { - dev_err(dev, "cpu doesn't support div clock\n"); - return -EINVAL; - } - } - - return 0; -} - #define fsi_clk_invalid(fsi) fsi_clk_valid(fsi, 0) static void fsi_clk_valid(struct fsi_priv *fsi, unsigned long rate) { @@ -1034,6 +970,70 @@ static int fsi_clk_set_rate_cpg(struct device *dev, return ret; } =20 +static int fsi_clk_init(struct device *dev, + struct fsi_priv *fsi, + int xck, + int ick, + int div, + int (*set_rate)(struct device *dev, + struct fsi_priv *fsi)) +{ + struct fsi_clk *clock =3D &fsi->clock; + int is_porta =3D fsi_is_port_a(fsi); + + clock->xck =3D NULL; + clock->ick =3D NULL; + clock->div =3D NULL; + clock->rate =3D 0; + clock->count =3D 0; + clock->set_rate =3D set_rate; + + clock->own =3D devm_clk_get(dev, NULL); + if (IS_ERR(clock->own)) + return -EINVAL; + + /* external clock */ + if (xck) { + clock->xck =3D devm_clk_get(dev, is_porta ? "xcka" : "xckb"); + if (IS_ERR(clock->xck)) { + dev_err(dev, "can't get xck clock\n"); + return -EINVAL; + } + if (clock->xck =3D=3D clock->own) { + dev_err(dev, "cpu doesn't support xck clock\n"); + return -EINVAL; + } + } + + /* FSIACLK/FSIBCLK */ + if (ick) { + clock->ick =3D devm_clk_get(dev, is_porta ? "icka" : "ickb"); + if (IS_ERR(clock->ick)) { + dev_err(dev, "can't get ick clock\n"); + return -EINVAL; + } + if (clock->ick =3D=3D clock->own) { + dev_err(dev, "cpu doesn't support ick clock\n"); + return -EINVAL; + } + } + + /* FSI-DIV */ + if (div) { + clock->div =3D devm_clk_get(dev, is_porta ? "diva" : "divb"); + if (IS_ERR(clock->div)) { + dev_err(dev, "can't get div clock\n"); + return -EINVAL; + } + if (clock->div =3D=3D clock->own) { + dev_err(dev, "cpu doesn't support div clock\n"); + return -EINVAL; + } + } + + return 0; +} + static void fsi_pointer_update(struct fsi_stream *io, int size) { io->buff_sample_pos +=3D size; --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 3C456403E85 for ; Tue, 9 Jun 2026 11:39:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005176; cv=none; b=EJPoesC0QpjnlWRwaesxURSusI2fKcipOz+9ufFQIizkFrb5inMHwakLBjDpJ2tWb5+rm+cU0xI6QRS2Eupf3riT27j/vZjCgcG1n/m6hIqxgi5AcWCc1KKK5sYRDtq09HmZOX4GSnrtqmajLa8hBZJYEVCTiT4A9RfpZecv2fE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005176; c=relaxed/simple; bh=SsUMo+hqcHS6PAZWbeNXNV6E2THXUTZEf8/ZmCsujio=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aE4+7RK+gAk8rm+CAAX9Slv1ZQ9CdiUAW1/RrBYBzDbJ40AAv46Y/ZRNT935L+ASGKRhQ62+PCZrDZ8TtcFSCL/p6GzHUWWPi3eXkBVBliKPMNR2sunKZSObXlPjAcEJU16sYh1U5UfdAMXDH+f0f2rCQs2J+2H+C9NoACKUYmM= 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=pEBnvUDk; arc=none smtp.client-ip=209.85.214.176 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="pEBnvUDk" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2c0c2a68d01so36847975ad.1 for ; Tue, 09 Jun 2026 04:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005172; x=1781609972; 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=btle9qlFdNHhg/yZTU5eyJZhUVYtJLKRE/IEtXriIZs=; b=pEBnvUDkmkrx6ZB/na9wJt+Bnjmf79cW7CU1DyRbbBv0v/Ha5Yt+ZNmp0AZHJiV/o2 jlAJswIw33N+/rV+0LEotDJMG2nITK6ByFU2aJnA8LMoS0ZYjLGo1rg4KbRZwCVdzuHU RS8Oe4EpKb7lK/pxcTNH2F14+4QGtbMv0uu/T7pa62a8q2GTG3bTglCOUWJ93QLG2Rk9 YAXxIHEIfpKTPJeLtl3ZrRXpc82uJsC/+uX4URZOkQ5U5xtaFqHcnIyfe4eI1RZ9s85e Ayjv8qZMshoPEoGmlyVFPdhQkOKLFcRVVCV/MLaZOkWVvq27A7cfnjDjg50lwtZwZzsy t+ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005172; x=1781609972; 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=btle9qlFdNHhg/yZTU5eyJZhUVYtJLKRE/IEtXriIZs=; b=Sm5oxBiFaKw/T1qe7V7TWDOodR6yMJpFgo8yeH2J4L8UTr/jaRr8mnMje/GRJtN/Qa 8d/MYpiHuf3WGMeF3PWZbZWcOccY8vB8tQMqvIArcyC6CvjsMYjHjg1/PMFea9pedM8X UjzIqOvwPN2y8aJuvHz9CCZwT6ScNNrwEh08ZxAewL0kaLcES+R4qU85UeiZ2FihCP2q VojFEddTQwWZQtRORX8LNhH+e5tAJ2esl8roImKZwRgdh2vHgET9P8h3P2Z3MpN297X7 xS/CVIL3ILh8bvq3RhbwgoldckFZbNgPa/nypnZmmoru9XP3ilxrg0+m+MRSEVYwVQ6i b+Tg== X-Forwarded-Encrypted: i=1; AFNElJ/7IIBjaBtf3/Slg8yxCPF4zRoOmIinKHWF7nYglFXC2lcB5pTOPlqvHW6sN9afcI0SXiyTqU9WJTibV3A=@vger.kernel.org X-Gm-Message-State: AOJu0YxNUR7in6sWyeXr4djw+kEZBhQYH1CoscsCt/xBVP7M1NvrO3XS I02qwUaYxbrOMBepFhKXmUkd0bB6Wv8MT3zwHxecxFE3lHS04xuq19L1 X-Gm-Gg: Acq92OEVt1pjqQLrEeFDI2Y+fB9VcXiPauozTj54sMYRvlpai9Qg7mjApkYvkZcKd1K Dt3Uv9GLfcd8aSOT23DL02pegdwUv67eo6q1F5ykNESHMueUOrQCazd9ER/v7LZoB8PTAzCsnXd 6Ys3JvnFoUKEqdegy69jgjmu8Br+LwvzcL5YM4KUcQplgeW8LGSHTTJ+shN9dR8kMjSiGfxcdb3 Aq6gS/U4LLYhoqLSirfnd0f3kf33DRLmLuN4QazVc7NLAIE8e+n67e97j530sNLLIE6BeMqcbMK TH/T+uQbhVhLdABQD2r69kdhtUnMQBGIdH0JdD58q3zntJqUm1yo+660PT8kVVYhncYBbqwUO4u cAvA+G3Kpl/P79FoOraM3hxpvl6R+TNgBPd7ORIqL6GempyZTk7B66YWUq1oS9Kau2vX9Y3ZfCD tqHtTEH6xDnJ1EyvQcN13TFciY3xI4O/3FjRF/9msBtEa3txBSD9WFdPShjiZf2vD7rGII X-Received: by 2002:a17:902:f64e:b0:2c1:4310:d80 with SMTP id d9443c01a7336-2c1e79e22bamr237302725ad.8.1781005171824; Tue, 09 Jun 2026 04:39:31 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:31 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 07/11] ASoC: renesas: fsi: Use devm_clk_get_optional() for optional clocks Date: Tue, 9 Jun 2026 18:38:32 +0700 Message-ID: <20260609113836.45079-8-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc The xck, ick, and div clocks are optional. Switch from devm_clk_get() to devm_clk_get_optional() to correctly handle cases where these clocks are missing. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. sound/soc/renesas/fsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 1df7dc014363..e29be2bcf952 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -994,7 +994,7 @@ static int fsi_clk_init(struct device *dev, =20 /* external clock */ if (xck) { - clock->xck =3D devm_clk_get(dev, is_porta ? "xcka" : "xckb"); + clock->xck =3D devm_clk_get_optional(dev, is_porta ? "xcka" : "xckb"); if (IS_ERR(clock->xck)) { dev_err(dev, "can't get xck clock\n"); return -EINVAL; @@ -1007,7 +1007,7 @@ static int fsi_clk_init(struct device *dev, =20 /* FSIACLK/FSIBCLK */ if (ick) { - clock->ick =3D devm_clk_get(dev, is_porta ? "icka" : "ickb"); + clock->ick =3D devm_clk_get_optional(dev, is_porta ? "icka" : "ickb"); if (IS_ERR(clock->ick)) { dev_err(dev, "can't get ick clock\n"); return -EINVAL; @@ -1020,7 +1020,7 @@ static int fsi_clk_init(struct device *dev, =20 /* FSI-DIV */ if (div) { - clock->div =3D devm_clk_get(dev, is_porta ? "diva" : "divb"); + clock->div =3D devm_clk_get_optional(dev, is_porta ? "diva" : "divb"); if (IS_ERR(clock->div)) { dev_err(dev, "can't get div clock\n"); return -EINVAL; --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 29999403E8E for ; Tue, 9 Jun 2026 11:39:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005180; cv=none; b=LMlbeOBwKtQFcgKYI6JGO49kakqHWgxWVP5QmiZ1hSWayLEBm94H1cXChSr29C1QdetslF9nAPTUc5RLtqw//nGtb+soyBsQ3eusiFZD2ok1Nj4CET2JdL5lMQaF/ukydOMMhwFv7uQG7eJ1LDy47TcJgafXIwAbRjmjmWqK/is= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005180; c=relaxed/simple; bh=TVTFqtNv3SDidQR0s+8WQhEyydhiZpPFphguBiX/dDI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IV2KeikVB0X3XHGLoq7yA6y5SwQY0t2+tmK+P1cVjwmGIQbSUnNqNVEoS54/FV730fftVg5dDaOxCJROLWmx/DIq/hmM8oFgCGofEJr4rENTh4X56xWoMRetnW36nudJ2Z7e5Mbq5JzS9tweDASr0IoYZDnGoooWH0xSmgeJ/q4= 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=fYUqp0Az; arc=none smtp.client-ip=209.85.214.175 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="fYUqp0Az" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2bf1f074a12so55988115ad.0 for ; Tue, 09 Jun 2026 04:39:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005176; x=1781609976; 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=sXEOWHZ4dzNUaN8JMIKeeopADr/ohbLDpOo26m2Ui5M=; b=fYUqp0AzlkNTpn8WDSlre0+FEZHjb3lZ2rrvIASQ9BwdCx+nF6wHJNYQ33P1hjLWjv IxZ6Fg5iJ50JdX287VXvcNX0TKAMx2vUPs7J2orXcnx60eSL+X2ZdMi04pxxfYyYutsV 5i/2nsNMSjr8AtbhErTSIAvPcyS3mIgNylNa0JswvsBd2KF7ZCWu0dVXG8y0vu3qPjV+ eOQpTy6jl4MQw+iUTFEcrS5n4PpYh7gc/HmUGzCZd8uQTRSjX6anqSPXB7RpKugGU95N aAc3LIwWGmexLEAvTBAm23hmPSWwVuyX7kWmpjVFUM0/smKtg1f9iSLPOHZVvdt/kaoc kbsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005176; x=1781609976; 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=sXEOWHZ4dzNUaN8JMIKeeopADr/ohbLDpOo26m2Ui5M=; b=ONOHmRBAWfLKAgNbcmbxYkw7myUU5V9yn9neJnUdMjQIDJSPJkL4b/0PTFdQ1yCzd2 8Rivq2dJ+7/FebUwei0Bnj8nPnRouRbDpll3pUMsgDfbnFEGooXIv2q0/3HUqDLAEQ2J HGU6jkKdkXFY9OSOqk/Zj6aiTM2adbNgQzLmINMdMhW5NFTKgPJu1CWstnwtxWYyJR9f lZX6rZajGIhyf2zd/gb+DCx4qKMJlRAXjnXau8xxwfOrQ3jmVPklePBb5XlxD6yfoN/Z cfXIwLjk+IY20T6tXwUjn3hS0al5ID4MpBoHzmsmc5akAPlvg6DB6UzaCZlHT6JXJISR eDQw== X-Forwarded-Encrypted: i=1; AFNElJ92C1YYZMroaAjWEAaPrmlx20DHTQ6U+E/pOhT3J8YP9L6syR4ySc/mvo51eu+DWpaqYvJgTUXPTvOLy5Y=@vger.kernel.org X-Gm-Message-State: AOJu0YyNik7wPJHzni8MqJ+G7dMhEMH7xBM9ZNE9S1sCqdFOjwTWnplB zpQ37lYJidNEflz9olT2htPvBg1IA7h+N1PFR5kps4eHLtfySSbdNELi X-Gm-Gg: Acq92OEH4eoU3jyl1cjSThKMEN7+tSvjvE6o11KaykNeRI5ml1vLocTrQYvb79VF2cO IN8oVWxNTxS9tkuGPLvcv+H1C8tDKflYYjDKpqsh+BcFAdXl2rSDTijMjItYlicezJ7s6MOgBsk wmFoyAY1+qW+Wpk4QgO6wlMpttJFzQ1dhAGNzlhI/cSorRi/zVDg4NAYQ20PNBi9hhAxyTzDgYN mdwRZ4oSFM/5kai0nUIlhy4g8vU36BNF+SSHLtjcC03b4cD16gVdFgJvrU8iszRHEshHWj/UYpR Yxo9rNtTynatlmMp6G4CzwM9uGTkqjyERPcz7Xr8PY6M1cAUXp6oUt+Hekx7Oe1kACeexIsEpsc canMLu8ALV7KHiglkeMMC+T875YXgpWCKW4wraZIWwfZ5qePQ+Y115+ww3Y3ACiRNYwlBdSLHJ3 PTnkCy/26ZfomOjbi1cPqZeBhOQ/KywoNtEu0iyP2M+eL2uk76mN5PmmhRqgwBLB8wrWXK X-Received: by 2002:a17:902:f60d:b0:2ba:4e84:966 with SMTP id d9443c01a7336-2c1e85e0896mr217831875ad.36.1781005176375; Tue, 09 Jun 2026 04:39:36 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:36 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 08/11] ASoC: renesas: fsi: refactor clock initialization Date: Tue, 9 Jun 2026 18:38:33 +0700 Message-ID: <20260609113836.45079-9-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Move fsi_clk_init() from set_fmt() to the probe path. This ensures that clock resources are acquired only once during device initialization, instead of being looked up repeatedly whenever set_fmt() is called. Together with the previous conversion to devm_clk_get_optional(), the driver can now probe successfully even when optional clocks are absent. The set_rate() callbacks continue to validate that all required clocks are available before applying hardware-specific configuration. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. - Improve probe and clock error handling. Changes in v5: - Reorder the patches=20 - update the error handling path to ensure proper cleanup by Sashiko=20 Changes in v4: - Handle the return value of fsi_clk_init() to properly support deferred=20 probe, as suggested by Mark. sound/soc/renesas/fsi.c | 67 +++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index e29be2bcf952..43bc77ebcca3 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -862,6 +862,11 @@ static int fsi_clk_set_rate_external(struct device *de= v, int ackmd, bpfmd; int ret =3D 0; =20 + if (!xck || !ick) { + dev_err(dev, "xck clock or ick clock is missing\n"); + return -EINVAL; + } + /* check clock rate */ xrate =3D clk_get_rate(xck); if (xrate % rate) { @@ -898,6 +903,11 @@ static int fsi_clk_set_rate_cpg(struct device *dev, int ackmd, bpfmd; int ret =3D -EINVAL; =20 + if (!ick || !div) { + dev_err(dev, "ick clock or div clock is missing\n"); + return -EINVAL; + } + if (!(12288000 % rate)) target =3D 12288000; if (!(11289600 % rate)) @@ -970,35 +980,35 @@ static int fsi_clk_set_rate_cpg(struct device *dev, return ret; } =20 -static int fsi_clk_init(struct device *dev, - struct fsi_priv *fsi, - int xck, - int ick, - int div, - int (*set_rate)(struct device *dev, - struct fsi_priv *fsi)) +static int fsi_clk_init(struct device *dev, struct fsi_priv *fsi) { struct fsi_clk *clock =3D &fsi->clock; int is_porta =3D fsi_is_port_a(fsi); + int xck, ick, div; + + if (fsi->clk_cpg) { + xck =3D 0; ick =3D 1; div =3D 1; + clock->set_rate =3D fsi_clk_set_rate_cpg; + } else { + xck =3D 1; ick =3D 1; div =3D 0; + clock->set_rate =3D fsi_clk_set_rate_external; + } =20 clock->xck =3D NULL; clock->ick =3D NULL; clock->div =3D NULL; clock->rate =3D 0; clock->count =3D 0; - clock->set_rate =3D set_rate; =20 clock->own =3D devm_clk_get(dev, NULL); if (IS_ERR(clock->own)) - return -EINVAL; + return dev_err_probe(dev, PTR_ERR(clock->own), "Can't get fck clock\n"); =20 /* external clock */ if (xck) { clock->xck =3D devm_clk_get_optional(dev, is_porta ? "xcka" : "xckb"); - if (IS_ERR(clock->xck)) { - dev_err(dev, "can't get xck clock\n"); - return -EINVAL; - } + if (IS_ERR(clock->xck)) + return dev_err_probe(dev, PTR_ERR(clock->xck), "Can't get xck clock\n"); if (clock->xck =3D=3D clock->own) { dev_err(dev, "cpu doesn't support xck clock\n"); return -EINVAL; @@ -1008,10 +1018,8 @@ static int fsi_clk_init(struct device *dev, /* FSIACLK/FSIBCLK */ if (ick) { clock->ick =3D devm_clk_get_optional(dev, is_porta ? "icka" : "ickb"); - if (IS_ERR(clock->ick)) { - dev_err(dev, "can't get ick clock\n"); - return -EINVAL; - } + if (IS_ERR(clock->ick)) + return dev_err_probe(dev, PTR_ERR(clock->ick), "Can't get ick clock\n"); if (clock->ick =3D=3D clock->own) { dev_err(dev, "cpu doesn't support ick clock\n"); return -EINVAL; @@ -1021,10 +1029,8 @@ static int fsi_clk_init(struct device *dev, /* FSI-DIV */ if (div) { clock->div =3D devm_clk_get_optional(dev, is_porta ? "diva" : "divb"); - if (IS_ERR(clock->div)) { - dev_err(dev, "can't get div clock\n"); - return -EINVAL; - } + if (IS_ERR(clock->div)) + return dev_err_probe(dev, PTR_ERR(clock->div), "Can't get div clock\n"); if (clock->div =3D=3D clock->own) { dev_err(dev, "cpu doesn't support div clock\n"); return -EINVAL; @@ -1672,15 +1678,6 @@ static int fsi_dai_set_fmt(struct snd_soc_dai *dai, = unsigned int fmt) break; } =20 - if (fsi_is_clk_master(fsi)) { - if (fsi->clk_cpg) - fsi_clk_init(dai->dev, fsi, 0, 1, 1, - fsi_clk_set_rate_cpg); - else - fsi_clk_init(dai->dev, fsi, 1, 1, 0, - fsi_clk_set_rate_external); - } - /* set format */ if (fsi_is_spdif(fsi)) ret =3D fsi_set_fmt_spdif(fsi); @@ -1978,6 +1975,11 @@ static int fsi_probe(struct platform_device *pdev) fsi->master =3D master; fsi_port_info_init(fsi, &info.port_a); fsi_handler_init(fsi, &info.port_a); + ret =3D fsi_clk_init(&pdev->dev, fsi); + if (ret) { + dev_err(&pdev->dev, "FSIA clk init failed\n"); + return ret; + } ret =3D fsi_stream_probe(fsi, &pdev->dev); if (ret < 0) { dev_err(&pdev->dev, "FSIA stream probe failed\n"); @@ -1991,6 +1993,11 @@ static int fsi_probe(struct platform_device *pdev) fsi->master =3D master; fsi_port_info_init(fsi, &info.port_b); fsi_handler_init(fsi, &info.port_b); + ret =3D fsi_clk_init(&pdev->dev, fsi); + if (ret) { + dev_err(&pdev->dev, "FSIB clk init failed\n"); + goto exit_fsia; + } ret =3D fsi_stream_probe(fsi, &pdev->dev); if (ret < 0) { dev_err(&pdev->dev, "FSIB stream probe failed\n"); --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 5E887403E97 for ; Tue, 9 Jun 2026 11:39:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005182; cv=none; b=d3LCACsSACnEIDzOkaa9vHypluORAj2X+6pYzn5vJHC3wQ1TMpHYnnZFVpkpvOcbilo8fE2Rh7tzxnWnC5PMZyVBTW5eqZiv+R7nqzEBiyHIHYbCa5qO9cTbfWaCpZlZnrimEaShR6HrtQO4JwIOxuUeGiqaH9THEc0hUmCQ9w0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005182; c=relaxed/simple; bh=NsITPzSpAz4fGBrSp75LeBpjl4N8sxVfHka61HOq9sg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ttGpWJmdUi13YjNb8ecTwGM+ihoiltEsDiBfdChxRO9W1KhItH2FMiET5AVrK9E7d9pFsVAKLYh8TzM611eZNaLsOUKTjXVAz6XUNwbjUATZl8SGiCM14/hlDhdfD/Z0C7o0RI3hM5KCBMMzndOsQnajBHXRMil4Eb7OxisZvpU= 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=UjGsV7dr; arc=none smtp.client-ip=209.85.214.176 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="UjGsV7dr" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2c0c35980fdso54645945ad.2 for ; Tue, 09 Jun 2026 04:39:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005181; x=1781609981; 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=tQHxCJIc5wdA2xrHT5QQXhiIMFBTsuYRD5YZQNGHjTk=; b=UjGsV7drSGXOx5fYVSKxBKqZkEKy/bc0NZseIKCO0Dss2Tt2ar2t8sHKuhoZzpLceA 1wrNDMVTyEGmKbnj/Zf57UQlRRnvidP4zMJso2Ku865gKuJ5I+yvZ96Wnu0YzvrzMyZz 8km4Zt0aBswdV5jshQMsn/G7jkk+eO8lewHu7BV5s+nndd/jT/yN9BsYN50oWbOgU0o9 Jp/EIdYsvEWHH6mT2XAPGPO0U7ltHdgsaidUwgiRagOs5cKEHZ5KdLnjlgObboCXRYAv 0jpXdsL2/73ccr4iP9km//7KfcaZeRrVJ/0wFTf/IxscLwKLifUuqgbcpKGp7fHms2ot gUZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005181; x=1781609981; 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=tQHxCJIc5wdA2xrHT5QQXhiIMFBTsuYRD5YZQNGHjTk=; b=YuMmzF/UrOeifHo9xjfofT/WCIJE/C9lbmGD8/9wfPKpdgU7YfZWiMO93CL0nrlREN 997PEYleZPaSSOHiBZRp9QfGBfzQAEr7q4eW37Ng2c+1lR2QCu/BnmNwYuWxCPCn/WxK ECrkBw0fNdghXKExnANgVeUDWMHG2ZPY8xy/gcd9CzGTImgWOPd+zfTdGgk2SNZQcNxY H0ePL4ZEBAKLHU/z0nUA+wUrRGlYC0/m7E9x6N3v5djD8eXAYctDWJ5MWjh82K29VLyR iOKkDXN/H8ikIVOuwfdDvls8+ZNPruVTtrzFC2fSaoK/M8BHc+4LKtW0bMulRQF18Kxo qMnQ== X-Forwarded-Encrypted: i=1; AFNElJ9lG1Jg1ErOuAJ3zV8e3Xq/wKOLm93vaZVhoAybgtSzmDyffRaUex4M/UihJIqPDbh4fT5aQDfiRbj9sQY=@vger.kernel.org X-Gm-Message-State: AOJu0Yxn/sbVd57NSpS54DSHCXVo3kKkPtIo5kUNtM9SJp7OZZXYZGNj 89MR3hT8G15n4V93+fI8BffFqDe+682/10Sw6d/39FXEYtnU2thzkMLG X-Gm-Gg: Acq92OE/Fle7mmgcgC3acJDibk6Q3LC70hxWwdr4jA8X00gX2fMmgE175EXbrm3goHr vuUXI4olGVx4TcVZwOZxO08aKA8z2bdoYeQqWbFFG7UKum16j3jRlmno/L+mjYDwMBU9Ss2+j5i XkbdlYyXF5Z0cZfZCuPU9ed7SaaHWKYwOSE7BqNE+017O2vlRESJcMpUD4uJSbqQ3al/GgD+Mmz pApldUuk7WGyD08ZzCTV5Gr7Klq1DTmOlIkW9MlJb8GI8xXas1JNs+RxZSfCw91emAQIwuAgzNr uOxXshh83/akVvghZvpJ/FaiiGZThzXnRaTqkUroP7HeErnqO2RSTdPrKg6qcAqnI9WZtl0/Mmz 3noRpi76/tvDPuyFzRTMUN8K3kRt4MX3fgoc+whrTO+KVRYCwoNU86IXf/X2XdV3rMIU87AZrwB Y8ypYHrs1cdYwt7zxlyRdWFIfBN/f+/Gh8YVVQNOZJrNzES5xUQbR5RhOyA9QUDqiMuM0G X-Received: by 2002:a17:902:da8e:b0:2be:bcae:f6b0 with SMTP id d9443c01a7336-2c1e8495230mr248457445ad.22.1781005180791; Tue, 09 Jun 2026 04:39:40 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:40 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 09/11] ASoC: renesas: fsi: Add SPU clock support Date: Tue, 9 Jun 2026 18:38:34 +0700 Message-ID: <20260609113836.45079-10-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc FSI register accesses on the r8a7740 require the SPU bus clock to be enabled. Add support for acquiring and managing the SPU clock via the device tree to ensure proper register access. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. sound/soc/renesas/fsi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 43bc77ebcca3..716ecf0401fe 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -292,6 +292,7 @@ struct fsi_master { void __iomem *base; struct fsi_priv fsia; struct fsi_priv fsib; + struct clk *clk_spu; const struct fsi_core *core; spinlock_t lock; }; @@ -983,6 +984,7 @@ static int fsi_clk_set_rate_cpg(struct device *dev, static int fsi_clk_init(struct device *dev, struct fsi_priv *fsi) { struct fsi_clk *clock =3D &fsi->clock; + struct fsi_master *master =3D fsi->master; int is_porta =3D fsi_is_port_a(fsi); int xck, ick, div; =20 @@ -1004,6 +1006,13 @@ static int fsi_clk_init(struct device *dev, struct f= si_priv *fsi) if (IS_ERR(clock->own)) return dev_err_probe(dev, PTR_ERR(clock->own), "Can't get fck clock\n"); =20 + if (!master->clk_spu) { + master->clk_spu =3D devm_clk_get_optional(dev, "spu"); + if (IS_ERR(master->clk_spu)) + return dev_err_probe(dev, PTR_ERR(master->clk_spu), + "Can't get spu clock\n"); + } + /* external clock */ if (xck) { clock->xck =3D devm_clk_get_optional(dev, is_porta ? "xcka" : "xckb"); --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 C9B9F404BE7 for ; Tue, 9 Jun 2026 11:39:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005187; cv=none; b=hj2Oa8tx7a8U9YYyxhAYExkRBxAaACJfhHlUuB54A770/Zj+mngSGshTua96FOUoOs/IWk2UjbyfYfMVXRmub+Z/GkkN4ORYqOVFR2BpH0jI6vpMcLewAlmD3Mmii5G/35OoFbwEZQ9hzn7WRBZilQrqmZzm+mGQGMOhFI1gG/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005187; c=relaxed/simple; bh=kTAg9q9u6VoW+qN869GenvQcA+UPoEV0Jn/gySZyMr0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fSrvUMNYGit67WDKM+E+WgH4Z/izmCGlbArCQsbZHeLamH15AI5JnMxHb/6WRF/OmWj+kDvA5DJBVGTNP1poJKDNeBdmIM6zXkDxEzrXxNOXi8sKeJm0mVtVep3LjGayGa1XG991Fg1lRC2qaUxFmH9RK62LXMvzw0PZNUea9zg= 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=ADf8QRM9; arc=none smtp.client-ip=209.85.214.173 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="ADf8QRM9" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2bf22d29dabso35812875ad.2 for ; Tue, 09 Jun 2026 04:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005185; x=1781609985; 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=O3igX93L19Hd9A1VIL7yayX5x/YnSKR6u0HXaQm3XtM=; b=ADf8QRM9I/Dn+EnWodaEHM/QAmnovXtJWlFfFdUGOtHAknGN0WSw92OitysZMdi5/o aGv4z9YW7Sz2S4ayyszXbNij30TaHuBi1iwNUyJ01TAllbHFW5k7zR4DgmBsBBLqpEDD QhPhYnC4nqQkmtSGgsflU8hjFt4l9lR/UXIEvaVxQirNQLKtTyX/yVl866DoXm9Ko2Jq eJX7Op8fHZLC94ESl8IetHgSEU/C5Up4b9tCvksWp2XlHe/bqBjQzUsMi1XQqV6bZZMz GzjgP+0Ju2i+qsIE8j0joUQX1bbo+ES1ClNkwsj25y/RR8mJKE8SaWBtx5vsESqAUiUH tv5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005185; x=1781609985; 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=O3igX93L19Hd9A1VIL7yayX5x/YnSKR6u0HXaQm3XtM=; b=EgYLzy/2+kkNkV0UyT8fOlKCehOM5siC2LccTfhwxXnhKgYEh3XL+rR/M+aBgxdqhp npQadvaZaIOF/MPjsdL07s6B0GOcn3mO3iR2yGjO1DyxdSXiJ6X5TxScd0UCIlb3bWY4 iKk7Lg88wtnGEH7jEjQ6BhfW+rwmFUjz5gbK7rPa0tpq9NI/KQGL8fg7yfmWuFH0kh2p bbpucXFhizM/c4SDzZD+WFhsaBRUAnw/Wau6aTQ69B+qFhDNQD5nN5SIqyzw2TlV9xQt IJC2CHCSiKWs3ilAwGU4uBe99hD0w8THOfpeGQJopwveIKHaUiEj0o5cHLwKh54hSqk/ ok6A== X-Forwarded-Encrypted: i=1; AFNElJ9ATRr6FYP3eMM09BghfrRHzSrA2HFkYTmppaZnvWL8PMLe1ZSmlCCGpm8m4FkJlYzyhwovQkQCfnEal/w=@vger.kernel.org X-Gm-Message-State: AOJu0YxXB8r7DXQvbd/x99wMLCsAeMsKkRMGHdhnPwk8eyw4vYwAG2t7 aUaqvLZyfInfcCxR7ZVvjqGOqSm6u2R/86Snl+64hHco8w/+GgLcWOgP X-Gm-Gg: Acq92OG73nYQNretqr4Z/rHDZOJnZLOg2+4wmKvHNOMA0sSIzEiAAQmY9oV80/yA4mv kiNveHMvvvsSh7Lw/GN1axyVy97UmJPBmCZ9oKEt2d32RgQyiUQO0RjD76TstxN8thmkTXjK37g ZrvL4zDHN0Mx61uCzqFMeZdjquBmssjPbqiXZJqNw/ux7CCnp4Sl6pYfULewtApFfEBSr4cPenI aEhDfMXzJCoO3nx/A1VvL5Oy1bHqksnjyxzUo/OZM4XhKXjfhoq2Sook89gGCng2spwu51m6tc8 nbdsjBBkgEQntWyM+ikurxh3AA0NZzHH1XPLLyf3S1BJDAA+iTSKuNcBF/S8M+4FmBy9DgFNo6W uiAIlr/4eYXpYVxH7rkEjlDeZU9Odv0PlUwWmYsR96GKIo9xnqDcqkUH/tkQMoVFBWNJYlFTQzK Mhu2mt/P00NOQmx3m8f/gctFxLcZXgK+S1WS+ETGjaDhvCJl+f6XxdEULHlv9aEwK8UtIK X-Received: by 2002:a17:903:908:b0:2bf:2d0:887b with SMTP id d9443c01a7336-2c2a1bc8420mr37204835ad.9.1781005185183; Tue, 09 Jun 2026 04:39:45 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:44 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 10/11] ASoC: renesas: fsi: add fsi_clk_prepare/unprepare() Date: Tue, 9 Jun 2026 18:38:35 +0700 Message-ID: <20260609113836.45079-11-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Add fsi_clk_prepare() and fsi_clk_unprepare() helpers and call them from fsi_dai_startup() and fsi_dai_shutdown(). This ensures clk_prepare() and clk_unprepare() are executed from sleepable contexts and keeps clocks prepared only while audio streams are active. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. Changes in v5: - Drop count & spu_count and rely on the clk core for clock reference counting. Changes in v4: - Move clock->count early return check to the beginning of=20 fsi_clk_[un]prepare() to simplify the code. sound/soc/renesas/fsi.c | 51 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index 716ecf0401fe..e26f39dfe059 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -730,6 +730,54 @@ static int fsi_clk_is_valid(struct fsi_priv *fsi) fsi->clock.rate; } =20 +static int fsi_clk_prepare(struct fsi_priv *fsi) +{ + struct fsi_clk *clock =3D &fsi->clock; + struct clk *spu =3D fsi->master->clk_spu; + struct clk *xck =3D clock->xck; + struct clk *ick =3D clock->ick; + struct clk *div =3D clock->div; + int ret; + + ret =3D clk_prepare(spu); + if (ret) + return ret; + ret =3D clk_prepare(xck); + if (ret) + goto err_spu; + ret =3D clk_prepare(ick); + if (ret) + goto err_xck; + ret =3D clk_prepare(div); + if (ret) + goto err_ick; + + return 0; + +err_ick: + clk_unprepare(ick); +err_xck: + clk_unprepare(xck); +err_spu: + clk_unprepare(spu); + + return ret; +} + +static void fsi_clk_unprepare(struct fsi_priv *fsi) +{ + struct fsi_clk *clock =3D &fsi->clock; + struct clk *spu =3D fsi->master->clk_spu; + struct clk *xck =3D clock->xck; + struct clk *ick =3D clock->ick; + struct clk *div =3D clock->div; + + clk_unprepare(div); + clk_unprepare(ick); + clk_unprepare(xck); + clk_unprepare(spu); +} + static int fsi_clk_enable(struct device *dev, struct fsi_priv *fsi) { @@ -1580,7 +1628,7 @@ static int fsi_dai_startup(struct snd_pcm_substream *= substream, =20 fsi_clk_invalid(fsi); =20 - return 0; + return fsi_clk_prepare(fsi); } =20 static void fsi_dai_shutdown(struct snd_pcm_substream *substream, @@ -1588,6 +1636,7 @@ static void fsi_dai_shutdown(struct snd_pcm_substream= *substream, { struct fsi_priv *fsi =3D fsi_get_priv(substream); =20 + fsi_clk_unprepare(fsi); fsi_clk_invalid(fsi); } =20 --=20 2.43.0 From nobody Sat Jun 13 04:46:06 2026 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (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 3BEDF404BFE for ; Tue, 9 Jun 2026 11:39:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005191; cv=none; b=osOybvm+oAHyO1CQKrVPngLYcUNlaU3fTEC8n9Q7Ywh9h5B2ta6dxs4u2CEtarYTwn4HxuZhDvEcUbIOKXIqFx4AQzo2YMqFqQx6l3CKIRDOXifxdBfAaAehgrwtGk2kc3UY2YxDXs6k4q3zzUrmsw5MAlFE/P9nsIdOh7t7jso= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781005191; c=relaxed/simple; bh=nI5ECO865SLO/yR0Iz3efaPzhFXDP/Ze7Ooye8y662g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jvhzMhMNKfuwGXT+u9RwzAKZEPMQHw+XYQ7Pf0+mPDSgqMGxKamuRZt4Wnjd91Rjh05+JzaAnAObZMZE3pU8VqdeFGbWLwEwfYa4q/Ma7KRvz+7bkkiBVC7itSVHc5Mq/nitSU/0iezKazv4VgYpB0gtaREr1y/yXXj0t4eqQpI= 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=SisWZCGk; arc=none smtp.client-ip=209.85.214.170 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="SisWZCGk" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2c0c2c7d45eso48493065ad.1 for ; Tue, 09 Jun 2026 04:39:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781005190; x=1781609990; 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=JZ/oe53fAvMnFVe28kFJYn/lJeWITuitrB7buiTdOTQ=; b=SisWZCGkRO0EKL/FIpqjtsu4ou3Gtsa3Sy0EYkuHKZtCHWqhNGFG0Vu5V+dVzrOHwI O5rSH2iuKw65eZMSg+uZTBWObfUR6AQY45gLLhjU2rrijKzKHtAxitnVWokz1gqP40Sw 9mC32DR/GNiHlNyQePfE+TXCmXuNIwI7UpZbUn3kbRePtePAr0J+pe4LnhmJ4Vs9hmBO WRSHrYwfyf8Meb3V0tB3FOvEaAh+M65Zd5LjDpHLphHRM0EmHDfJc0D+BbHTLGcoA7FR Te8990Z/LX5Lj5whR7nxM2CjETUuTtqEuVsAnFAwx6F1C1GI0F3/OB8Z9gLw/vurFwoL i7sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781005190; x=1781609990; 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=JZ/oe53fAvMnFVe28kFJYn/lJeWITuitrB7buiTdOTQ=; b=P+Qpsp7kDYcps2QvvnzCDCWT+7gcf5LCoivm+3kNdqVDk2B+5ULccQyo8TUwil+jgI JZZ3SN4F42v5SLf3EVDG4MDWWgdRIi7qRkXSqv2uoyno/DkGJ8chVWAgshUKhIequBlE 8O76Ja0oBkFc+U0Ows9ddpVasns0XorcwaQ4R5Kag9KgxElkAzA4WKOOjmFWVgiaoCH2 xH9XYiO9p4kirCBozCJH5UwoIBoVRdZMf6yRZ9Y27K4tfn69kQTt4RodNiNZ6MOCKnVB kLEdLVXuqkSwzZPobHnMRiPvzf7uqIrnL/ZQVNwfvkl7vKolAGPDKPRxIrvuDTFvCNuu 78fw== X-Forwarded-Encrypted: i=1; AFNElJ8ryZdGnl1h99ySBBmcNk4WwfgmxixjAw4HbhlRPxAL1Lzl8dXj9NcC/O52yqvYyiRBpnUUXf3op8QCaNI=@vger.kernel.org X-Gm-Message-State: AOJu0YxNcOvkg8m547wBWPtmgoSSvihYm9GtLlLIZVMROmZPx6/VG/dh wgL31s33qDsf/xd03FUMfzwvxlW1M8/lVIjeIehoLs4CTIxIfki4v6Nn X-Gm-Gg: Acq92OGFpYmmzwoIr2/phqf/0CUGOyaOwsxgz094dpS2A3N+e6yCTiPYNJ8IGCxmIjS r6h2NDrEeH8EzYsd8HK+JZz/jD5cAKV3/S2ncXkuIqgpL6nHsgEvPISjUm5bj57nonyajLPSfYT 7WeAOQjyk30T8vYzzTD7gtGSyiK235yxVwsdVDw/YYAyC3Oi0wi+kRT9mMf436z8z7OBS78/gmA mjwp7P9h52lEgJYK+qQTB/ZvxPtQ4iBR+JPLteb7K+W8TQWqZFWgJIRHEPJHtqHAtyAQIQqgA7r Kn4D9hTdv67VxgUVwx631i8RVLc+jBOrg5gyaypac7KykjPikDLXmDU45X1TI9ZtQUkJGl+C9CZ nARPrVYbl8hHEqc05/sF2j3sXob7Wmaj8Xz7yep0KrdHXXM2huDyKjRlUyFae6T+YSmdryMj42w QtqsS+vM5NJT4XrRqDq9TI4dO5c7EahGsg0S7T7u82sodwgMunCkgq4mTQz1+3OZfmv0zP X-Received: by 2002:a17:903:3885:b0:2c2:245a:3368 with SMTP id d9443c01a7336-2c2245a3649mr194770575ad.14.1781005189646; Tue, 09 Jun 2026 04:39:49 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f70660sm210755635ad.11.2026.06.09.04.39.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 04:39:49 -0700 (PDT) From: phucduc.bui@gmail.com To: Kuninori Morimoto , Mark Brown , Geert Uytterhoeven Cc: Liam Girdwood , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Jaroslav Kysela , Takashi Iwai , linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v6 11/11] ASoC: renesas: fsi: Add SPU clock control in hw_startup/shutdown Date: Tue, 9 Jun 2026 18:38:36 +0700 Message-ID: <20260609113836.45079-12-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260609113836.45079-1-phucduc.bui@gmail.com> References: <20260609113836.45079-1-phucduc.bui@gmail.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: bui duc phuc Enable and disable the SPU clock in fsi_hw_startup() and fsi_hw_shutdown() to ensure the clock is active while the driver accesses hardware registers. Acked-by: Kuninori Morimoto Suggested-by: Kuninori Morimoto Signed-off-by: bui duc phuc --- Changes in v6: - Add Acked-by tag from Kuninori Morimoto. - Minor refactor in clock enable/disable paths. Changes in v5: - Drop spu_count and rely on the clk core for clock reference counting. sound/soc/renesas/fsi.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index e26f39dfe059..b72396b5de7d 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -1560,6 +1560,11 @@ static int fsi_hw_startup(struct fsi_priv *fsi, struct device *dev) { u32 data =3D 0; + int ret; + /* enable spu bus bridge clock */ + ret =3D clk_enable(fsi->master->clk_spu); + if (ret) + return ret; =20 /* clock setting */ if (fsi_is_clk_master(fsi)) @@ -1605,8 +1610,13 @@ static int fsi_hw_startup(struct fsi_priv *fsi, fsi_fifo_init(fsi, io, dev); =20 /* start master clock */ - if (fsi_is_clk_master(fsi)) - return fsi_clk_enable(dev, fsi); + if (fsi_is_clk_master(fsi)) { + ret =3D fsi_clk_enable(dev, fsi); + if (ret) { + clk_disable(fsi->master->clk_spu); + return ret; + } + } =20 return 0; } @@ -1614,9 +1624,15 @@ static int fsi_hw_startup(struct fsi_priv *fsi, static int fsi_hw_shutdown(struct fsi_priv *fsi, struct device *dev) { + int ret; /* stop master clock */ - if (fsi_is_clk_master(fsi)) - return fsi_clk_disable(dev, fsi); + if (fsi_is_clk_master(fsi)) { + ret =3D fsi_clk_disable(dev, fsi); + if (ret) + return ret; + } + /* stop spu bus bridge clock */ + clk_disable(fsi->master->clk_spu); =20 return 0; } --=20 2.43.0