]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: renesas: rzg2l: Fix reset status function
authorBiju Das <biju.das.jz@bp.renesas.com>
Tue, 31 May 2022 07:16:57 +0000 (08:16 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 7 Jun 2022 07:20:35 +0000 (09:20 +0200)
As per RZ/G2L HW(Rev.1.10) manual, reset monitor register value 0 means
reset signal is not applied (deassert state) and 1 means reset signal
is applied (assert state).

reset_control_status() expects a positive value if the reset line is
asserted. But rzg2l_cpg_status function returns zero for asserted
state.

This patch fixes the issue by adding double inverted logic, so that
reset_control_status returns a positive value if the reset line is
asserted.

Fixes: ef3c613ccd68 ("clk: renesas: Add CPG core wrapper for RZ/G2L SoC")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://lore.kernel.org/r/20220531071657.104121-1-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
drivers/clk/renesas/rzg2l-cpg.c

index e2999ab2b53c4dfb8d38da141aa09af2a99b08bc..3ff6ecd617565db891b51827e8ff9786be4e169f 100644 (file)
@@ -1180,7 +1180,7 @@ static int rzg2l_cpg_status(struct reset_controller_dev *rcdev,
        s8 monbit = info->resets[id].monbit;
 
        if (info->has_clk_mon_regs) {
-               return !(readl(priv->base + CLK_MRST_R(reg)) & bitmask);
+               return !!(readl(priv->base + CLK_MRST_R(reg)) & bitmask);
        } else if (monbit >= 0) {
                u32 monbitmask = BIT(monbit);