All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port
@ 2023-08-17 21:13 Justin Chen
  2023-08-18 10:59 ` Andy Shevchenko
  2023-08-18 19:37 ` Greg Kroah-Hartman
  0 siblings, 2 replies; 5+ messages in thread
From: Justin Chen @ 2023-08-17 21:13 UTC (permalink / raw)
  To: linux-serial
  Cc: Justin Chen, Al Cooper, Broadcom internal kernel review list,
	Greg Kroah-Hartman, Jiri Slaby, Ilpo Järvinen,
	Andy Shevchenko, Florian Fainelli, John Ogness, Jiaqing Zhao,
	open list:TTY LAYER

[-- Attachment #1: Type: text/plain, Size: 2682 bytes --]

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


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4206 bytes --]

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port
  2023-08-17 21:13 [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port Justin Chen
@ 2023-08-18 10:59 ` Andy Shevchenko
  2023-08-18 19:22   ` Justin Chen
  2023-08-18 19:37 ` Greg Kroah-Hartman
  1 sibling, 1 reply; 5+ messages in thread
From: Andy Shevchenko @ 2023-08-18 10:59 UTC (permalink / raw)
  To: Justin Chen
  Cc: linux-serial, Al Cooper, Broadcom internal kernel review list,
	Greg Kroah-Hartman, Jiri Slaby, Ilpo Järvinen,
	Florian Fainelli, John Ogness, Jiaqing Zhao, open list:TTY LAYER

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.

...

> +		.flags		= UART_CAP_FIFO | UART_CAP_AFE

Leave trailing comma

...

> +/* Broadcom BCM7271 UART */
> +#define PORT_BCM7271    76

13 is free why not using it?


-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port
  2023-08-18 10:59 ` Andy Shevchenko
@ 2023-08-18 19:22   ` Justin Chen
  2023-08-21  8:45     ` Andy Shevchenko
  0 siblings, 1 reply; 5+ messages in thread
From: Justin Chen @ 2023-08-18 19:22 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: linux-serial, Al Cooper, Broadcom internal kernel review list,
	Greg Kroah-Hartman, Jiri Slaby, Ilpo Järvinen,
	Florian Fainelli, John Ogness, Jiaqing Zhao, open list:TTY LAYER

[-- Attachment #1: Type: text/plain, Size: 900 bytes --]



On 8/18/23 3:59 AM, Andy Shevchenko wrote:
> 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.
> 
> ...
> 
>> +		.flags		= UART_CAP_FIFO | UART_CAP_AFE
> 
> Leave trailing comma
> 

Acked

> ...
> 
>> +/* 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.

Thanks,
Justin



[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4206 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port
  2023-08-17 21:13 [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port Justin Chen
  2023-08-18 10:59 ` Andy Shevchenko
@ 2023-08-18 19:37 ` Greg Kroah-Hartman
  1 sibling, 0 replies; 5+ messages in thread
From: Greg Kroah-Hartman @ 2023-08-18 19:37 UTC (permalink / raw)
  To: Justin Chen
  Cc: linux-serial, Al Cooper, Broadcom internal kernel review list,
	Jiri Slaby, Ilpo Järvinen, Andy Shevchenko,
	Florian Fainelli, John Ogness, Jiaqing Zhao, open list:TTY LAYER

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port
  2023-08-18 19:22   ` Justin Chen
@ 2023-08-21  8:45     ` Andy Shevchenko
  0 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2023-08-21  8:45 UTC (permalink / raw)
  To: Justin Chen
  Cc: linux-serial, Al Cooper, Broadcom internal kernel review list,
	Greg Kroah-Hartman, Jiri Slaby, Ilpo Järvinen,
	Florian Fainelli, John Ogness, Jiaqing Zhao, open list:TTY LAYER

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.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-08-21  8:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-17 21:13 [PATCH v2] serial: 8250_bcm7271: improve bcm7271 8250 port Justin Chen
2023-08-18 10:59 ` Andy Shevchenko
2023-08-18 19:22   ` Justin Chen
2023-08-21  8:45     ` Andy Shevchenko
2023-08-18 19:37 ` Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.