All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Aleksey Makarov <aleksey.makarov@linaro.org>
Cc: Russell King <linux@arm.linux.org.uk>,
	linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>,
	Leif Lindholm <leif.lindholm@linaro.org>,
	Graeme Gregory <graeme.gregory@linaro.org>,
	Al Stone <ahs3@redhat.com>,
	Christopher Covington <cov@codeaurora.org>,
	Yury Norov <ynorov@caviumnetworks.com>,
	Peter Hurley <peter@hurleysoftware.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	"Zheng, Lv" <lv.zheng@intel.com>,
	Rob Herring <robh+dt@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Grant Likely <grant.likely@linaro.org>,
	Jiri Slaby <jslaby@suse.com>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v7 1/5] of/serial: move earlycon early_param handling to serial
Date: Thu, 31 Mar 2016 10:37:32 -0700	[thread overview]
Message-ID: <20160331173732.GA10567@kroah.com> (raw)
In-Reply-To: <56FD5894.3060105@linaro.org>

On Thu, Mar 31, 2016 at 08:04:20PM +0300, Aleksey Makarov wrote:
> 
> 
> On 03/31/2016 07:32 PM, Greg Kroah-Hartman wrote:
> > On Thu, Mar 31, 2016 at 04:40:23PM +0300, Aleksey Makarov wrote:
> >> From: Leif Lindholm <leif.lindholm@linaro.org>
> >>
> >> We have multiple "earlycon" early_param handlers - merge the DT one into
> >> the main earlycon one.  It's a cleanup that also will be useful
> >> to defer setting up DT console until ACPI/DT decision is made.
> >>
> >> Rename the exported function to avoid clashing with the function from
> >> arch/microblaze/kernel/prom.c
> >>
> >> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> >> Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org>
> >> Acked-by: Rob Herring <robh@kernel.org>
> >> ---
> >>  drivers/of/fdt.c              | 11 +----------
> >>  drivers/tty/serial/earlycon.c |  2 +-
> >>  include/linux/of_fdt.h        |  2 ++
> >>  3 files changed, 4 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> >> index 3349d2a..b50f775 100644
> >> --- a/drivers/of/fdt.c
> >> +++ b/drivers/of/fdt.c
> >> @@ -805,7 +805,7 @@ static inline void early_init_dt_check_for_initrd(unsigned long node)
> >>  
> >>  #ifdef CONFIG_SERIAL_EARLYCON
> >>  
> >> -static int __init early_init_dt_scan_chosen_serial(void)
> >> +int __init early_init_dt_scan_chosen_stdout(void)
> >>  {
> >>  	int offset;
> >>  	const char *p, *q, *options = NULL;
> >> @@ -849,15 +849,6 @@ static int __init early_init_dt_scan_chosen_serial(void)
> >>  	}
> >>  	return -ENODEV;
> >>  }
> >> -
> >> -static int __init setup_of_earlycon(char *buf)
> >> -{
> >> -	if (buf)
> >> -		return 0;
> >> -
> >> -	return early_init_dt_scan_chosen_serial();
> >> -}
> >> -early_param("earlycon", setup_of_earlycon);
> >>  #endif
> >>  
> >>  /**
> >> diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
> >> index 067783f..7aae655 100644
> >> --- a/drivers/tty/serial/earlycon.c
> >> +++ b/drivers/tty/serial/earlycon.c
> >> @@ -209,7 +209,7 @@ static int __init param_setup_earlycon(char *buf)
> >>  	 * don't generate a warning from parse_early_params() in that case
> >>  	 */
> >>  	if (!buf || !buf[0])
> >> -		return 0;
> >> +		return early_init_dt_scan_chosen_stdout();
> >>  
> >>  	err = setup_earlycon(buf);
> >>  	if (err == -ENOENT || err == -EALREADY)
> >> diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
> >> index 2fbe868..5cfe322 100644
> >> --- a/include/linux/of_fdt.h
> >> +++ b/include/linux/of_fdt.h
> >> @@ -63,6 +63,7 @@ extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
> >>  				     int depth, void *data);
> >>  extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
> >>  				     int depth, void *data);
> >> +extern int early_init_dt_scan_chosen_stdout(void);
> >>  extern void early_init_fdt_scan_reserved_mem(void);
> >>  extern void early_init_fdt_reserve_self(void);
> >>  extern void early_init_dt_add_memory_arch(u64 base, u64 size);
> >> @@ -91,6 +92,7 @@ extern void early_get_first_memblock_info(void *, phys_addr_t *);
> >>  extern u64 of_flat_dt_translate_address(unsigned long node);
> >>  extern void of_fdt_limit_memory(int limit);
> >>  #else /* CONFIG_OF_FLATTREE */
> >> +static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; }
> > 
> > Doesn't this change the default logic?  Today you are returning 0 if you
> > don't have this config option set,
> 
> I am not sure I understand this.  Which return value do you mean?
> 
> 1. early_init_dt_scan_chosen_stdout()
> 
> Today if CONFIG_OF_FLATTREE is not set then early_init_dt_scan_chosen_stdout() does not exist.

It "exists" in that you return -ENODEV, right?  Look at the place where
you called this function, previously you returned 0, now you return this
function call's return value.

> 2. param_setup_earlycon()
> 
> Today we have 2 handlers for "earlycon" option.  One (in fdt.c) is for the option without args,
> and another (earlycon.c) always expects agrs.  But both return 0 for the opposite cases becasue they
> can not check what another hander returns.
> 
> Now we have just one handler and it can return correct value.

I don't understand.

> >  and now you return -ENODEV, did you
> > test this out?
> 
> Yes, I tested it.

On what platforms?  With what configurations?

thanks,

greg k-h

WARNING: multiple messages have this Message-ID (diff)
From: gregkh@linuxfoundation.org (Greg Kroah-Hartman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 1/5] of/serial: move earlycon early_param handling to serial
Date: Thu, 31 Mar 2016 10:37:32 -0700	[thread overview]
Message-ID: <20160331173732.GA10567@kroah.com> (raw)
In-Reply-To: <56FD5894.3060105@linaro.org>

On Thu, Mar 31, 2016 at 08:04:20PM +0300, Aleksey Makarov wrote:
> 
> 
> On 03/31/2016 07:32 PM, Greg Kroah-Hartman wrote:
> > On Thu, Mar 31, 2016 at 04:40:23PM +0300, Aleksey Makarov wrote:
> >> From: Leif Lindholm <leif.lindholm@linaro.org>
> >>
> >> We have multiple "earlycon" early_param handlers - merge the DT one into
> >> the main earlycon one.  It's a cleanup that also will be useful
> >> to defer setting up DT console until ACPI/DT decision is made.
> >>
> >> Rename the exported function to avoid clashing with the function from
> >> arch/microblaze/kernel/prom.c
> >>
> >> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> >> Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org>
> >> Acked-by: Rob Herring <robh@kernel.org>
> >> ---
> >>  drivers/of/fdt.c              | 11 +----------
> >>  drivers/tty/serial/earlycon.c |  2 +-
> >>  include/linux/of_fdt.h        |  2 ++
> >>  3 files changed, 4 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> >> index 3349d2a..b50f775 100644
> >> --- a/drivers/of/fdt.c
> >> +++ b/drivers/of/fdt.c
> >> @@ -805,7 +805,7 @@ static inline void early_init_dt_check_for_initrd(unsigned long node)
> >>  
> >>  #ifdef CONFIG_SERIAL_EARLYCON
> >>  
> >> -static int __init early_init_dt_scan_chosen_serial(void)
> >> +int __init early_init_dt_scan_chosen_stdout(void)
> >>  {
> >>  	int offset;
> >>  	const char *p, *q, *options = NULL;
> >> @@ -849,15 +849,6 @@ static int __init early_init_dt_scan_chosen_serial(void)
> >>  	}
> >>  	return -ENODEV;
> >>  }
> >> -
> >> -static int __init setup_of_earlycon(char *buf)
> >> -{
> >> -	if (buf)
> >> -		return 0;
> >> -
> >> -	return early_init_dt_scan_chosen_serial();
> >> -}
> >> -early_param("earlycon", setup_of_earlycon);
> >>  #endif
> >>  
> >>  /**
> >> diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
> >> index 067783f..7aae655 100644
> >> --- a/drivers/tty/serial/earlycon.c
> >> +++ b/drivers/tty/serial/earlycon.c
> >> @@ -209,7 +209,7 @@ static int __init param_setup_earlycon(char *buf)
> >>  	 * don't generate a warning from parse_early_params() in that case
> >>  	 */
> >>  	if (!buf || !buf[0])
> >> -		return 0;
> >> +		return early_init_dt_scan_chosen_stdout();
> >>  
> >>  	err = setup_earlycon(buf);
> >>  	if (err == -ENOENT || err == -EALREADY)
> >> diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
> >> index 2fbe868..5cfe322 100644
> >> --- a/include/linux/of_fdt.h
> >> +++ b/include/linux/of_fdt.h
> >> @@ -63,6 +63,7 @@ extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
> >>  				     int depth, void *data);
> >>  extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
> >>  				     int depth, void *data);
> >> +extern int early_init_dt_scan_chosen_stdout(void);
> >>  extern void early_init_fdt_scan_reserved_mem(void);
> >>  extern void early_init_fdt_reserve_self(void);
> >>  extern void early_init_dt_add_memory_arch(u64 base, u64 size);
> >> @@ -91,6 +92,7 @@ extern void early_get_first_memblock_info(void *, phys_addr_t *);
> >>  extern u64 of_flat_dt_translate_address(unsigned long node);
> >>  extern void of_fdt_limit_memory(int limit);
> >>  #else /* CONFIG_OF_FLATTREE */
> >> +static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; }
> > 
> > Doesn't this change the default logic?  Today you are returning 0 if you
> > don't have this config option set,
> 
> I am not sure I understand this.  Which return value do you mean?
> 
> 1. early_init_dt_scan_chosen_stdout()
> 
> Today if CONFIG_OF_FLATTREE is not set then early_init_dt_scan_chosen_stdout() does not exist.

It "exists" in that you return -ENODEV, right?  Look at the place where
you called this function, previously you returned 0, now you return this
function call's return value.

> 2. param_setup_earlycon()
> 
> Today we have 2 handlers for "earlycon" option.  One (in fdt.c) is for the option without args,
> and another (earlycon.c) always expects agrs.  But both return 0 for the opposite cases becasue they
> can not check what another hander returns.
> 
> Now we have just one handler and it can return correct value.

I don't understand.

> >  and now you return -ENODEV, did you
> > test this out?
> 
> Yes, I tested it.

On what platforms?  With what configurations?

thanks,

greg k-h

  reply	other threads:[~2016-03-31 17:37 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-31 13:40 [PATCH v7 0/5] ACPI: parse the SPCR table Aleksey Makarov
2016-03-31 13:40 ` Aleksey Makarov
2016-03-31 13:40 ` [PATCH v7 1/5] of/serial: move earlycon early_param handling to serial Aleksey Makarov
2016-03-31 13:40   ` Aleksey Makarov
     [not found]   ` <1459431629-27934-2-git-send-email-aleksey.makarov-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-03-31 16:32     ` Greg Kroah-Hartman
2016-03-31 16:32       ` Greg Kroah-Hartman
2016-03-31 16:32       ` Greg Kroah-Hartman
2016-03-31 17:04       ` Aleksey Makarov
2016-03-31 17:04         ` Aleksey Makarov
2016-03-31 17:37         ` Greg Kroah-Hartman [this message]
2016-03-31 17:37           ` Greg Kroah-Hartman
2016-03-31 18:21           ` Aleksey Makarov
2016-03-31 18:21             ` Aleksey Makarov
2016-04-04 21:07   ` Peter Hurley
2016-04-04 21:07     ` Peter Hurley
2016-04-29  0:42   ` Greg Kroah-Hartman
2016-04-29  0:42     ` Greg Kroah-Hartman
2016-03-31 13:40 ` [PATCH v7 2/5] ACPICA: Headers: Add new constants for the DBG2 ACPI table Aleksey Makarov
2016-03-31 13:40   ` Aleksey Makarov
2016-03-31 13:40 ` [PATCH v7 3/5] ACPI: parse SPCR and enable matching console Aleksey Makarov
2016-03-31 13:40   ` Aleksey Makarov
2016-04-04 21:23   ` Peter Hurley
2016-04-04 21:23     ` Peter Hurley
2016-04-06 10:31   ` Aleksey Makarov
2016-04-06 10:31     ` Aleksey Makarov
2016-03-31 13:40 ` [PATCH v7 4/5] ARM64: ACPI: enable ACPI_SPCR_TABLE Aleksey Makarov
2016-03-31 13:40   ` Aleksey Makarov
2016-03-31 13:40   ` Aleksey Makarov
2016-03-31 13:40 ` [PATCH v7 5/5] serial: pl011: add console matching function Aleksey Makarov
2016-03-31 13:40   ` Aleksey Makarov
2016-04-04 21:08   ` Peter Hurley
2016-04-04 21:08     ` Peter Hurley
2016-04-29  0:43   ` Greg Kroah-Hartman
2016-04-29  0:43     ` Greg Kroah-Hartman
2016-04-05 16:27 ` [PATCH v7 0/5] ACPI: parse the SPCR table Mark Salter
2016-04-05 16:27   ` Mark Salter
2016-04-06 10:24   ` Aleksey Makarov
2016-04-06 10:24     ` Aleksey Makarov
2016-04-06 10:52     ` Graeme Gregory
2016-04-06 10:52       ` Graeme Gregory
2016-04-06 14:18       ` Mark Salter
2016-04-06 14:18         ` Mark Salter
2016-04-06 14:18         ` Mark Salter
2016-04-06 16:27         ` Peter Hurley
2016-04-06 16:27           ` Peter Hurley
2016-04-06 19:00           ` Mark Salter
2016-04-06 19:00             ` Mark Salter
2016-04-06 19:00             ` Mark Salter
2016-05-12  8:20 ` Jon Masters
2016-05-12  8:20   ` Jon Masters
2016-05-12 11:52   ` Aleksey Makarov
2016-05-12 11:52     ` Aleksey Makarov
2016-05-12 13:08     ` Kefeng Wang
2016-05-12 13:08       ` Kefeng Wang
2016-05-12 13:08       ` Kefeng Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160331173732.GA10567@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=ahs3@redhat.com \
    --cc=aleksey.makarov@linaro.org \
    --cc=andy.shevchenko@gmail.com \
    --cc=cov@codeaurora.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=graeme.gregory@linaro.org \
    --cc=grant.likely@linaro.org \
    --cc=jslaby@suse.com \
    --cc=leif.lindholm@linaro.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=lv.zheng@intel.com \
    --cc=peter@hurleysoftware.com \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=ynorov@caviumnetworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.