All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aleksey Makarov <amakarov.linux@gmail.com>
To: Matthias Brugger <matthias.bgg@gmail.com>,
	Graeme Gregory <gg@slimlogic.co.uk>
Cc: Aleksey Makarov <aleksey.makarov@linaro.org>,
	linux-acpi@vger.kernel.org, Russell King <linux@arm.linux.org.uk>,
	Graeme Gregory <graeme.gregory@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	linux-kernel@vger.kernel.org,
	Leif Lindholm <leif.lindholm@linaro.org>,
	Christopher Covington <cov@codeaurora.org>,
	linux-serial@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>, Al Stone <ahs3@redhat.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/8] arm64: move acpi/dt decision earlier in boot process
Date: Wed, 24 Feb 2016 19:09:59 +0300	[thread overview]
Message-ID: <56CDD5D7.5070703@gmail.com> (raw)
In-Reply-To: <56CC6EA6.4020909@gmail.com>

Hi Matthias,

Thank you for review.  The bug is fixed in the next version of the patchset.

Aleksey Makarov

On 02/23/2016 05:37 PM, Matthias Brugger wrote:
> 
> 
> On 23/02/16 14:57, Graeme Gregory wrote:
>> On Mon, Feb 22, 2016 at 04:45:17PM +0100, Matthias Brugger wrote:
>>>
>>>
>>> On 22/02/16 14:46, Aleksey Makarov wrote:
>>>> From: Leif Lindholm <leif.lindholm@linaro.org>
>>>>
>>>> In order to support selecting earlycon via either ACPI or DT, move
>>>> the decision on whether to attempt ACPI configuration into the
>>>> early_param handling. Then make acpi_boot_table_init() bail out if
>>>> acpi_disabled.
>>>>
>>>> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
>>>> ---
>>>>   arch/arm64/kernel/acpi.c | 54 ++++++++++++++++++++++++++----------------------
>>>>   1 file changed, 29 insertions(+), 25 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
>>>> index d1ce8e2..7a944f7 100644
>>>> --- a/arch/arm64/kernel/acpi.c
>>>> +++ b/arch/arm64/kernel/acpi.c
>>>> @@ -44,6 +44,19 @@ EXPORT_SYMBOL(acpi_pci_disabled);
>>>>   static bool param_acpi_off __initdata;
>>>>   static bool param_acpi_force __initdata;
>>>>
>>>> +static int __init dt_scan_depth1_nodes(unsigned long node,
>>>> +                       const char *uname, int depth,
>>>> +                       void *data)
>>>> +{
>>>> +    /*
>>>> +     * Return 1 as soon as we encounter a node at depth 1 that is
>>>> +     * not the /chosen node.
>>>> +     */
>>>> +    if (depth == 1 && (strcmp(uname, "chosen") != 0))
>>>> +        return 1;
>>>> +    return 0;
>>>> +}
>>>> +
>>>>   static int __init parse_acpi(char *arg)
>>>>   {
>>>>       if (!arg)
>>>> @@ -57,23 +70,27 @@ static int __init parse_acpi(char *arg)
>>>>       else
>>>>           return -EINVAL;    /* Core will print when we return error */
> 
> If argument of parse_acpi is neither "off" nor "force" we return with -EINVAL here. Actually parse_acpi will be only called if we pass "acpi=" as kernel parameter. Therefor we can get rid of "acpi=off" as this is the _new_ standard. IMHO we should introduce "acpi=on" if we really want to change the standard behavior.
> 
>>>>
>>>> -    return 0;
>>>> -}
>>>> -early_param("acpi", parse_acpi);
>>>> +    /*
>>>> +     * Enable ACPI instead of device tree unless
>>>> +     * - ACPI has been disabled explicitly (acpi=off), or
>>>> +     * - the device tree is not empty (it has more than just a /chosen node)
>>>> +     *   and ACPI has not been force enabled (acpi=force)
>>>> +     */
>>>> +    if (param_acpi_off ||
>>>> +        (!param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
>>>> +        return 0;
> 
> Or param_acpi_off is true or param_acpi_force is true, the depth of the DT has no influence.
> 
>>>>
>>>> -static int __init dt_scan_depth1_nodes(unsigned long node,
>>>> -                       const char *uname, int depth,
>>>> -                       void *data)
>>>> -{
>>>>       /*
>>>> -     * Return 1 as soon as we encounter a node at depth 1 that is
>>>> -     * not the /chosen node.
>>>> +     * ACPI is disabled at this point. Enable it in order to parse
>>>> +     * the ACPI tables and carry out sanity checks
>>>>        */
>>>> -    if (depth == 1 && (strcmp(uname, "chosen") != 0))
>>>> -        return 1;
>>>> +    enable_acpi();
>>>> +
>>>
>>> So we only enable ACPI if we pass acpi=force as kernel parameter?
>>> I'm not sure if this is what you wanted to do.
>>>
>>
>> The current preference from ARM64 maintainers was that is both ACPI
>> tables and a DT were presented then DT should take precedence.
>>
>> With no DT provided the code should use ACPI.
> 
> From my understanding in this patch that can never happen.
> 
> On which version is this set based on?
> I'm looking on v4.5-rc5 ATM.
> 
> Regards,
> Matthias
> -- 
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: amakarov.linux@gmail.com (Aleksey Makarov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/8] arm64: move acpi/dt decision earlier in boot process
Date: Wed, 24 Feb 2016 19:09:59 +0300	[thread overview]
Message-ID: <56CDD5D7.5070703@gmail.com> (raw)
In-Reply-To: <56CC6EA6.4020909@gmail.com>

Hi Matthias,

Thank you for review.  The bug is fixed in the next version of the patchset.

Aleksey Makarov

On 02/23/2016 05:37 PM, Matthias Brugger wrote:
> 
> 
> On 23/02/16 14:57, Graeme Gregory wrote:
>> On Mon, Feb 22, 2016 at 04:45:17PM +0100, Matthias Brugger wrote:
>>>
>>>
>>> On 22/02/16 14:46, Aleksey Makarov wrote:
>>>> From: Leif Lindholm <leif.lindholm@linaro.org>
>>>>
>>>> In order to support selecting earlycon via either ACPI or DT, move
>>>> the decision on whether to attempt ACPI configuration into the
>>>> early_param handling. Then make acpi_boot_table_init() bail out if
>>>> acpi_disabled.
>>>>
>>>> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
>>>> ---
>>>>   arch/arm64/kernel/acpi.c | 54 ++++++++++++++++++++++++++----------------------
>>>>   1 file changed, 29 insertions(+), 25 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
>>>> index d1ce8e2..7a944f7 100644
>>>> --- a/arch/arm64/kernel/acpi.c
>>>> +++ b/arch/arm64/kernel/acpi.c
>>>> @@ -44,6 +44,19 @@ EXPORT_SYMBOL(acpi_pci_disabled);
>>>>   static bool param_acpi_off __initdata;
>>>>   static bool param_acpi_force __initdata;
>>>>
>>>> +static int __init dt_scan_depth1_nodes(unsigned long node,
>>>> +                       const char *uname, int depth,
>>>> +                       void *data)
>>>> +{
>>>> +    /*
>>>> +     * Return 1 as soon as we encounter a node at depth 1 that is
>>>> +     * not the /chosen node.
>>>> +     */
>>>> +    if (depth == 1 && (strcmp(uname, "chosen") != 0))
>>>> +        return 1;
>>>> +    return 0;
>>>> +}
>>>> +
>>>>   static int __init parse_acpi(char *arg)
>>>>   {
>>>>       if (!arg)
>>>> @@ -57,23 +70,27 @@ static int __init parse_acpi(char *arg)
>>>>       else
>>>>           return -EINVAL;    /* Core will print when we return error */
> 
> If argument of parse_acpi is neither "off" nor "force" we return with -EINVAL here. Actually parse_acpi will be only called if we pass "acpi=" as kernel parameter. Therefor we can get rid of "acpi=off" as this is the _new_ standard. IMHO we should introduce "acpi=on" if we really want to change the standard behavior.
> 
>>>>
>>>> -    return 0;
>>>> -}
>>>> -early_param("acpi", parse_acpi);
>>>> +    /*
>>>> +     * Enable ACPI instead of device tree unless
>>>> +     * - ACPI has been disabled explicitly (acpi=off), or
>>>> +     * - the device tree is not empty (it has more than just a /chosen node)
>>>> +     *   and ACPI has not been force enabled (acpi=force)
>>>> +     */
>>>> +    if (param_acpi_off ||
>>>> +        (!param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
>>>> +        return 0;
> 
> Or param_acpi_off is true or param_acpi_force is true, the depth of the DT has no influence.
> 
>>>>
>>>> -static int __init dt_scan_depth1_nodes(unsigned long node,
>>>> -                       const char *uname, int depth,
>>>> -                       void *data)
>>>> -{
>>>>       /*
>>>> -     * Return 1 as soon as we encounter a node at depth 1 that is
>>>> -     * not the /chosen node.
>>>> +     * ACPI is disabled at this point. Enable it in order to parse
>>>> +     * the ACPI tables and carry out sanity checks
>>>>        */
>>>> -    if (depth == 1 && (strcmp(uname, "chosen") != 0))
>>>> -        return 1;
>>>> +    enable_acpi();
>>>> +
>>>
>>> So we only enable ACPI if we pass acpi=force as kernel parameter?
>>> I'm not sure if this is what you wanted to do.
>>>
>>
>> The current preference from ARM64 maintainers was that is both ACPI
>> tables and a DT were presented then DT should take precedence.
>>
>> With no DT provided the code should use ACPI.
> 
> From my understanding in this patch that can never happen.
> 
> On which version is this set based on?
> I'm looking on v4.5-rc5 ATM.
> 
> Regards,
> Matthias
> -- 
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-02-24 16:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-22 13:46 [PATCH 0/8] ACPI: parse the DBG2 table Aleksey Makarov
2016-02-22 13:46 ` Aleksey Makarov
2016-02-22 13:46 ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 1/8] arm64: move acpi/dt decision earlier in boot process Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 15:45   ` Matthias Brugger
2016-02-22 15:45     ` Matthias Brugger
2016-02-23 13:57     ` Graeme Gregory
2016-02-23 13:57       ` Graeme Gregory
2016-02-23 14:37       ` Matthias Brugger
2016-02-23 14:37         ` Matthias Brugger
2016-02-24 16:09         ` Aleksey Makarov [this message]
2016-02-24 16:09           ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 2/8] of/serial: move earlycon early_param handling to serial Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
     [not found]   ` <1456148818-26257-3-git-send-email-aleksey.makarov-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-02-22 15:09     ` kbuild test robot
2016-02-22 15:09       ` kbuild test robot
2016-02-22 15:09       ` kbuild test robot
2016-02-22 13:46 ` [PATCH 3/8] ACPI: add definitions of DBG2 subtypes Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 4/8] ACPI: genaralize iterating over subtables in ACPI_PROBE_TABLE() Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 5/8] ACPI: parse DBG2 table Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 6/8] ACPI: serial: implement earlycon on ACPI DBG2 port Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 7/8] ACPI: enable ACPI_DBG2_TABLE on ARM64 Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov
2016-02-22 13:46 ` [PATCH 8/8] serial: pl011: add ACPI DBG2 serial port Aleksey Makarov
2016-02-22 13:46   ` Aleksey Makarov

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=56CDD5D7.5070703@gmail.com \
    --to=amakarov.linux@gmail.com \
    --cc=ahs3@redhat.com \
    --cc=aleksey.makarov@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=cov@codeaurora.org \
    --cc=gg@slimlogic.co.uk \
    --cc=graeme.gregory@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=leif.lindholm@linaro.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=matthias.bgg@gmail.com \
    --cc=rjw@rjwysocki.net \
    --cc=will.deacon@arm.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.