[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <c0bc8db56b0ddad197b4e5ee7cd720be.sboyd@kernel.org>
Date: Fri, 27 Oct 2023 19:13:16 -0700
From: Stephen Boyd <sboyd@...nel.org>
To: Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org,
patches@...ts.linux.dev, Boqun Feng <boqun.feng@...il.com>
Subject: Re: [PATCH] clk: Fix clk gate kunit test on big-endian CPUs
Quoting Stephen Boyd (2023-10-27 15:58:21)
> The clk gate kunit test checks that the implementation of the basic clk
> gate reads and writes the proper bits in an MMIO register. The
> implementation of the basic clk gate type uses writel() and readl()
> which operate on little-endian registers. This test fails on big-endian
> CPUs because the clk gate implementation writes to 'fake_reg' with
> writel(), which converts the value to be written to little-endian before
> storing the value in the fake register. When the test checks the bits in
> the fake register on a big-endian machine it falsely assumes the format
> of the register is also big-endian, when it is really always
> little-endian. Suffice to say things don't work very well.
>
> Mark 'fake_reg' as __le32 and push through endian accessor fixes
> wherever the value is inspected to make this test endian agnostic.
> There's a CLK_GATE_BIG_ENDIAN flag for big-endian MMIO devices, which
> this test isn't using. A follow-up patch will test with and without that
> flag.
>
> Reported-by: Boqun Feng <boqun.feng@...il.com>
> Closes: https://lore.kernel.org/r/ZTLH5o0GlFBYsAHq@boqun-archlinux
> Tested-by: Boqun Feng <boqun.feng@...il.com>
> Signed-off-by: Stephen Boyd <sboyd@...nel.org>
> ---
Applied to clk-next
Powered by blists - more mailing lists