From: Greg KH <gregkh@linuxfoundation.org>
To: Hugo Villeneuve <hugo@hugovil.com>
Cc: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com,
isaac.true@canonical.com, jesse.sung@canonical.com,
l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com,
linux-serial@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
"Hugo Villeneuve" <hvilleneuve@dimonoff.com>,
stable@vger.kernel.org,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Lech Perczak" <lech.perczak@camlingroup.com>
Subject: Re: [PATCH v9 01/10] serial: sc16is7xx: fix broken port 0 uart init
Date: Mon, 31 Jul 2023 17:52:26 +0200 [thread overview]
Message-ID: <2023073148-marshy-extenuate-2d45@gregkh> (raw)
In-Reply-To: <20230725142343.1724130-2-hugo@hugovil.com>
On Tue, Jul 25, 2023 at 10:23:33AM -0400, Hugo Villeneuve wrote:
> From: Hugo Villeneuve <hvilleneuve@dimonoff.com>
>
> The sc16is7xx_config_rs485() function is called only for the second
> port (index 1, channel B), causing initialization problems for the
> first port.
>
> For the sc16is7xx driver, port->membase and port->mapbase are not set,
> and their default values are 0. And we set port->iobase to the device
> index. This means that when the first device is registered using the
> uart_add_one_port() function, the following values will be in the port
> structure:
> port->membase = 0
> port->mapbase = 0
> port->iobase = 0
>
> Therefore, the function uart_configure_port() in serial_core.c will
> exit early because of the following check:
> /*
> * If there isn't a port here, don't do anything further.
> */
> if (!port->iobase && !port->mapbase && !port->membase)
> return;
>
> Typically, I2C and SPI drivers do not set port->membase and
> port->mapbase.
>
> The max310x driver sets port->membase to ~0 (all ones). By
> implementing the same change in this driver, uart_configure_port() is
> now correctly executed for all ports.
>
> Fixes: dfeae619d781 ("serial: sc16is7xx")
That commit is in a very old 3.x release.
> Cc: <stable@vger.kernel.org> # 6.1.x
But you say this should only go to 6.1.y? Why? What is wrong with the
older kernels?
> Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
> Reviewed-by: Lech Perczak <lech.perczak@camlingroup.com>
> Tested-by: Lech Perczak <lech.perczak@camlingroup.com>
> ---
> drivers/tty/serial/sc16is7xx.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 2e7e7c409cf2..8ae2afc76a9b 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1436,6 +1436,7 @@ static int sc16is7xx_probe(struct device *dev,
> s->p[i].port.fifosize = SC16IS7XX_FIFO_SIZE;
> s->p[i].port.flags = UPF_FIXED_TYPE | UPF_LOW_LATENCY;
> s->p[i].port.iobase = i;
> + s->p[i].port.membase = (void __iomem *)~0;
That's a magic value, some comment should be added here to explain why
setting all bits is ok. Why does this work exactly? You only say that
the max310x driver does this, but not why it does this at all.
confused,
greg k-h
next prev parent reply other threads:[~2023-07-31 15:52 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-25 14:23 [PATCH v9 00/10] serial: sc16is7xx: fix GPIO regression and rs485 improvements Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 01/10] serial: sc16is7xx: fix broken port 0 uart init Hugo Villeneuve
2023-07-31 15:52 ` Greg KH [this message]
2023-08-01 17:16 ` Hugo Villeneuve
2023-08-03 7:54 ` Greg KH
2023-08-03 13:04 ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 02/10] serial: sc16is7xx: mark IOCONTROL register as volatile Hugo Villeneuve
2023-07-31 15:50 ` Greg KH
2023-07-31 16:22 ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 03/10] serial: sc16is7xx: remove obsolete out_thread label Hugo Villeneuve
2023-07-31 15:53 ` Greg KH
2023-08-01 17:29 ` Hugo Villeneuve
2023-08-03 7:55 ` Greg KH
2023-07-25 14:23 ` [PATCH v9 04/10] serial: sc16is7xx: refactor GPIO controller registration Hugo Villeneuve
2023-07-31 15:55 ` Greg KH
2023-08-03 16:14 ` Hugo Villeneuve
2023-08-04 13:14 ` Greg KH
2023-08-04 14:15 ` Hugo Villeneuve
2023-08-04 15:09 ` Greg KH
2023-08-07 14:57 ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 05/10] dt-bindings: sc16is7xx: Add property to change GPIO function Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 06/10] serial: sc16is7xx: fix regression with GPIO configuration Hugo Villeneuve
2023-07-31 15:58 ` Greg KH
2023-08-03 14:18 ` Hugo Villeneuve
2023-08-03 21:04 ` Andy Shevchenko
2023-08-04 4:53 ` Greg KH
2023-07-25 14:23 ` [PATCH v9 07/10] serial: sc16is7xx: fix bug when first setting GPIO direction Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 08/10] serial: sc16is7xx: add call to get rs485 DT flags and properties Hugo Villeneuve
2023-07-31 15:59 ` Greg KH
2023-08-03 14:38 ` Hugo Villeneuve
2023-08-04 13:14 ` Greg KH
2023-07-25 14:23 ` [PATCH v9 09/10] serial: sc16is7xx: add post reset delay Hugo Villeneuve
2023-07-31 15:57 ` Greg KH
2023-07-31 17:00 ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 10/10] serial: sc16is7xx: improve comments about variants Hugo Villeneuve
2023-07-31 15:56 ` Greg KH
2023-08-03 13:28 ` Hugo Villeneuve
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2023073148-marshy-extenuate-2d45@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=hugo@hugovil.com \
--cc=hvilleneuve@dimonoff.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=isaac.true@canonical.com \
--cc=jesse.sung@canonical.com \
--cc=jirislaby@kernel.org \
--cc=jringle@gridpoint.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=l.perczak@camlintechnologies.com \
--cc=lech.perczak@camlingroup.com \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tomasz.mon@camlingroup.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).