Re: [PATCH v2] serial: earlycon: rework common framework for earlycon declarations
From: Peter Hurley
Date: Tue Feb 16 2016 - 20:32:03 EST
On 02/12/2016 08:30 AM, Masahiro Yamada wrote:
> Hi Peter,
>
>
> 2016-02-13 0:17 GMT+09:00 Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>:
>> On 02/12/2016 02:36 AM, Masahiro Yamada wrote:
>>> Commit 71f50c6d9a22 ("of: drop symbols declared by _OF_DECLARE() from
>>> modules") fixed the link error introduced by commit b8d20e06eaad
>>> ("serial: 8250_uniphier: add earlycon support").
>>>
>>> After commit 2eaa790989e0 ("earlycon: Use common framework for
>>> earlycon declarations") was applied, the link error came back
>>> because the commit reworked OF_EARLYCON_DECLARE() to not use
>>> _OF_DECLARE().
>>
>> What link error are you getting?
>
> The combination of CONFIG_SERIAL_8250_CONSOLE=y
> and CONFIG_SERIAL_8250_UNIPHIER=m causes a link error.
>
>
>
>>
>>> This commit reworks OF_EARLYCON_DECLARE() again based on
>>> _OF_DECLARE(). My motivations are:
>>>
>>> - Fix the link error in a generic way (without patching
>>> drivers/tty/serial/8250/8250_uniphier.c)
>>>
>>> - Delete struct earlycon_id. This struct is re-inventing the wheel;
>>> the fields "name", "compatible", "setup" can be implemented in
>>> struct of_device_id as other frameworks do.
>>
>> This patch basically reverts the common framework.
>> What happens when not building with OF? Does it still declare the
>> earlycon table?
>
> Ah, I missed this. (sigh)
>
> Earlycon must still work without OF.
> My way only works with OF.
>
> I really screwed up. Sorry.
Hi Masahiro,
No big deal.
We need to come up with a better way to enable earlycon builds and
opt-in by driver than the current method. Breaking builds with earlycon
support has happened several times in the last couple of years so
it's not just you.
Regards,
Peter Hurley