]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
serial: 8250_dw: Revert "Move definitions to the shared header"
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 14 May 2024 19:05:54 +0000 (22:05 +0300)
committerRoxana Nicolescu <roxana.nicolescu@canonical.com>
Fri, 2 Aug 2024 14:27:22 +0000 (16:27 +0200)
BugLink: https://bugs.launchpad.net/bugs/2075154
commit 2c94512055f362dd789e0f87b8566feeddec83c9 upstream.

This reverts commit d9666dfb314e1ffd6eb9c3c4243fe3e094c047a7.

The container of the struct dw8250_port_data is private to the actual
driver. In particular, 8250_lpss and 8250_dw use different data types
that are assigned to the UART port private_data. Hence, it must not
be used outside the specific driver.

Fix the mistake made in the past by moving the respective definitions
to the specific driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240514190730.2787071-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/tty/serial/8250/8250_dw.c
drivers/tty/serial/8250/8250_dwlib.h

index e8e4868bb2d6cb9fbcaedd8c0e5d8d78c8590f2f..ee6fc7cce1b4cc612a6d4b125e8b01fca77532e9 100644 (file)
 #define DW_UART_QUIRK_APMC0D08         BIT(4)
 #define DW_UART_QUIRK_CPR_VALUE                BIT(5)
 
+struct dw8250_platform_data {
+       u8 usr_reg;
+       u32 cpr_value;
+       unsigned int quirks;
+};
+
+struct dw8250_data {
+       struct dw8250_port_data data;
+       const struct dw8250_platform_data *pdata;
+
+       int                     msr_mask_on;
+       int                     msr_mask_off;
+       struct clk              *clk;
+       struct clk              *pclk;
+       struct notifier_block   clk_notifier;
+       struct work_struct      clk_work;
+       struct reset_control    *rst;
+
+       unsigned int            skip_autocfg:1;
+       unsigned int            uart_16550_compatible:1;
+};
+
+static inline struct dw8250_data *to_dw8250_data(struct dw8250_port_data *data)
+{
+       return container_of(data, struct dw8250_data, data);
+}
+
 static inline struct dw8250_data *clk_to_dw8250_data(struct notifier_block *nb)
 {
        return container_of(nb, struct dw8250_data, clk_notifier);
index 794a9014cdac1dcf13bf04d3db7fbf33d06f3ef2..7dd2a8e7b78085736432fffa26eed7883ed3748c 100644 (file)
@@ -2,15 +2,10 @@
 /* Synopsys DesignWare 8250 library header file. */
 
 #include <linux/io.h>
-#include <linux/notifier.h>
 #include <linux/types.h>
-#include <linux/workqueue.h>
 
 #include "8250.h"
 
-struct clk;
-struct reset_control;
-
 struct dw8250_port_data {
        /* Port properties */
        int                     line;
@@ -26,36 +21,9 @@ struct dw8250_port_data {
        bool                    hw_rs485_support;
 };
 
-struct dw8250_platform_data {
-       u8 usr_reg;
-       u32 cpr_value;
-       unsigned int quirks;
-};
-
-struct dw8250_data {
-       struct dw8250_port_data data;
-       const struct dw8250_platform_data *pdata;
-
-       int                     msr_mask_on;
-       int                     msr_mask_off;
-       struct clk              *clk;
-       struct clk              *pclk;
-       struct notifier_block   clk_notifier;
-       struct work_struct      clk_work;
-       struct reset_control    *rst;
-
-       unsigned int            skip_autocfg:1;
-       unsigned int            uart_16550_compatible:1;
-};
-
 void dw8250_do_set_termios(struct uart_port *p, struct ktermios *termios, const struct ktermios *old);
 void dw8250_setup_port(struct uart_port *p);
 
-static inline struct dw8250_data *to_dw8250_data(struct dw8250_port_data *data)
-{
-       return container_of(data, struct dw8250_data, data);
-}
-
 static inline u32 dw8250_readl_ext(struct uart_port *p, int offset)
 {
        if (p->iotype == UPIO_MEM32BE)