The branch main has been updated by andrew:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=a931b85a0966a6efd6b6105b3e4176d2c98340de

commit a931b85a0966a6efd6b6105b3e4176d2c98340de
Author:     Andrew Turner <[email protected]>
AuthorDate: 2024-03-14 16:43:28 +0000
Commit:     Andrew Turner <[email protected]>
CommitDate: 2024-03-18 16:20:52 +0000

    uart: Add uart_cpu_acpi_setup to setup the uart
    
    In preperation for adding debug port support add a generic function
    to setup the uart from ACPI tables.
    
    Reviewed by:    imp
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D44358
---
 sys/dev/uart/uart_cpu_acpi.c  | 16 +++++++++++-----
 sys/dev/uart/uart_cpu_acpi.h  |  4 ++--
 sys/dev/uart/uart_cpu_arm64.c |  2 +-
 sys/dev/uart/uart_cpu_x86.c   |  2 +-
 4 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/sys/dev/uart/uart_cpu_acpi.c b/sys/dev/uart/uart_cpu_acpi.c
index 09f69e951e81..9c9ffc1e3194 100644
--- a/sys/dev/uart/uart_cpu_acpi.c
+++ b/sys/dev/uart/uart_cpu_acpi.c
@@ -138,7 +138,7 @@ uart_cpu_acpi_init_devinfo(struct uart_devinfo *di, struct 
uart_class *class,
        return (0);
 }
 
-int
+static int
 uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di)
 {
        vm_paddr_t spcr_physaddr;
@@ -147,10 +147,6 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di)
        struct uart_class *class;
        int error = ENXIO;
 
-       /* SPCR only tells us about consoles. */
-       if (devtype != UART_DEV_CONSOLE)
-               return (error);
-
        /* Look for the SPCR table. */
        spcr_physaddr = acpi_find_table(ACPI_SIG_SPCR);
        if (spcr_physaddr == 0)
@@ -213,3 +209,13 @@ out:
        acpi_unmap_table(spcr);
        return (error);
 }
+
+int
+uart_cpu_acpi_setup(int devtype, struct uart_devinfo *di)
+{
+       switch(devtype) {
+       case UART_DEV_CONSOLE:
+               return (uart_cpu_acpi_spcr(devtype, di));
+       }
+       return (ENXIO);
+}
diff --git a/sys/dev/uart/uart_cpu_acpi.h b/sys/dev/uart/uart_cpu_acpi.h
index 816644eb08ba..94329e1f1349 100644
--- a/sys/dev/uart/uart_cpu_acpi.h
+++ b/sys/dev/uart/uart_cpu_acpi.h
@@ -64,7 +64,7 @@ SET_DECLARE(uart_acpi_class_set, struct 
acpi_uart_compat_data);
 #define UART_ACPI_CLASS(data)                          \
        DATA_SET(uart_acpi_class_set, data)
 
-/* Try to initialize UART device from SPCR data. */
-int uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di);
+/* Try to initialize UART device from ACPI tables */
+int uart_cpu_acpi_setup(int devtype, struct uart_devinfo *di);
 
 #endif /* _DEV_UART_CPU_ACPI_H_ */
diff --git a/sys/dev/uart/uart_cpu_arm64.c b/sys/dev/uart/uart_cpu_arm64.c
index 51b195783636..80e67e65697c 100644
--- a/sys/dev/uart/uart_cpu_arm64.c
+++ b/sys/dev/uart/uart_cpu_arm64.c
@@ -125,7 +125,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
 
 #ifdef DEV_ACPI
        /* Check if SPCR can tell us what console to use. */
-       if (uart_cpu_acpi_spcr(devtype, di) == 0)
+       if (uart_cpu_acpi_setup(devtype, di) == 0)
                return (0);
 #endif
 #ifdef FDT
diff --git a/sys/dev/uart/uart_cpu_x86.c b/sys/dev/uart/uart_cpu_x86.c
index 63f68245f589..d152d5059786 100644
--- a/sys/dev/uart/uart_cpu_x86.c
+++ b/sys/dev/uart/uart_cpu_x86.c
@@ -70,7 +70,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di)
         * !late_console, we haven't set up our own page tables yet, so we
         * can't map ACPI tables to look at them.
         */
-       if (late_console && uart_cpu_acpi_spcr(devtype, di) == 0)
+       if (late_console && uart_cpu_acpi_setup(devtype, di) == 0)
                return (0);
 #endif
 

Reply via email to