From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Al Stone <ahs3@redhat.com>
Cc: Hanjun Guo <guohanjun@huawei.com>, Al Stone <al.stone@linaro.org>,
linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
lenb@kernel.org, catalin.marinas@arm.com, will.deacon@arm.com,
tglx@linutronix.de, jason@lakedaemon.net,
linux-kernel@vger.kernel.org, linaro-acpi@lists.linaro.org,
linaro-kernel@lists.linaro.org, patches@linaro.org
Subject: Re: [PATCH v3 1/3] ACPI : introduce macros for using the ACPI specification version
Date: Tue, 07 Jul 2015 00:44:13 +0200 [thread overview]
Message-ID: <2611041.XBiLskjUt3@vostro.rjw.lan> (raw)
In-Reply-To: <559AF8CA.4050009@redhat.com>
On Monday, July 06, 2015 03:53:14 PM Al Stone wrote:
> On 07/03/2015 05:50 PM, Rafael J. Wysocki wrote:
> > On Friday, July 03, 2015 01:22:13 PM Al Stone wrote:
> >> On 07/02/2015 11:23 PM, Hanjun Guo wrote:
> >>> Hi Rafael,
> >>>
> >>> On 2015/7/3 8:21, Rafael J. Wysocki wrote:
> >>>> On Thursday, July 02, 2015 05:48:34 PM Al Stone wrote:
> >>>>> Add the __ACPI_FADT_SPEC_VERSION() helper macro to build a proper version
> >>>>> number from a major and minor revision number. Add also macros that use
> >>>>> the helper to construct the current version from the values in the FADT
> >>>>> (i.e., ACPI_FADT_SPEC_VERSION) and both the 5.1 and 6.0 versions.
> >>>>>
> >>>>> These macros are added in order to simplify retrieving and comparing ACPI
> >>>>> specification version numbers, since this is becoming a more frequent need.
> >>>>> In particular, there are some architectures that require at least a certain
> >>>>> version of the spec, and there are differences in some structure sizes that
> >>>>> have changed with recent versions but can only be tracked by spec version
> >>>>> number.
> >>>>>
> >>>>> Fixes: aeb823bbacc2 (ACPICA: ACPI 6.0: Add changes for FADT table.)
> >>>>> Signed-off-by: Al Stone <al.stone@linaro.org>
> >>>>> ---
> >>>>> include/linux/acpi.h | 10 ++++++++++
> >>>>> 1 file changed, 10 insertions(+)
> >>>>>
> >>>>> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> >>>>> index c471dfc..0e525e8 100644
> >>>>> --- a/include/linux/acpi.h
> >>>>> +++ b/include/linux/acpi.h
> >>>>> @@ -48,6 +48,16 @@
> >>>>> #include <acpi/acpi_io.h>
> >>>>> #include <asm/acpi.h>
> >>>>>
> >>>>> +#define __ACPI_FADT_SPEC_VERSION(major, minor) \
> >>>>> + ((unsigned int)major << 8 | (unsigned int)minor)
> >>>>> +
> >>>>> +#define ACPI_FADT_SPEC_VERSION \
> >>>>> + __ACPI_FADT_SPEC_VERSION(acpi_gbl_FADT.header.revision, \
> >>>>> + acpi_gbl_FADT.minor_revision)
> >>>>> +
> >>>>> +#define ACPI_FADT_SPEC_VERSION_51 __ACPI_FADT_SPEC_VERSION(5, 1)
> >>>>> +#define ACPI_FADT_SPEC_VERSION_60 __ACPI_FADT_SPEC_VERSION(6, 0)
> >>>> I'd add underscores here, eg. ACPI_FADT_SPEC_VERSION_6_0
> >>>
> >>> Agreed.
> >>
> >> Will do. This was a flip of the coin, on my part.
> >>
> >>>> And what if there is 5.2 or even 5.3?
> >>>
> >>> Hmm, do you mean in the future or just now? for both two cases,
> >>> only 5.1 and 5.1 errata (still has the same ACPI version with 5.1)
> >>> will be available, then jump to 6.0 and going forward if new versions
> >>> in the future.
> >>>
> >>> I'm not sure if I understand your question correctly, if
> >>> not, please correct me :)
> >>>
> >>> Thanks
> >>> Hanjun
> >>
> >> I'm not sure I understand the question, either. Traditionally, the
> >> spec versioning has been exclusively linear -- i.e., now that 6.0
> >> has replaced 5.1, there will be no more 5.x. There may be errata
> >> published (e.g., there was a 5.1A, and a 6.0A is forthcoming) but
> >> the errata are not encoded in tables anywhere since they are meant
> >> only as corrections to the base version. This is unlikely to change,
> >> but not impossible, of course :).
> >>
> >> The only reason for putting in macros for 5.1 and 6.0 is that those
> >> are the versions that I'm concerned with for this particular fix and
> >> I know I will use them. If others are needed, I'd have those that
> >> need them add them.
> >
> > It seems to me that you only need to compare acpi_gbl_FADT.header.revision
> > with 6 for this fix, though (if less than 6, use the old way, or use the
> > new way otherwise).
> >
> > Isn't that the case?
> >
> > Rafael
> >
>
> Ah, sorry for being a bit dense. Yes, on arm64 we only support 5.1 or
> later so for now, less than 6 is a sufficient test. The 5.0 spec defines
> yet a third size for the GICC subtable with the same MADT version number
> (40 bytes) but we won't initialize ACPI if we have anything before 5.1.
OK
> So, I could take this patch out of the set and reduce patch 2/3 somewhat
> by just comparing against acpi_gbl_FADT.header.revision. I think that's
> what I'll do unless you think these macros have intrinsic value for other
> reasons.
That would be fine by me, so please do it.
Thanks,
Rafael
next prev parent reply other threads:[~2015-07-06 22:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-02 23:48 [PATCH v3 0/3] Correct for ACPI 5.1->6.0 spec changes in MADT GICC entries Al Stone
2015-07-02 23:48 ` [PATCH v3 1/3] ACPI : introduce macros for using the ACPI specification version Al Stone
2015-07-03 0:21 ` Rafael J. Wysocki
2015-07-03 5:23 ` Hanjun Guo
2015-07-03 19:22 ` Al Stone
2015-07-03 23:50 ` Rafael J. Wysocki
2015-07-06 21:53 ` Al Stone
2015-07-06 22:44 ` Rafael J. Wysocki [this message]
2015-07-03 5:16 ` Hanjun Guo
2015-07-03 19:32 ` Al Stone
2015-07-02 23:48 ` [PATCH v3 2/3] ACPI / ARM64: add BAD_MADT_GICC_ENTRY() macro Al Stone
2015-07-03 14:06 ` Catalin Marinas
2015-07-03 19:51 ` Al Stone
2015-07-03 23:54 ` Rafael J. Wysocki
2015-07-06 10:33 ` Catalin Marinas
2015-07-06 21:20 ` Al Stone
2015-07-02 23:48 ` [PATCH v3 3/3] ACPI / ARM64 : use the new BAD_MADT_GICC_ENTRY macro Al Stone
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=2611041.XBiLskjUt3@vostro.rjw.lan \
--to=rjw@rjwysocki.net \
--cc=ahs3@redhat.com \
--cc=al.stone@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=guohanjun@huawei.com \
--cc=jason@lakedaemon.net \
--cc=lenb@kernel.org \
--cc=linaro-acpi@lists.linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@linaro.org \
--cc=tglx@linutronix.de \
--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 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).