2020-08-11 07:45:09

by Paras Sharma

[permalink] [raw]
Subject: [PATCH V2] serial: qcom_geni_serial: To correct QUP Version detection logic

The current implementation reduces the sampling rate by half
if qup HW version greater is than 2.5 by checking if the geni
SE major version is greater than 2 and geni SE minor version
is greater than 5.

This implementation fails when the version is 3 or greater.

Hence by adding the another check for geni SE major version,
this problem can be solved.

Signed-off-by: Paras Sharma <[email protected]>
---
drivers/tty/serial/qcom_geni_serial.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 3aa29d2..a9f92d8 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -995,7 +995,8 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport,
sampling_rate = UART_OVERSAMPLING;
/* Sampling rate is halved for IP versions >= 2.5 */
ver = geni_se_get_qup_hw_version(&port->se);
- if (GENI_SE_VERSION_MAJOR(ver) >= 2 && GENI_SE_VERSION_MINOR(ver) >= 5)
+ if ((GENI_SE_VERSION_MAJOR(ver) >= 2 && GENI_SE_VERSION_MINOR(ver) >= 5)
+ || GENI_SE_VERSION_MAJOR(ver) >= 3)
sampling_rate /= 2;

clk_rate = get_clk_div_rate(baud, sampling_rate, &clk_div);
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


2020-08-11 08:24:30

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH V2] serial: qcom_geni_serial: To correct QUP Version detection logic

On Tue, Aug 11, 2020 at 01:13:14PM +0530, Paras Sharma wrote:
> The current implementation reduces the sampling rate by half
> if qup HW version greater is than 2.5 by checking if the geni
> SE major version is greater than 2 and geni SE minor version
> is greater than 5.
>
> This implementation fails when the version is 3 or greater.
>
> Hence by adding the another check for geni SE major version,
> this problem can be solved.
>
> Signed-off-by: Paras Sharma <[email protected]>
> ---
> drivers/tty/serial/qcom_geni_serial.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)

Should this go to stable kernels? If so, how far back? What git commit
id is this patch fixing? And if so, why not put a Fixes: tag on this as
well?

thanks,

greg k-h

2020-08-11 10:51:34

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH V2] serial: qcom_geni_serial: To correct QUP Version detection logic


Hi,

Paras Sharma <[email protected]> writes:
> The current implementation reduces the sampling rate by half
> if qup HW version greater is than 2.5 by checking if the geni
^^^^^^^^^^^^^^^
is greater than

could, possibly, be fixed while applying.

> SE major version is greater than 2 and geni SE minor version
> is greater than 5.
>
> This implementation fails when the version is 3 or greater.
>
> Hence by adding the another check for geni SE major version,
> this problem can be solved.
>
> Signed-off-by: Paras Sharma <[email protected]>
> ---
> drivers/tty/serial/qcom_geni_serial.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
> index 3aa29d2..a9f92d8 100644
> --- a/drivers/tty/serial/qcom_geni_serial.c
> +++ b/drivers/tty/serial/qcom_geni_serial.c
> @@ -995,7 +995,8 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport,
> sampling_rate = UART_OVERSAMPLING;
> /* Sampling rate is halved for IP versions >= 2.5 */
> ver = geni_se_get_qup_hw_version(&port->se);
> - if (GENI_SE_VERSION_MAJOR(ver) >= 2 && GENI_SE_VERSION_MINOR(ver) >= 5)
> + if ((GENI_SE_VERSION_MAJOR(ver) >= 2 && GENI_SE_VERSION_MINOR(ver) >= 5)
> + || GENI_SE_VERSION_MAJOR(ver) >= 3)

it looks like having a single GENI_SE_VERSION() that returns MAJOR and
MINOR without STEP would look better here. Then you could use:

if (GENI_SE_VERSION(ver) >= 0x20050000)

and it would work for any future version. Not a strong opinion, though

--
balbi


Attachments:
signature.asc (847.00 B)

2020-08-28 08:19:36

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH V2] serial: qcom_geni_serial: To correct QUP Version detection logic

On Tue, Aug 11, 2020 at 10:23:30AM +0200, Greg Kroah-Hartman wrote:
> On Tue, Aug 11, 2020 at 01:13:14PM +0530, Paras Sharma wrote:
> > The current implementation reduces the sampling rate by half
> > if qup HW version greater is than 2.5 by checking if the geni
> > SE major version is greater than 2 and geni SE minor version
> > is greater than 5.
> >
> > This implementation fails when the version is 3 or greater.
> >
> > Hence by adding the another check for geni SE major version,
> > this problem can be solved.
> >
> > Signed-off-by: Paras Sharma <[email protected]>
> > ---
> > drivers/tty/serial/qcom_geni_serial.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
>
> Should this go to stable kernels? If so, how far back? What git commit
> id is this patch fixing? And if so, why not put a Fixes: tag on this as
> well?

Dropped from my review queue due to lack of response, please fix up and
resend when you wish to have it reviewed again...

greg k-h