2015-04-10 22:01:45

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] serial: earlycon requires console support

A configuration that enables earlycon but not the core console
code causes a link error:

drivers/built-in.o: In function `setup_earlycon':
drivers/tty/serial/earlycon.c:70: undefined reference to `uart_parse_earlycon'

That error can be triggered by the newly added samsung earlycon support,
which is missing a 'select' statement. This patch adds the 'select'
to make serial-samsung behave like the other drivers.

Signed-off-by: Arnd Bergmann <[email protected]>
Fixes: b94ba0328d3b3 ("serial: samsung: Add support for early console")

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index f8120c1bde14..5cd8f38a36de 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -241,6 +241,7 @@ config SERIAL_SAMSUNG
tristate "Samsung SoC serial support"
depends on PLAT_SAMSUNG || ARCH_EXYNOS
select SERIAL_CORE
+ select SERIAL_CORE_CONSOLE
select SERIAL_EARLYCON
help
Support for the on-chip UARTs on the Samsung S3C24XX series CPUs,


2015-04-11 13:39:52

by Peter Hurley

[permalink] [raw]
Subject: Re: [PATCH] serial: earlycon requires console support

Hi Arnd,

On 04/10/2015 06:01 PM, Arnd Bergmann wrote:
> A configuration that enables earlycon but not the core console
> code causes a link error:
>
> drivers/built-in.o: In function `setup_earlycon':
> drivers/tty/serial/earlycon.c:70: undefined reference to `uart_parse_earlycon'
>
> That error can be triggered by the newly added samsung earlycon support,
> which is missing a 'select' statement. This patch adds the 'select'
> to make serial-samsung behave like the other drivers.

Since Kconfig has a separate option for enabling console on Samsung,
I'd rather move uart_parse_earlycon() and enclose it in

#if defined(CONFIG_SERIAL_CORE_CONSOLE) || defined(CONFIG_SERIAL_EARLYCON)
...
#endif

I'll send a fix for that right now.

Regards,
Peter Hurley

> Signed-off-by: Arnd Bergmann <[email protected]>
> Fixes: b94ba0328d3b3 ("serial: samsung: Add support for early console")
>
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index f8120c1bde14..5cd8f38a36de 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -241,6 +241,7 @@ config SERIAL_SAMSUNG
> tristate "Samsung SoC serial support"
> depends on PLAT_SAMSUNG || ARCH_EXYNOS
> select SERIAL_CORE
> + select SERIAL_CORE_CONSOLE
> select SERIAL_EARLYCON
> help
> Support for the on-chip UARTs on the Samsung S3C24XX series CPUs,

2015-04-11 15:00:57

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] serial: earlycon requires console support

On Saturday 11 April 2015 09:39:43 Peter Hurley wrote:
> Hi Arnd,
>
> On 04/10/2015 06:01 PM, Arnd Bergmann wrote:
> > A configuration that enables earlycon but not the core console
> > code causes a link error:
> >
> > drivers/built-in.o: In function `setup_earlycon':
> > drivers/tty/serial/earlycon.c:70: undefined reference to `uart_parse_earlycon'
> >
> > That error can be triggered by the newly added samsung earlycon support,
> > which is missing a 'select' statement. This patch adds the 'select'
> > to make serial-samsung behave like the other drivers.
>
> Since Kconfig has a separate option for enabling console on Samsung,
> I'd rather move uart_parse_earlycon() and enclose it in
>
> #if defined(CONFIG_SERIAL_CORE_CONSOLE) || defined(CONFIG_SERIAL_EARLYCON)
> ...
> #endif
>
> I'll send a fix for that right now.
>

Hmm, maybe the 'select SERIAL_EARLYCON' should just be under SERIAL_SAMSUNG_CONSOLE
then? Upon looking closer at the other drivers, that seems to be the common
model, and I don't know what it means to have EARLYCON but no CORE_CONSOLE
enabled.

Arnd

2015-04-11 15:21:40

by Peter Hurley

[permalink] [raw]
Subject: Re: [PATCH] serial: earlycon requires console support

On 04/11/2015 11:00 AM, Arnd Bergmann wrote:
> On Saturday 11 April 2015 09:39:43 Peter Hurley wrote:
>> Hi Arnd,
>>
>> On 04/10/2015 06:01 PM, Arnd Bergmann wrote:
>>> A configuration that enables earlycon but not the core console
>>> code causes a link error:
>>>
>>> drivers/built-in.o: In function `setup_earlycon':
>>> drivers/tty/serial/earlycon.c:70: undefined reference to `uart_parse_earlycon'
>>>
>>> That error can be triggered by the newly added samsung earlycon support,
>>> which is missing a 'select' statement. This patch adds the 'select'
>>> to make serial-samsung behave like the other drivers.
>>
>> Since Kconfig has a separate option for enabling console on Samsung,
>> I'd rather move uart_parse_earlycon() and enclose it in
>>
>> #if defined(CONFIG_SERIAL_CORE_CONSOLE) || defined(CONFIG_SERIAL_EARLYCON)
>> ...
>> #endif
>>
>> I'll send a fix for that right now.
>>
>
> Hmm, maybe the 'select SERIAL_EARLYCON' should just be under SERIAL_SAMSUNG_CONSOLE
> then? Upon looking closer at the other drivers, that seems to be the common
> model, and I don't know what it means to have EARLYCON but no CORE_CONSOLE
> enabled.

Yeah, maybe that's better; will you send that?

Regards,
Peter Hurley