Patchwork [U-Boot] serial/ns16550: don't generate functions for undefined ports

login
register
mail settings
Submitter Scott Wood
Date Jan. 19, 2013, 1:42 a.m.
Message ID <20130119014216.GA10593@home.buserror.net>
Download mbox | patch
Permalink /patch/213772/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Scott Wood - Jan. 19, 2013, 1:42 a.m.
This saved 640 bytes on MPC8536DS (a board with two of the six
ports defined).

Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 drivers/serial/serial_ns16550.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)
McClintock Matthew-B29882 - Jan. 31, 2013, 7:24 a.m.
On Fri, Jan 18, 2013 at 7:42 PM, Scott Wood <scottwood@freescale.com> wrote:
> This saved 640 bytes on MPC8536DS (a board with two of the six
> ports defined).
>
> Signed-off-by: Scott Wood <scottwood@freescale.com>

I noticed the same issue on SPL builds.

Ack.

-M

> ---
>  drivers/serial/serial_ns16550.c |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c
> index fc01a3c..b92eef4 100644
> --- a/drivers/serial/serial_ns16550.c
> +++ b/drivers/serial/serial_ns16550.c
> @@ -247,24 +247,36 @@ serial_setbrg_dev(unsigned int dev_index)
>         _serial_setbrg(dev_index);
>  }
>
> +#if defined(CONFIG_SYS_NS16550_COM1)
>  DECLARE_ESERIAL_FUNCTIONS(1);
>  struct serial_device eserial1_device =
>         INIT_ESERIAL_STRUCTURE(1, "eserial0");
> +#endif
> +#if defined(CONFIG_SYS_NS16550_COM2)
>  DECLARE_ESERIAL_FUNCTIONS(2);
>  struct serial_device eserial2_device =
>         INIT_ESERIAL_STRUCTURE(2, "eserial1");
> +#endif
> +#if defined(CONFIG_SYS_NS16550_COM3)
>  DECLARE_ESERIAL_FUNCTIONS(3);
>  struct serial_device eserial3_device =
>         INIT_ESERIAL_STRUCTURE(3, "eserial2");
> +#endif
> +#if defined(CONFIG_SYS_NS16550_COM4)
>  DECLARE_ESERIAL_FUNCTIONS(4);
>  struct serial_device eserial4_device =
>         INIT_ESERIAL_STRUCTURE(4, "eserial3");
> +#endif
> +#if defined(CONFIG_SYS_NS16550_COM5)
>  DECLARE_ESERIAL_FUNCTIONS(5);
>  struct serial_device eserial5_device =
>         INIT_ESERIAL_STRUCTURE(5, "eserial4");
> +#endif
> +#if defined(CONFIG_SYS_NS16550_COM6)
>  DECLARE_ESERIAL_FUNCTIONS(6);
>  struct serial_device eserial6_device =
>         INIT_ESERIAL_STRUCTURE(6, "eserial5");
> +#endif
>
>  __weak struct serial_device *default_serial_console(void)
>  {
> --
> 1.7.9.5
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Tom Rini - Feb. 20, 2013, 3 p.m.
On Fri, Jan 18, 2013 at 03:42:16PM -0000, Scott Wood wrote:

> This saved 640 bytes on MPC8536DS (a board with two of the six
> ports defined).
> 
> Signed-off-by: Scott Wood <scottwood@freescale.com>

Applied to u-boot/master, thanks!

Patch

diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c
index fc01a3c..b92eef4 100644
--- a/drivers/serial/serial_ns16550.c
+++ b/drivers/serial/serial_ns16550.c
@@ -247,24 +247,36 @@  serial_setbrg_dev(unsigned int dev_index)
 	_serial_setbrg(dev_index);
 }
 
+#if defined(CONFIG_SYS_NS16550_COM1)
 DECLARE_ESERIAL_FUNCTIONS(1);
 struct serial_device eserial1_device =
 	INIT_ESERIAL_STRUCTURE(1, "eserial0");
+#endif
+#if defined(CONFIG_SYS_NS16550_COM2)
 DECLARE_ESERIAL_FUNCTIONS(2);
 struct serial_device eserial2_device =
 	INIT_ESERIAL_STRUCTURE(2, "eserial1");
+#endif
+#if defined(CONFIG_SYS_NS16550_COM3)
 DECLARE_ESERIAL_FUNCTIONS(3);
 struct serial_device eserial3_device =
 	INIT_ESERIAL_STRUCTURE(3, "eserial2");
+#endif
+#if defined(CONFIG_SYS_NS16550_COM4)
 DECLARE_ESERIAL_FUNCTIONS(4);
 struct serial_device eserial4_device =
 	INIT_ESERIAL_STRUCTURE(4, "eserial3");
+#endif
+#if defined(CONFIG_SYS_NS16550_COM5)
 DECLARE_ESERIAL_FUNCTIONS(5);
 struct serial_device eserial5_device =
 	INIT_ESERIAL_STRUCTURE(5, "eserial4");
+#endif
+#if defined(CONFIG_SYS_NS16550_COM6)
 DECLARE_ESERIAL_FUNCTIONS(6);
 struct serial_device eserial6_device =
 	INIT_ESERIAL_STRUCTURE(6, "eserial5");
+#endif
 
 __weak struct serial_device *default_serial_console(void)
 {