linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


  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).