Message ID | 20230926-pcc_defines-v1-1-0f925a1658fd@arm.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | ACPI: PCC: Define and use the common PCC shared memory regions related macros | expand |
Hi Sudeep, 在 2023/9/26 20:28, Sudeep Holla 写道: > Define the common macros to use when referring to various bitfields in > the PCC generic communications channel command and status fields. Can you define the bit0 macros in the "flags" for Extended PCC Subspace Shared Memory Region? > > Currently different drivers that need to use these bitfields have defined > these locally. This common macro is intended to consolidate and replace > those. > > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> > --- > include/acpi/pcc.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/acpi/pcc.h b/include/acpi/pcc.h > index 73e806fe7ce7..66d9934c2ee4 100644 > --- a/include/acpi/pcc.h > +++ b/include/acpi/pcc.h > @@ -18,7 +18,18 @@ struct pcc_mbox_chan { > u16 min_turnaround_time; > }; > > +/* Generic Communications Channel Shared Memory Region */ > +#define PCC_SIGNATURE 0x50424300 Why is this signature 0x50424300? In ACPI spec, this signature is all 0x50434303. > +/* Generic Communications Channel Command Field */ > +#define PCC_CMD_GENERATE_DB_INTR BIT(15) > +/* Generic Communications Channel Status Field */ > +#define PCC_STATUS_CMD_COMPLETE BIT(0) > +#define PCC_STATUS_SCI_DOORBELL BIT(1) > +#define PCC_STATUS_ERROR BIT(2) > +#define PCC_STATUS_PLATFORM_NOTIFY BIT(3) > + > #define MAX_PCC_SUBSPACES 256 > + > #ifdef CONFIG_PCC > extern struct pcc_mbox_chan * > pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id); >
On Wed, Sep 27, 2023 at 10:07:15AM +0800, lihuisong (C) wrote: > Hi Sudeep, > > 在 2023/9/26 20:28, Sudeep Holla 写道: > > Define the common macros to use when referring to various bitfields in > > the PCC generic communications channel command and status fields. > > Can you define the bit0 macros in the "flags" for Extended PCC Subspace > Shared Memory Region? Sure I will take a look and include it in v2 if applicable. > > > > Currently different drivers that need to use these bitfields have defined > > these locally. This common macro is intended to consolidate and replace > > those. > > > > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> > > --- > > include/acpi/pcc.h | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/include/acpi/pcc.h b/include/acpi/pcc.h > > index 73e806fe7ce7..66d9934c2ee4 100644 > > --- a/include/acpi/pcc.h > > +++ b/include/acpi/pcc.h > > @@ -18,7 +18,18 @@ struct pcc_mbox_chan { > > u16 min_turnaround_time; > > }; > > +/* Generic Communications Channel Shared Memory Region */ > > +#define PCC_SIGNATURE 0x50424300 > Why is this signature 0x50424300? It is as per the specification. > In ACPI spec, this signature is all 0x50434303. No, not exactly. It is just an example. The PCC signature - The signature of a subspace is computed by a bitwise-or of the value 0x50434300 with the subspace ID. For example, subspace 3 has signature 0x50434303 And I see the driver you mentioned(drivers/soc/hisilicon/kunpeng_hccs.c) is doing the right thing. I am bit confused as why you being the author of the driver are now confused.
在 2023/9/27 21:59, Sudeep Holla 写道: > On Wed, Sep 27, 2023 at 10:07:15AM +0800, lihuisong (C) wrote: >> Hi Sudeep, >> >> 在 2023/9/26 20:28, Sudeep Holla 写道: >>> Define the common macros to use when referring to various bitfields in >>> the PCC generic communications channel command and status fields. >> Can you define the bit0 macros in the "flags" for Extended PCC Subspace >> Shared Memory Region? > Sure I will take a look and include it in v2 if applicable. Thanks > >>> Currently different drivers that need to use these bitfields have defined >>> these locally. This common macro is intended to consolidate and replace >>> those. >>> >>> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> >>> --- >>> include/acpi/pcc.h | 11 +++++++++++ >>> 1 file changed, 11 insertions(+) >>> >>> diff --git a/include/acpi/pcc.h b/include/acpi/pcc.h >>> index 73e806fe7ce7..66d9934c2ee4 100644 >>> --- a/include/acpi/pcc.h >>> +++ b/include/acpi/pcc.h >>> @@ -18,7 +18,18 @@ struct pcc_mbox_chan { >>> u16 min_turnaround_time; >>> }; >>> +/* Generic Communications Channel Shared Memory Region */ >>> +#define PCC_SIGNATURE 0x50424300 >> Why is this signature 0x50424300? > It is as per the specification. > >> In ACPI spec, this signature is all 0x50434303. > No, not exactly. It is just an example. > The PCC signature - The signature of a subspace is computed by a bitwise-or > of the value 0x50434300 with the subspace ID. For example, subspace 3 has > signature 0x50434303 Sorry for my mistake. I know this. I mean, why doesn't the following macro follow spec and define this signature as 0x504*3*430. "#define PCC_SIGNATURE **0x504*2*4300*"* Because it seems that all version of ACPI spec is 0x5043430. > > And I see the driver you mentioned(drivers/soc/hisilicon/kunpeng_hccs.c) > is doing the right thing. I am bit confused as why you being the author > of the driver are now confused. I used 0x50424300 instead of 0x50424300 according to the spec. >
On Thu, Sep 28, 2023 at 11:49:25AM +0800, lihuisong (C) wrote: > > 在 2023/9/27 21:59, Sudeep Holla 写道: > > On Wed, Sep 27, 2023 at 10:07:15AM +0800, lihuisong (C) wrote: [...] > > > > +/* Generic Communications Channel Shared Memory Region */ > > > > +#define PCC_SIGNATURE 0x50424300 > > > Why is this signature 0x50424300? > > It is as per the specification. > > > > > In ACPI spec, this signature is all 0x50434303. > > No, not exactly. It is just an example. > > The PCC signature - The signature of a subspace is computed by a bitwise-or > > of the value 0x50434300 with the subspace ID. For example, subspace 3 has > > signature 0x50434303 > Sorry for my mistake. I know this. > I mean, why doesn't the following macro follow spec and define this > signature as 0x504*3*430. > "#define PCC_SIGNATURE **0x504*2*4300*"* > Because it seems that all version of ACPI spec is 0x5043430. Sorry my mistake. Stupidly the existing drivers have it wrong and I just copied them without paying much attention. I will fix it up. It must be 0x50434300 instead of 0x50424300. If you have no other comments, can you please ack v2 patch 4/4 changing soc kunpeng_hccs driver. I will fixup the PCC_SIGNATURE and send it as part of my PR to Rafael. Refer [1] for the change in PCC_SIGNATURE, sorry for missing the point. I was confident that the existing code is correct :), but I am wrong.
在 2023/9/28 19:11, Sudeep Holla 写道: > On Thu, Sep 28, 2023 at 11:49:25AM +0800, lihuisong (C) wrote: >> 在 2023/9/27 21:59, Sudeep Holla 写道: >>> On Wed, Sep 27, 2023 at 10:07:15AM +0800, lihuisong (C) wrote: > [...] > >>>>> +/* Generic Communications Channel Shared Memory Region */ >>>>> +#define PCC_SIGNATURE 0x50424300 >>>> Why is this signature 0x50424300? >>> It is as per the specification. >>> >>>> In ACPI spec, this signature is all 0x50434303. >>> No, not exactly. It is just an example. >>> The PCC signature - The signature of a subspace is computed by a bitwise-or >>> of the value 0x50434300 with the subspace ID. For example, subspace 3 has >>> signature 0x50434303 >> Sorry for my mistake. I know this. >> I mean, why doesn't the following macro follow spec and define this >> signature as 0x504*3*430. >> "#define PCC_SIGNATURE **0x504*2*4300*"* >> Because it seems that all version of ACPI spec is 0x5043430. > Sorry my mistake. Stupidly the existing drivers have it wrong and I just > copied them without paying much attention. I will fix it up. It must be > 0x50434300 instead of 0x50424300. If you have no other comments, can you They are very similar.
diff --git a/include/acpi/pcc.h b/include/acpi/pcc.h index 73e806fe7ce7..66d9934c2ee4 100644 --- a/include/acpi/pcc.h +++ b/include/acpi/pcc.h @@ -18,7 +18,18 @@ struct pcc_mbox_chan { u16 min_turnaround_time; }; +/* Generic Communications Channel Shared Memory Region */ +#define PCC_SIGNATURE 0x50424300 +/* Generic Communications Channel Command Field */ +#define PCC_CMD_GENERATE_DB_INTR BIT(15) +/* Generic Communications Channel Status Field */ +#define PCC_STATUS_CMD_COMPLETE BIT(0) +#define PCC_STATUS_SCI_DOORBELL BIT(1) +#define PCC_STATUS_ERROR BIT(2) +#define PCC_STATUS_PLATFORM_NOTIFY BIT(3) + #define MAX_PCC_SUBSPACES 256 + #ifdef CONFIG_PCC extern struct pcc_mbox_chan * pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id);
Define the common macros to use when referring to various bitfields in the PCC generic communications channel command and status fields. Currently different drivers that need to use these bitfields have defined these locally. This common macro is intended to consolidate and replace those. Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> --- include/acpi/pcc.h | 11 +++++++++++ 1 file changed, 11 insertions(+)