[U-Boot] [PATCH 62/71] serial: spl: Implement empty functions for SPL

Scott Wood
2012-09-18T17:46:29Z

On 09/18/2012 12:13:57 PM, Marek Vasut wrote:
> Dear Tom Rini,
>
> > On Mon, Sep 17, 2012 at 01:21:27AM +0200, Marek Vasut wrote:
> > > Implement empty serial_* functions for SPL without serial
> > > support enabled. This is imperative to haave once serial
> > > multi is enabled unconditionally.
> > >
> > > Signed-off-by: Marek Vasut <marex@denx.de>
> > > Cc: Marek Vasut <marek.vasut@gmail.com>
> > > Cc: Tom Rini <trini@ti.com>
> > > ---
> > >
> > > common/serial.c | 12 ++++++++++++
> > > 1 file changed, 12 insertions(+)
> > >
> > > diff --git a/common/serial.c b/common/serial.c
> > > index 631af65..cef4ba8 100644
> > > --- a/common/serial.c
> > > +++ b/common/serial.c
> > > @@ -27,6 +27,16 @@
> > >
> > > #include <post.h>
> > > #include <linux/compiler.h>
> > >
> > > +/* Implement prototypes for SPL without serial support */
> > > +#if defined(CONFIG_SPL_BUILD) &&
> !defined(CONFIG_SPL_SERIAL_SUPPORT)
> > > +int serial_init(void) { return 0; }
> > > +void serial_setbrg(void) {}
> > > +int serial_getc(void) { return 0; }
> > > +int serial_tstc(void) { return 0; }
> > > +void serial_putc(const char c) {}
> > > +void serial_puts(const char *s) {}
> >
> > This isn't quite right. We need to allow for:
> > - No output SPL, strings collected (so #defined to do{} while (0))
>
> Which is not type-checked and will drag in bugs.

Not all that likely, since most code will either be built with printf
enabled some of the time, or not contain printf (i.e. it's not quite
the same situation as debug prints which may be rarely enabled).

An inline function would be fine, but has to be done at the same place
that normal printf is declared -- whereas a macro could be done after
the fact. Unless you use a macro to redirect it to an inline function
of a different name...

I do not understand why you want to put these stubs in a C file instead
of a header file, though -- you're preventing code from being optimized
away, which is important in some SPLs.

-Scott