On Mon, Sep 29, 2014 at 8:36 AM, Arnd Bergmann <[email protected]> wrote:
> On Monday 29 September 2014 20:04:52 [email protected] wrote:
>> From: "chunyan.zhang" <[email protected]>
>>
>> Adds earlycon support for the Spreadtrum's serial.
>>
>> Signed-off-by: chunyan.zhang <[email protected]>
>> ---
>> drivers/tty/serial/Kconfig | 12 ++++++
>> drivers/tty/serial/Makefile | 1 +
>> drivers/tty/serial/serial_sprd_early.c | 64 ++++++++++++++++++++++++++++++++
>> 3 files changed, 77 insertions(+)
>> create mode 100644 drivers/tty/serial/serial_sprd_early.c
>>
>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>> index 26cec64..ede16e6 100644
>> --- a/drivers/tty/serial/Kconfig
>> +++ b/drivers/tty/serial/Kconfig
>> @@ -85,6 +85,18 @@ config SERIAL_EARLYCON_ARM_SEMIHOST
>> with "earlycon=smh" on the kernel command line. The console is
>> enabled when early_param is processed.
>>
>> +config SERIAL_EARLYCON_SPRD
>> + bool "Early console using SPRD serial"
>> + depends on ARM64
>> + select SERIAL_CORE
>> + select SERIAL_CORE_CONSOLE
>> + select SERIAL_EARLYCON
>> + help
>
> I assume you will later want to have a proper device driver for
> this hardware, so it would be better to make the Kconfig symbol
> and the file name what you are going to use in the long run, but
> for now only have the earlycon support included.
>
>
>> +static int __init serial_sprd_early_console_setup(
>> + struct earlycon_device *device,
>> + const char *opt)
>> +{
>> + if (!device->port.membase)
>> + return -ENODEV;
>> +
>> + device->con->write = serial_sprd_early_write;
>> + return 0;
>> +}
>> +EARLYCON_DECLARE(serial_sprd, serial_sprd_early_console_setup);
>> +OF_EARLYCON_DECLARE(serial_sprd, "sprd,serial",
>> + serial_sprd_early_console_setup);
>>
>
> I think you should drop the EARLYCON_DECLARE() line, using
> OF_EARLYCON_DECLARE should be enough.
No, I've been telling people to put both in. The reason is you may
have a bootloader or boot files (e.g PXELINUX) that only allows
changing changing the command line or you want to override/extend the
command line in the kernel.
I'm thinking the declaration should be combined into one to do both
since I'm getting tired of making this comment.
Rob