Message ID | 1692306801-13191-1-git-send-email-justin.chen@broadcom.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2] serial: 8250_bcm7271: improve bcm7271 8250 port | expand |
On Thu, Aug 17, 2023 at 02:13:18PM -0700, Justin Chen wrote: > The 8250 BCM7271 UART is not a direct match to PORT_16550A and other > generic ports do not match its hardware capabilities. PORT_ALTR matches > the rx trigger levels, but its vendor configurations are not compatible. > Unfortunately this means we need to create another port to fully capture > the hardware capabilities of the BCM7271 UART. > > To alleviate some latency pressures, we default the rx trigger level to 8. > > Signed-off-by: Justin Chen <justin.chen@broadcom.com> > Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> > Acked-by: Doug Berger <opendmb@gmail.com> > --- > drivers/tty/serial/8250/8250_bcm7271.c | 4 +--- > drivers/tty/serial/8250/8250_port.c | 8 ++++++++ > include/uapi/linux/serial_core.h | 3 +++ > 3 files changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c > index d4b05d7ad9e8..aa5aff046756 100644 > --- a/drivers/tty/serial/8250/8250_bcm7271.c > +++ b/drivers/tty/serial/8250/8250_bcm7271.c > @@ -1042,7 +1042,7 @@ static int brcmuart_probe(struct platform_device *pdev) > dev_dbg(dev, "DMA is %senabled\n", priv->dma_enabled ? "" : "not "); > > memset(&up, 0, sizeof(up)); > - up.port.type = PORT_16550A; > + up.port.type = PORT_BCM7271; > up.port.uartclk = clk_rate; > up.port.dev = dev; > up.port.mapbase = mapbase; > @@ -1056,8 +1056,6 @@ static int brcmuart_probe(struct platform_device *pdev) > | UPF_FIXED_PORT | UPF_FIXED_TYPE; > up.port.dev = dev; > up.port.private_data = priv; > - up.capabilities = UART_CAP_FIFO | UART_CAP_AFE; > - up.port.fifosize = 32; > > /* Check for a fixed line number */ > ret = of_alias_get_id(np, "serial"); > diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c > index 16aeb1420137..9f05745e221b 100644 > --- a/drivers/tty/serial/8250/8250_port.c > +++ b/drivers/tty/serial/8250/8250_port.c > @@ -322,6 +322,14 @@ static const struct serial8250_config uart_config[] = { > .rxtrig_bytes = {2, 66, 130, 194}, > .flags = UART_CAP_FIFO, > }, > + [PORT_BCM7271] = { > + .name = "Broadcom BCM7271 UART", > + .fifo_size = 32, > + .tx_loadsz = 32, > + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_01, > + .rxtrig_bytes = {1, 8, 16, 30}, > + .flags = UART_CAP_FIFO | UART_CAP_AFE > + }, > }; > > /* Uart divisor latch read */ > diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h > index 281fa286555c..9646629496ab 100644 > --- a/include/uapi/linux/serial_core.h > +++ b/include/uapi/linux/serial_core.h > @@ -144,6 +144,9 @@ > /* Blackfin bf5xx */ > #define PORT_BFIN 75 > > +/* Broadcom BCM7271 UART */ > +#define PORT_BCM7271 76 > + > /* Broadcom SB1250, etc. SOC */ > #define PORT_SB1250_DUART 77 > > -- > 2.7.4 > Hi, This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him a patch that has triggered this response. He used to manually respond to these common problems, but in order to save his sanity (he kept writing the same thing over and over, yet to different people), I was created. Hopefully you will not take offence and will fix the problem in your patch and resubmit it so that it can be accepted into the Linux kernel tree. You are receiving this message because of the following common error(s) as indicated below: - This looks like a new version of a previously submitted patch, but you did not list below the --- line any changes from the previous version. Please read the section entitled "The canonical patch format" in the kernel file, Documentation/process/submitting-patches.rst for what needs to be done here to properly describe this. If you wish to discuss this problem further, or you have questions about how to resolve this issue, please feel free to respond to this email and Greg will reply once he has dug out from the pending patches received from other developers. thanks, greg k-h's patch email bot
On Fri, Aug 18, 2023 at 12:22:25PM -0700, Justin Chen wrote: > On 8/18/23 3:59 AM, Andy Shevchenko wrote: > > On Thu, Aug 17, 2023 at 02:13:18PM -0700, Justin Chen wrote: ... > > > +/* Broadcom BCM7271 UART */ > > > +#define PORT_BCM7271 76 > > > > 13 is free why not using it? > > I was looking for a number close to another Broadcom port. I was > prioritizing locality. But I have no issues with 13, I will change in v3. Please, don't. I realized that they are defined in different file. So, the first gap is 43. but I would like to compress the list first.
diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c index d4b05d7ad9e8..aa5aff046756 100644 --- a/drivers/tty/serial/8250/8250_bcm7271.c +++ b/drivers/tty/serial/8250/8250_bcm7271.c @@ -1042,7 +1042,7 @@ static int brcmuart_probe(struct platform_device *pdev) dev_dbg(dev, "DMA is %senabled\n", priv->dma_enabled ? "" : "not "); memset(&up, 0, sizeof(up)); - up.port.type = PORT_16550A; + up.port.type = PORT_BCM7271; up.port.uartclk = clk_rate; up.port.dev = dev; up.port.mapbase = mapbase; @@ -1056,8 +1056,6 @@ static int brcmuart_probe(struct platform_device *pdev) | UPF_FIXED_PORT | UPF_FIXED_TYPE; up.port.dev = dev; up.port.private_data = priv; - up.capabilities = UART_CAP_FIFO | UART_CAP_AFE; - up.port.fifosize = 32; /* Check for a fixed line number */ ret = of_alias_get_id(np, "serial"); diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 16aeb1420137..9f05745e221b 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -322,6 +322,14 @@ static const struct serial8250_config uart_config[] = { .rxtrig_bytes = {2, 66, 130, 194}, .flags = UART_CAP_FIFO, }, + [PORT_BCM7271] = { + .name = "Broadcom BCM7271 UART", + .fifo_size = 32, + .tx_loadsz = 32, + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_01, + .rxtrig_bytes = {1, 8, 16, 30}, + .flags = UART_CAP_FIFO | UART_CAP_AFE + }, }; /* Uart divisor latch read */ diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h index 281fa286555c..9646629496ab 100644 --- a/include/uapi/linux/serial_core.h +++ b/include/uapi/linux/serial_core.h @@ -144,6 +144,9 @@ /* Blackfin bf5xx */ #define PORT_BFIN 75 +/* Broadcom BCM7271 UART */ +#define PORT_BCM7271 76 + /* Broadcom SB1250, etc. SOC */ #define PORT_SB1250_DUART 77