serial: 8250_hub6: add hub6_match_port()

Move the entire hub6 related match port check into its own function in
8250_hub6.c and add a stub for the case when hub6 code is not even built
into kernel.

Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Link: https://patch.msgid.link/20260521-tty-upio-v3-1-bf74567994a0@dimonoff.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Hugo Villeneuve 2026-05-21 14:16:47 -04:00 committed by Greg Kroah-Hartman
parent 3d71f8d7ee
commit 3d406299d8
3 changed files with 15 additions and 2 deletions

View File

@ -334,6 +334,13 @@ int fintek_8250_probe(struct uart_8250_port *uart);
static inline int fintek_8250_probe(struct uart_8250_port *uart) { return 0; }
#endif
#ifdef CONFIG_SERIAL_8250_HUB6
bool hub6_match_port(const struct uart_port *port1, const struct uart_port *port2);
#else
static inline bool hub6_match_port(const struct uart_port *port1, const struct uart_port *port2)
{ return false; }
#endif
#ifdef CONFIG_ARCH_OMAP1
#include <linux/soc/ti/omap1-soc.h>
static inline int is_omap1_8250(struct uart_8250_port *pt)

View File

@ -41,6 +41,12 @@ static struct platform_device hub6_device = {
},
};
bool hub6_match_port(const struct uart_port *port1, const struct uart_port *port2)
{
return port1->iobase == port2->iobase && port1->hub6 == port2->hub6;
}
EXPORT_SYMBOL_GPL(hub6_match_port);
static int __init hub6_init(void)
{
return platform_device_register(&hub6_device);

View File

@ -33,6 +33,7 @@
#include <linux/uaccess.h>
#include "serial_base.h"
#include "8250/8250.h" /* For hub6_match_port() */
/*
* This is used to lock changes in serial line configuration.
@ -3213,8 +3214,7 @@ bool uart_match_port(const struct uart_port *port1,
case UPIO_PORT:
return port1->iobase == port2->iobase;
case UPIO_HUB6:
return port1->iobase == port2->iobase &&
port1->hub6 == port2->hub6;
return hub6_match_port(port1, port2);
case UPIO_MEM:
case UPIO_MEM16:
case UPIO_MEM32: