[PATCH 18/18] tty: serial: samsung: shrink memory footprint of ``struct s3c24xx_uart_info``

Sam Protsenko semen.protsenko at linaro.org
Tue Jan 16 11:14:08 PST 2024


On Wed, Jan 10, 2024 at 4:26 AM Tudor Ambarus <tudor.ambarus at linaro.org> wrote:
>
> Use u32 for the members of ``struct s3c24xx_uart_info`` that are used
> for register interactions. The purpose of these members becomes clearer.
>
> The greater benefit of this change is that it also reduces the memory
> footprint of the struct, allowing 64-bit architectures to use a
> single cacheline for the entire struct.
>
> struct s3c24xx_uart_info {
>         const char  *              name;                 /*     0     8 */
>         enum s3c24xx_port_type     type;                 /*     8     4 */
>         unsigned int               port_type;            /*    12     4 */
>         unsigned int               fifosize;             /*    16     4 */
>         u32                        rx_fifomask;          /*    20     4 */
>         u32                        rx_fifoshift;         /*    24     4 */
>         u32                        rx_fifofull;          /*    28     4 */
>         u32                        tx_fifomask;          /*    32     4 */
>         u32                        tx_fifoshift;         /*    36     4 */
>         u32                        tx_fifofull;          /*    40     4 */
>         u32                        clksel_mask;          /*    44     4 */
>         u32                        clksel_shift;         /*    48     4 */
>         u32                        ucon_mask;            /*    52     4 */
>         u8                         def_clk_sel;          /*    56     1 */
>         u8                         num_clks;             /*    57     1 */
>         u8                         iotype;               /*    58     1 */
>         u8                         has_divslot:1;        /*    59: 0  1 */
>
>         /* size: 64, cachelines: 1, members: 17 */
>         /* padding: 4 */
>         /* bit_padding: 7 bits */
> };
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus at linaro.org>
> ---

Reviewed-by: Sam Protsenko <semen.protsenko at linaro.org>

>  drivers/tty/serial/samsung_tty.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
> index 598d9fe7a492..40dceb41acb7 100644
> --- a/drivers/tty/serial/samsung_tty.c
> +++ b/drivers/tty/serial/samsung_tty.c
> @@ -75,15 +75,15 @@ struct s3c24xx_uart_info {
>         enum s3c24xx_port_type  type;
>         unsigned int            port_type;
>         unsigned int            fifosize;
> -       unsigned long           rx_fifomask;
> -       unsigned long           rx_fifoshift;
> -       unsigned long           rx_fifofull;
> -       unsigned long           tx_fifomask;
> -       unsigned long           tx_fifoshift;
> -       unsigned long           tx_fifofull;
> -       unsigned long           clksel_mask;
> -       unsigned long           clksel_shift;
> -       unsigned long           ucon_mask;
> +       u32                     rx_fifomask;
> +       u32                     rx_fifoshift;
> +       u32                     rx_fifofull;
> +       u32                     tx_fifomask;
> +       u32                     tx_fifoshift;
> +       u32                     tx_fifofull;
> +       u32                     clksel_mask;
> +       u32                     clksel_shift;
> +       u32                     ucon_mask;
>         u8                      def_clk_sel;
>         u8                      num_clks;
>         u8                      iotype;
> --
> 2.43.0.472.g3155946c3a-goog
>
>



More information about the linux-arm-kernel mailing list