linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
       [not found] ` <1421068104-30463-2-git-send-email-eddie.huang@mediatek.com>
@ 2015-01-12 15:35   ` Arnd Bergmann
  2015-01-12 16:08     ` Alan Cox
  2015-02-01 16:27   ` Peter Hurley
  1 sibling, 1 reply; 11+ messages in thread
From: Arnd Bergmann @ 2015-01-12 15:35 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Eddie Huang, Rob Herring, Mark Rutland, Greg Kroah-Hartman,
	Matthias Brugger, devicetree, Vladimir Murzin, srv_heupstream,
	Pawel Moll, Ian Campbell, Catalin Marinas, Jonathan Corbet,
	Will Deacon, linux-kernel, linux-doc, yh.chen, Howard Chen,
	Ashwin Chaugule, linux-serial, Kumar Gala, Joe.C, Jiri Slaby,
	Alan Cox

On Monday 12 January 2015 21:08:21 Eddie Huang wrote:
> Add earlycon support not only baudrate option, but also add noinit option.
> If use noinit option, 8250 earlycon will not init serial hardware and use
> loader setting.
> 
> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com>

I probably missed something in the previous discussion, but why is
"noinit" not just the default? I believe that is how we handle early
serial ports on PowerPC, and I see no downsides to it.

	Arnd

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
  2015-01-12 15:35   ` [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option Arnd Bergmann
@ 2015-01-12 16:08     ` Alan Cox
  0 siblings, 0 replies; 11+ messages in thread
From: Alan Cox @ 2015-01-12 16:08 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, Eddie Huang, Rob Herring, Mark Rutland,
	Greg Kroah-Hartman, Matthias Brugger, devicetree,
	Vladimir Murzin, srv_heupstream, Pawel Moll, Ian Campbell,
	Catalin Marinas, Jonathan Corbet, Will Deacon, linux-kernel,
	linux-doc, yh.chen, Howard Chen, Ashwin Chaugule, linux-serial,
	Kumar Gala, Joe.C, Jiri Slaby

On Mon, 2015-01-12 at 16:35 +0100, Arnd Bergmann wrote:
> On Monday 12 January 2015 21:08:21 Eddie Huang wrote:
> > Add earlycon support not only baudrate option, but also add noinit option.
> > If use noinit option, 8250 earlycon will not init serial hardware and use
> > loader setting.
> > 
> > Signed-off-by: Eddie Huang <eddie.huang@mediatek.com>
> 
> I probably missed something in the previous discussion, but why is
> "noinit" not just the default? I believe that is how we handle early
> serial ports on PowerPC, and I see no downsides to it.

Most PC hardware at least needs the port initialised to use it. It won't
have been configured by the firmware in many cases.

Alan



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
       [not found] ` <1421068104-30463-2-git-send-email-eddie.huang@mediatek.com>
  2015-01-12 15:35   ` [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option Arnd Bergmann
@ 2015-02-01 16:27   ` Peter Hurley
  2015-02-01 18:26     ` Peter Hurley
       [not found]     ` <1422845104.5512.18.camel@mtksdaap41>
  1 sibling, 2 replies; 11+ messages in thread
From: Peter Hurley @ 2015-02-01 16:27 UTC (permalink / raw)
  To: Eddie Huang, Rob Herring, Mark Rutland, Greg Kroah-Hartman,
	Matthias Brugger
  Cc: devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

Hi Eddie,

On 01/12/2015 08:08 AM, Eddie Huang wrote:
> Add earlycon support not only baudrate option, but also add noinit option.
> If use noinit option, 8250 earlycon will not init serial hardware and use
> loader setting.

I see this went into Greg's tty-testing branch.

The only point of this is to not program the divisor, right?

I ask because early_serial8250_setup() could already handle this without
extra options by simply not doing divisor programming if no baud option is
present.

And this blows up if the optional console= form is used:
    console=uart,mmio32,<addr>,noinit
because the ttyS console will expect line settings for console match.

Regards,
Peter Hurley

> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com>
> ---
>  drivers/tty/serial/8250/8250_early.c |  7 ++++---
>  drivers/tty/serial/earlycon.c        | 17 ++++++++++++-----
>  include/linux/serial_8250.h          |  2 ++
>  include/linux/serial_core.h          |  1 +
>  4 files changed, 19 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
> index 4858b8a..a13d757 100644
> --- a/drivers/tty/serial/8250/8250_early.c
> +++ b/drivers/tty/serial/8250/8250_early.c
> @@ -138,19 +138,20 @@ static void __init init_port(struct earlycon_device *device)
>  	serial8250_early_out(port, UART_LCR, c & ~UART_LCR_DLAB);
>  }
>  
> -static int __init early_serial8250_setup(struct earlycon_device *device,
> +int __init early_serial8250_setup(struct earlycon_device *device,
>  					 const char *options)
>  {
>  	if (!(device->port.membase || device->port.iobase))
>  		return 0;
>  
> -	if (!device->baud) {
> +	if (!device->baud && !device->noinit) {
>  		device->baud = probe_baud(&device->port);
>  		snprintf(device->options, sizeof(device->options), "%u",
>  			 device->baud);
>  	}
>  
> -	init_port(device);
> +	if (!device->noinit)
> +		init_port(device);
>  
>  	early_device = device;
>  	device->con->write = early_serial8250_write;
> diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
> index 64fe25a..4891251 100644
> --- a/drivers/tty/serial/earlycon.c
> +++ b/drivers/tty/serial/earlycon.c
> @@ -58,7 +58,7 @@ static int __init parse_options(struct earlycon_device *device,
>  				char *options)
>  {
>  	struct uart_port *port = &device->port;
> -	int mmio, mmio32, length;
> +	int noinit, mmio, mmio32, length;
>  	unsigned long addr;
>  
>  	if (!options)
> @@ -92,10 +92,17 @@ static int __init parse_options(struct earlycon_device *device,
>  	options = strchr(options, ',');
>  	if (options) {
>  		options++;
> -		device->baud = simple_strtoul(options, NULL, 0);
> -		length = min(strcspn(options, " ") + 1,
> -			     (size_t)(sizeof(device->options)));
> -		strlcpy(device->options, options, length);
> +		noinit = !strncmp(options, "noinit", 6);
> +		if (noinit) {
> +			device->noinit = noinit;
> +			strlcpy(device->options, options, 6);
> +			device->options[6] = '\0';
> +		} else {
> +			device->baud = simple_strtoul(options, NULL, 0);
> +			length = min(strcspn(options, " ") + 1,
> +					(size_t)(sizeof(device->options)));
> +			strlcpy(device->options, options, length);
> +		}
>  	}
>  
>  	if (port->iotype == UPIO_MEM || port->iotype == UPIO_MEM32)
> diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
> index e02acf0..0e26eec 100644
> --- a/include/linux/serial_8250.h
> +++ b/include/linux/serial_8250.h
> @@ -119,6 +119,8 @@ extern int serial8250_find_port(struct uart_port *p);
>  extern int serial8250_find_port_for_earlycon(void);
>  extern unsigned int serial8250_early_in(struct uart_port *port, int offset);
>  extern void serial8250_early_out(struct uart_port *port, int offset, int value);
> +extern int early_serial8250_setup(struct earlycon_device *device,
> +					 const char *options);
>  extern int setup_early_serial8250_console(char *cmdline);
>  extern void serial8250_do_set_termios(struct uart_port *port,
>  		struct ktermios *termios, struct ktermios *old);
> diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
> index 057038c..72c6698 100644
> --- a/include/linux/serial_core.h
> +++ b/include/linux/serial_core.h
> @@ -326,6 +326,7 @@ struct earlycon_device {
>  	struct uart_port port;
>  	char options[16];		/* e.g., 115200n8 */
>  	unsigned int baud;
> +	int noinit;
>  };
>  int setup_earlycon(char *buf, const char *match,
>  		   int (*setup)(struct earlycon_device *, const char *));
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
  2015-02-01 16:27   ` Peter Hurley
@ 2015-02-01 18:26     ` Peter Hurley
       [not found]       ` <1422846994.5512.25.camel@mtksdaap41>
       [not found]     ` <1422845104.5512.18.camel@mtksdaap41>
  1 sibling, 1 reply; 11+ messages in thread
From: Peter Hurley @ 2015-02-01 18:26 UTC (permalink / raw)
  To: Eddie Huang
  Cc: Rob Herring, Mark Rutland, Greg Kroah-Hartman, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On 02/01/2015 11:27 AM, Peter Hurley wrote:
> Hi Eddie,
> 
> On 01/12/2015 08:08 AM, Eddie Huang wrote:
>> Add earlycon support not only baudrate option, but also add noinit option.
>> If use noinit option, 8250 earlycon will not init serial hardware and use
>> loader setting.
> 
> I see this went into Greg's tty-testing branch.
> 
> The only point of this is to not program the divisor, right?
> 
> I ask because early_serial8250_setup() could already handle this without
> extra options by simply not doing divisor programming if no baud option is
> present.

Does the patch below work for your use-case?

[ Note: the patch applies to 3.19-rcX. To test, your noinit patches need to be
  reverted first.
]

--- >% ---
From: Peter Hurley <peter@hurleysoftware.com>
Subject: [PATCH] serial: 8250_early: Assume uart already initialized if no
 baud option

The <baud><parity><bit> option string is not supplied if the earlycon
is started via devicetree and OF_EARLYCON_DECLARE(). The option string
is also not required if started via kernel command line parameters of
the form:
  earlycon=uart,mmio,<addr>
  console=uart,mmio,<addr>

If earlycon_device->baud is 0, then an option string was not supplied.
In this case, assume the uart has already been initialized by the
bootloader or firmware.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
 drivers/tty/serial/8250/8250_early.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index d7b831b..1701d00 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -149,12 +149,18 @@ static int __init early_serial8250_setup(struct earlycon_device *device,
 		return 0;
 
 	if (!device->baud) {
+		struct uart_port *port = &device->port;
+		unsigned int ier;
+
 		device->baud = probe_baud(&device->port);
 		snprintf(device->options, sizeof(device->options), "%u",
 			 device->baud);
-	}
 
-	init_port(device);
+		/* assume the device was initialized, only mask interrupts */
+		ier = serial8250_early_in(port, UART_IER);
+		serial8250_early_out(port, UART_IER, ier & UART_IER_UUE);
+	} else
+		init_port(device);
 
 	device->con->write = early_serial8250_write;
 	return 0;
-- 
2.2.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
       [not found]     ` <1422845104.5512.18.camel@mtksdaap41>
@ 2015-02-02  3:27       ` Peter Hurley
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Hurley @ 2015-02-02  3:27 UTC (permalink / raw)
  To: Eddie Huang
  Cc: Rob Herring, Mark Rutland, Greg Kroah-Hartman, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On 02/01/2015 09:45 PM, Eddie Huang wrote:
> Hi Peter,
> 
> On Sun, 2015-02-01 at 11:27 -0500, Peter Hurley wrote:
>> Hi Eddie,
>>
>> On 01/12/2015 08:08 AM, Eddie Huang wrote:
>>> Add earlycon support not only baudrate option, but also add noinit option.
>>> If use noinit option, 8250 earlycon will not init serial hardware and use
>>> loader setting.
>>
>> I see this went into Greg's tty-testing branch.
>>
>> The only point of this is to not program the divisor, right?
> In this case, yes.
> 
>> I ask because early_serial8250_setup() could already handle this without
>> extra options by simply not doing divisor programming if no baud option is
>> present.
> MTK support high speed UART, which means baudrate can be more than
> 115200. You can reference mtk8250_set_termios() function in 8250_mtk.c.
> Unfortunately, the early_serial8250_setup() can not handle high speed
> case. This is why I add noinit parameter.

Thanks, that's what I thought; I just wanted to verify.

> Besides, I think "no baud option" is a little tricky, and maybe someday
> someone not only care about divisor, but also flow. Legacy earlyprintk
> and other uart drivers like msm_serial.c also don't init uart hardware.

My point is the 8250 earlycon should only be doing hardware initialization
if there is an option string (of the form <baud><parity><bits>), because
if there's no baud option, programming the divisor is pointless.

And to specify any other line control option the baud must be specified.
So to program any other setting would require the proper option string.

Regards,
Peter Hurley




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
       [not found]       ` <1422846994.5512.25.camel@mtksdaap41>
@ 2015-02-02  3:45         ` Peter Hurley
  2015-02-02  4:28           ` Greg Kroah-Hartman
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Hurley @ 2015-02-02  3:45 UTC (permalink / raw)
  To: Eddie Huang
  Cc: Rob Herring, Mark Rutland, Greg Kroah-Hartman, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On 02/01/2015 10:16 PM, Eddie Huang wrote:
> Hi Peter,
> 
> On Sun, 2015-02-01 at 13:26 -0500, Peter Hurley wrote:
>> On 02/01/2015 11:27 AM, Peter Hurley wrote:
>>> Hi Eddie,
>>>
>>> On 01/12/2015 08:08 AM, Eddie Huang wrote:
>>>> Add earlycon support not only baudrate option, but also add noinit option.
>>>> If use noinit option, 8250 earlycon will not init serial hardware and use
>>>> loader setting.
>>>
>>> I see this went into Greg's tty-testing branch.
>>>
>>> The only point of this is to not program the divisor, right?
>>>
>>> I ask because early_serial8250_setup() could already handle this without
>>> extra options by simply not doing divisor programming if no baud option is
>>> present.
>>
>> Does the patch below work for your use-case?
>>
>> [ Note: the patch applies to 3.19-rcX. To test, your noinit patches need to be
>>   reverted first.
>> ]
>>
>> --- >% ---
>> From: Peter Hurley <peter@hurleysoftware.com>
>> Subject: [PATCH] serial: 8250_early: Assume uart already initialized if no
>>  baud option
>>
>> The <baud><parity><bit> option string is not supplied if the earlycon
>> is started via devicetree and OF_EARLYCON_DECLARE(). The option string
>> is also not required if started via kernel command line parameters of
>> the form:
>>   earlycon=uart,mmio,<addr>
>>   console=uart,mmio,<addr>
>>
>> If earlycon_device->baud is 0, then an option string was not supplied.
>> In this case, assume the uart has already been initialized by the
>> bootloader or firmware.
>>
>> Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
>> ---
>>  drivers/tty/serial/8250/8250_early.c | 10 ++++++++--
>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
>> index d7b831b..1701d00 100644
>> --- a/drivers/tty/serial/8250/8250_early.c
>> +++ b/drivers/tty/serial/8250/8250_early.c
>> @@ -149,12 +149,18 @@ static int __init early_serial8250_setup(struct earlycon_device *device,
>>  		return 0;
>>  
>>  	if (!device->baud) {
>> +		struct uart_port *port = &device->port;
>> +		unsigned int ier;
>> +
>>  		device->baud = probe_baud(&device->port);
>>  		snprintf(device->options, sizeof(device->options), "%u",
>>  			 device->baud);
>> -	}
>>  
>> -	init_port(device);
>> +		/* assume the device was initialized, only mask interrupts */
>> +		ier = serial8250_early_in(port, UART_IER);
>> +		serial8250_early_out(port, UART_IER, ier & UART_IER_UUE);
>> +	} else
>> +		init_port(device);
> Should add brace in else.

I don't do that unless I have to.

> Where is original line here.
>           early_device = device;

Whoops :)

I wrote the patch from a private branch which implements extensible console
matching (so a console can define its own match function) and a bunch of
other console cleanup and code removal. In that series, early_device becomes
unnecessary and is removed.

I'll respin proper patches on top of Greg's tty-testing branch with reverts
for the noinit options. I noticed that one of the noinit patches actually
has the linkage for the mtk earlycon, so I'll be sure to preserve that.

Regards,
Peter Hurley


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
  2015-02-02  3:45         ` Peter Hurley
@ 2015-02-02  4:28           ` Greg Kroah-Hartman
  2015-02-02  5:15             ` Peter Hurley
  0 siblings, 1 reply; 11+ messages in thread
From: Greg Kroah-Hartman @ 2015-02-02  4:28 UTC (permalink / raw)
  To: Peter Hurley
  Cc: Eddie Huang, Rob Herring, Mark Rutland, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On Sun, Feb 01, 2015 at 10:45:12PM -0500, Peter Hurley wrote:
> On 02/01/2015 10:16 PM, Eddie Huang wrote:
> > Hi Peter,
> > 
> > On Sun, 2015-02-01 at 13:26 -0500, Peter Hurley wrote:
> >> On 02/01/2015 11:27 AM, Peter Hurley wrote:
> >>> Hi Eddie,
> >>>
> >>> On 01/12/2015 08:08 AM, Eddie Huang wrote:
> >>>> Add earlycon support not only baudrate option, but also add noinit option.
> >>>> If use noinit option, 8250 earlycon will not init serial hardware and use
> >>>> loader setting.
> >>>
> >>> I see this went into Greg's tty-testing branch.
> >>>
> >>> The only point of this is to not program the divisor, right?
> >>>
> >>> I ask because early_serial8250_setup() could already handle this without
> >>> extra options by simply not doing divisor programming if no baud option is
> >>> present.
> >>
> >> Does the patch below work for your use-case?
> >>
> >> [ Note: the patch applies to 3.19-rcX. To test, your noinit patches need to be
> >>   reverted first.
> >> ]
> >>
> >> --- >% ---
> >> From: Peter Hurley <peter@hurleysoftware.com>
> >> Subject: [PATCH] serial: 8250_early: Assume uart already initialized if no
> >>  baud option
> >>
> >> The <baud><parity><bit> option string is not supplied if the earlycon
> >> is started via devicetree and OF_EARLYCON_DECLARE(). The option string
> >> is also not required if started via kernel command line parameters of
> >> the form:
> >>   earlycon=uart,mmio,<addr>
> >>   console=uart,mmio,<addr>
> >>
> >> If earlycon_device->baud is 0, then an option string was not supplied.
> >> In this case, assume the uart has already been initialized by the
> >> bootloader or firmware.
> >>
> >> Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
> >> ---
> >>  drivers/tty/serial/8250/8250_early.c | 10 ++++++++--
> >>  1 file changed, 8 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
> >> index d7b831b..1701d00 100644
> >> --- a/drivers/tty/serial/8250/8250_early.c
> >> +++ b/drivers/tty/serial/8250/8250_early.c
> >> @@ -149,12 +149,18 @@ static int __init early_serial8250_setup(struct earlycon_device *device,
> >>  		return 0;
> >>  
> >>  	if (!device->baud) {
> >> +		struct uart_port *port = &device->port;
> >> +		unsigned int ier;
> >> +
> >>  		device->baud = probe_baud(&device->port);
> >>  		snprintf(device->options, sizeof(device->options), "%u",
> >>  			 device->baud);
> >> -	}
> >>  
> >> -	init_port(device);
> >> +		/* assume the device was initialized, only mask interrupts */
> >> +		ier = serial8250_early_in(port, UART_IER);
> >> +		serial8250_early_out(port, UART_IER, ier & UART_IER_UUE);
> >> +	} else
> >> +		init_port(device);
> > Should add brace in else.
> 
> I don't do that unless I have to.
> 
> > Where is original line here.
> >           early_device = device;
> 
> Whoops :)
> 
> I wrote the patch from a private branch which implements extensible console
> matching (so a console can define its own match function) and a bunch of
> other console cleanup and code removal. In that series, early_device becomes
> unnecessary and is removed.
> 
> I'll respin proper patches on top of Greg's tty-testing branch with reverts
> for the noinit options. I noticed that one of the noinit patches actually
> has the linkage for the mtk earlycon, so I'll be sure to preserve that.

I can just drop the patches in the tty-testing branch, that's what it is
there for :)

Just let me know the specific patches and I will do so, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
  2015-02-02  4:28           ` Greg Kroah-Hartman
@ 2015-02-02  5:15             ` Peter Hurley
  2015-02-02  5:24               ` Greg Kroah-Hartman
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Hurley @ 2015-02-02  5:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Eddie Huang, Rob Herring, Mark Rutland, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On 02/01/2015 11:28 PM, Greg Kroah-Hartman wrote:
> On Sun, Feb 01, 2015 at 10:45:12PM -0500, Peter Hurley wrote:
>> On 02/01/2015 10:16 PM, Eddie Huang wrote:

>> I'll respin proper patches on top of Greg's tty-testing branch with reverts
>> for the noinit options. I noticed that one of the noinit patches actually
>> has the linkage for the mtk earlycon, so I'll be sure to preserve that.
> 
> I can just drop the patches in the tty-testing branch, that's what it is
> there for :)
> 
> Just let me know the specific patches and I will do so, thanks.

Well that pretty much means dropping the 3 patches that add earlycon to
8250_mtk and then applying my patch (needs fixed to apply cleanly, which
I can do) and then applying a fixed-up replacement patch to add earlycon
to 8250_mtk (which I can also supply).

Is that the way you want to go?


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
  2015-02-02  5:15             ` Peter Hurley
@ 2015-02-02  5:24               ` Greg Kroah-Hartman
       [not found]                 ` <1422855202.26131.31.camel@mtksdaap41>
  0 siblings, 1 reply; 11+ messages in thread
From: Greg Kroah-Hartman @ 2015-02-02  5:24 UTC (permalink / raw)
  To: Peter Hurley
  Cc: Eddie Huang, Rob Herring, Mark Rutland, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On Mon, Feb 02, 2015 at 12:15:31AM -0500, Peter Hurley wrote:
> On 02/01/2015 11:28 PM, Greg Kroah-Hartman wrote:
> > On Sun, Feb 01, 2015 at 10:45:12PM -0500, Peter Hurley wrote:
> >> On 02/01/2015 10:16 PM, Eddie Huang wrote:
> 
> >> I'll respin proper patches on top of Greg's tty-testing branch with reverts
> >> for the noinit options. I noticed that one of the noinit patches actually
> >> has the linkage for the mtk earlycon, so I'll be sure to preserve that.
> > 
> > I can just drop the patches in the tty-testing branch, that's what it is
> > there for :)
> > 
> > Just let me know the specific patches and I will do so, thanks.
> 
> Well that pretty much means dropping the 3 patches that add earlycon to
> 8250_mtk and then applying my patch (needs fixed to apply cleanly, which
> I can do) and then applying a fixed-up replacement patch to add earlycon
> to 8250_mtk (which I can also supply).
> 
> Is that the way you want to go?

Sounds good to me, send your patch, and I'll fix it all up tomorrow.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
       [not found]                 ` <1422855202.26131.31.camel@mtksdaap41>
@ 2015-02-02  5:43                   ` Peter Hurley
  2015-02-02 18:46                     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Hurley @ 2015-02-02  5:43 UTC (permalink / raw)
  To: Eddie Huang, Greg Kroah-Hartman
  Cc: Rob Herring, Mark Rutland, Matthias Brugger, devicetree,
	Vladimir Murzin, srv_heupstream, Pawel Moll, Ian Campbell,
	Catalin Marinas, Jonathan Corbet, Will Deacon, linux-kernel,
	linux-doc, yh.chen, Howard Chen, Ashwin Chaugule, linux-serial,
	Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel, Alan Cox

On 02/02/2015 12:33 AM, Eddie Huang wrote:
> Hi Peter,
> 
> On Sun, 2015-02-01 at 21:24 -0800, Greg Kroah-Hartman wrote:
>> On Mon, Feb 02, 2015 at 12:15:31AM -0500, Peter Hurley wrote:
>>> On 02/01/2015 11:28 PM, Greg Kroah-Hartman wrote:
>>>> On Sun, Feb 01, 2015 at 10:45:12PM -0500, Peter Hurley wrote:
>>>>> On 02/01/2015 10:16 PM, Eddie Huang wrote:
>>>
>>>>> I'll respin proper patches on top of Greg's tty-testing branch with reverts
>>>>> for the noinit options. I noticed that one of the noinit patches actually
>>>>> has the linkage for the mtk earlycon, so I'll be sure to preserve that.
>>>>
>>>> I can just drop the patches in the tty-testing branch, that's what it is
>>>> there for :)
>>>>
>>>> Just let me know the specific patches and I will do so, thanks.
>>>
>>> Well that pretty much means dropping the 3 patches that add earlycon to
>>> 8250_mtk and then applying my patch (needs fixed to apply cleanly, which
>>> I can do) and then applying a fixed-up replacement patch to add earlycon
>>> to 8250_mtk (which I can also supply).
>>>
>>> Is that the way you want to go?
>>
>> Sounds good to me, send your patch, and I'll fix it all up tomorrow.
>>
>> thanks,
>>
>> greg k-h
> 
> Actually, your patch is a little different from my original idea.
> Although my use case only care about divisor now, but other hardware
> setting is still hard-code, not from parameter. In init_port()
> function:   
> 	serial8250_early_out(port, UART_LCR, 0x3); /* 8n1 */
> 	serial8250_early_out(port, UART_IER, 0);/* no interrupt */
> 	serial8250_early_out(port, UART_FCR, 0); /* no fifo */
> 	serial8250_early_out(port, UART_MCR, 0x3); /* DTR + RTS */
> 
> This is why I propose a new option "noinit".
> 
> After checking further, in my case, I found that your patch should be
> unnecessary because if skip baudrate, probe_baud() read DLL/DLM register
> and init_port() write the same DLL/DLM value back, no touch any high
> speed register, which means keep uart divisor setting as loader
> 
> Since I don't take "console=uart,mmio32,<addr>,noinit" into
> consideration, it is good to drop my patches in the tty-testing branch.
> For my case, I can send another series without noinit, just 8250_mtk.c
> and its linkage modification in 8250_early.c

Ok.

Greg,

The patches to drop from tty-testing are:
* 405017d Document: Modify 8250 earlycon kernel parameters
* 0dff3a4 tty: serial: 8250_mtk: Add earlycon
* b829735 tty: serial: Add 8250 earlycon to support noinit option

Regards,
Peter Hurley

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option
  2015-02-02  5:43                   ` Peter Hurley
@ 2015-02-02 18:46                     ` Greg Kroah-Hartman
  0 siblings, 0 replies; 11+ messages in thread
From: Greg Kroah-Hartman @ 2015-02-02 18:46 UTC (permalink / raw)
  To: Peter Hurley
  Cc: Eddie Huang, Rob Herring, Mark Rutland, Matthias Brugger,
	devicetree, Vladimir Murzin, srv_heupstream, Pawel Moll,
	Ian Campbell, Catalin Marinas, Jonathan Corbet, Will Deacon,
	linux-kernel, linux-doc, yh.chen, Howard Chen, Ashwin Chaugule,
	linux-serial, Kumar Gala, Joe.C, Jiri Slaby, linux-arm-kernel,
	Alan Cox

On Mon, Feb 02, 2015 at 12:43:50AM -0500, Peter Hurley wrote:
> On 02/02/2015 12:33 AM, Eddie Huang wrote:
> > Hi Peter,
> > 
> > On Sun, 2015-02-01 at 21:24 -0800, Greg Kroah-Hartman wrote:
> >> On Mon, Feb 02, 2015 at 12:15:31AM -0500, Peter Hurley wrote:
> >>> On 02/01/2015 11:28 PM, Greg Kroah-Hartman wrote:
> >>>> On Sun, Feb 01, 2015 at 10:45:12PM -0500, Peter Hurley wrote:
> >>>>> On 02/01/2015 10:16 PM, Eddie Huang wrote:
> >>>
> >>>>> I'll respin proper patches on top of Greg's tty-testing branch with reverts
> >>>>> for the noinit options. I noticed that one of the noinit patches actually
> >>>>> has the linkage for the mtk earlycon, so I'll be sure to preserve that.
> >>>>
> >>>> I can just drop the patches in the tty-testing branch, that's what it is
> >>>> there for :)
> >>>>
> >>>> Just let me know the specific patches and I will do so, thanks.
> >>>
> >>> Well that pretty much means dropping the 3 patches that add earlycon to
> >>> 8250_mtk and then applying my patch (needs fixed to apply cleanly, which
> >>> I can do) and then applying a fixed-up replacement patch to add earlycon
> >>> to 8250_mtk (which I can also supply).
> >>>
> >>> Is that the way you want to go?
> >>
> >> Sounds good to me, send your patch, and I'll fix it all up tomorrow.
> >>
> >> thanks,
> >>
> >> greg k-h
> > 
> > Actually, your patch is a little different from my original idea.
> > Although my use case only care about divisor now, but other hardware
> > setting is still hard-code, not from parameter. In init_port()
> > function:   
> > 	serial8250_early_out(port, UART_LCR, 0x3); /* 8n1 */
> > 	serial8250_early_out(port, UART_IER, 0);/* no interrupt */
> > 	serial8250_early_out(port, UART_FCR, 0); /* no fifo */
> > 	serial8250_early_out(port, UART_MCR, 0x3); /* DTR + RTS */
> > 
> > This is why I propose a new option "noinit".
> > 
> > After checking further, in my case, I found that your patch should be
> > unnecessary because if skip baudrate, probe_baud() read DLL/DLM register
> > and init_port() write the same DLL/DLM value back, no touch any high
> > speed register, which means keep uart divisor setting as loader
> > 
> > Since I don't take "console=uart,mmio32,<addr>,noinit" into
> > consideration, it is good to drop my patches in the tty-testing branch.
> > For my case, I can send another series without noinit, just 8250_mtk.c
> > and its linkage modification in 8250_early.c
> 
> Ok.
> 
> Greg,
> 
> The patches to drop from tty-testing are:
> * 405017d Document: Modify 8250 earlycon kernel parameters
> * 0dff3a4 tty: serial: 8250_mtk: Add earlycon
> * b829735 tty: serial: Add 8250 earlycon to support noinit option

Ok, now dropped, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-02-02 18:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1421068104-30463-1-git-send-email-eddie.huang@mediatek.com>
     [not found] ` <1421068104-30463-2-git-send-email-eddie.huang@mediatek.com>
2015-01-12 15:35   ` [PATCH v2 1/4] tty: serial: Add 8250 earlycon to support noinit option Arnd Bergmann
2015-01-12 16:08     ` Alan Cox
2015-02-01 16:27   ` Peter Hurley
2015-02-01 18:26     ` Peter Hurley
     [not found]       ` <1422846994.5512.25.camel@mtksdaap41>
2015-02-02  3:45         ` Peter Hurley
2015-02-02  4:28           ` Greg Kroah-Hartman
2015-02-02  5:15             ` Peter Hurley
2015-02-02  5:24               ` Greg Kroah-Hartman
     [not found]                 ` <1422855202.26131.31.camel@mtksdaap41>
2015-02-02  5:43                   ` Peter Hurley
2015-02-02 18:46                     ` Greg Kroah-Hartman
     [not found]     ` <1422845104.5512.18.camel@mtksdaap41>
2015-02-02  3:27       ` Peter Hurley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).