[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <702a9145-5bc1-c765-a1fa-278702741637@linux.intel.com>
Date: Thu, 2 May 2024 19:08:21 +0300 (EEST)
From: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
cc: Parker Newman <pnewman@...necttech.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-serial <linux-serial@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jirislaby@...nel.org>
Subject: Re: [PATCH v1 11/13] serial: 8250_exar: Use BIT() in
exar_ee_read()
On Thu, 2 May 2024, Andy Shevchenko wrote:
> Use BIT() in exar_ee_read() like other functions do.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
> ---
> drivers/tty/serial/8250/8250_exar.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
> index 306bc6d7c141..bf3730f4231d 100644
> --- a/drivers/tty/serial/8250/8250_exar.c
> +++ b/drivers/tty/serial/8250/8250_exar.c
> @@ -340,13 +340,13 @@ static u16 exar_ee_read(struct exar8250 *priv, u8 ee_addr)
> exar_ee_write_bit(priv, 0);
>
> // Send address to read from
> - for (i = 1 << (UART_EXAR_REGB_EE_ADDR_SIZE - 1); i; i >>= 1)
> - exar_ee_write_bit(priv, (ee_addr & i));
> + for (i = UART_EXAR_REGB_EE_ADDR_SIZE - 1; i >= 0; i--)
> + exar_ee_write_bit(priv, ee_addr & BIT(i));
>
> // Read data 1 bit at a time
> for (i = 0; i <= UART_EXAR_REGB_EE_DATA_SIZE; i++) {
> - data <<= 1;
> - data |= exar_ee_read_bit(priv);
> + if (exar_ee_read_bit(priv))
> + data |= BIT(i);
Does this end up reversing the order of bits? In the original, data was
left shifted which moved the existing bits and added the lsb but the
replacement adds highest bit on each iteration?
--
i.
Powered by blists - more mailing lists