From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick DELAUNAY Date: Tue, 4 May 2021 16:01:23 +0200 Subject: [PATCH] reset: stm32: Fix bank and offset computation In-Reply-To: <20210428114245.21229-1-patrice.chotard@foss.st.com> References: <20210428114245.21229-1-patrice.chotard@foss.st.com> Message-ID: <498b4e80-e32e-a6dc-be84-e8054941b98d@foss.st.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Patrice, On 4/28/21 1:42 PM, Patrice Chotard wrote: > BITS_PER_LONG is used to represent register's size which is 32. > But when compiled on arch64, BITS_PER_LONG is then equal to 64. > > Fix bank and offset computation to make it work on arch32 and > arch64 and ensure that register's size is always equal to 32. > > Signed-off-by: Patrice Chotard > Signed-off-by: Pankaj Dev > --- > > drivers/reset/stm32-reset.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/reset/stm32-reset.c b/drivers/reset/stm32-reset.c > index daa2e47ebb..bbc6b135a9 100644 > --- a/drivers/reset/stm32-reset.c > +++ b/drivers/reset/stm32-reset.c > @@ -40,8 +40,8 @@ static int stm32_reset_free(struct reset_ctl *reset_ctl) > static int stm32_reset_assert(struct reset_ctl *reset_ctl) > { > struct stm32_reset_priv *priv = dev_get_priv(reset_ctl->dev); > - int bank = (reset_ctl->id / BITS_PER_LONG) * 4; > - int offset = reset_ctl->id % BITS_PER_LONG; > + int bank = (reset_ctl->id / (sizeof(u32) * BITS_PER_BYTE)) * 4; > + int offset = reset_ctl->id % (sizeof(u32) * BITS_PER_BYTE); > > dev_dbg(reset_ctl->dev, "reset id = %ld bank = %d offset = %d)\n", > reset_ctl->id, bank, offset); > @@ -61,8 +61,8 @@ static int stm32_reset_assert(struct reset_ctl *reset_ctl) > static int stm32_reset_deassert(struct reset_ctl *reset_ctl) > { > struct stm32_reset_priv *priv = dev_get_priv(reset_ctl->dev); > - int bank = (reset_ctl->id / BITS_PER_LONG) * 4; > - int offset = reset_ctl->id % BITS_PER_LONG; > + int bank = (reset_ctl->id / (sizeof(u32) * BITS_PER_BYTE)) * 4; > + int offset = reset_ctl->id % (sizeof(u32) * BITS_PER_BYTE); > > dev_dbg(reset_ctl->dev, "reset id = %ld bank = %d offset = %d)\n", > reset_ctl->id, bank, offset); Reviewed-by: Patrick Delaunay Thanks Patrick