hwmon: (xgene) Migrate to use generic PCC shmem related macros
Use the newly defined common and generic PCC shared memory region related macros in this driver to replace the locally defined ones. Cc: Jean Delvare <jdelvare@suse.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20230927-pcc_defines-v2-3-0b8ffeaef2e5@arm.com Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This commit is contained in:
parent
89a4ad1f43
commit
2cf39b806b
@ -57,12 +57,6 @@
|
|||||||
(MSG_TYPE_SET(MSG_TYPE_PWRMGMT) | \
|
(MSG_TYPE_SET(MSG_TYPE_PWRMGMT) | \
|
||||||
MSG_SUBTYPE_SET(hndl) | TPC_CMD_SET(cmd) | type)
|
MSG_SUBTYPE_SET(hndl) | TPC_CMD_SET(cmd) | type)
|
||||||
|
|
||||||
/* PCC defines */
|
|
||||||
#define PCC_SIGNATURE_MASK 0x50424300
|
|
||||||
#define PCCC_GENERATE_DB_INT BIT(15)
|
|
||||||
#define PCCS_CMD_COMPLETE BIT(0)
|
|
||||||
#define PCCS_SCI_DOORBEL BIT(1)
|
|
||||||
#define PCCS_PLATFORM_NOTIFICATION BIT(3)
|
|
||||||
/*
|
/*
|
||||||
* Arbitrary retries in case the remote processor is slow to respond
|
* Arbitrary retries in case the remote processor is slow to respond
|
||||||
* to PCC commands
|
* to PCC commands
|
||||||
@ -142,15 +136,15 @@ static int xgene_hwmon_pcc_rd(struct xgene_hwmon_dev *ctx, u32 *msg)
|
|||||||
|
|
||||||
/* Write signature for subspace */
|
/* Write signature for subspace */
|
||||||
WRITE_ONCE(generic_comm_base->signature,
|
WRITE_ONCE(generic_comm_base->signature,
|
||||||
cpu_to_le32(PCC_SIGNATURE_MASK | ctx->mbox_idx));
|
cpu_to_le32(PCC_SIGNATURE | ctx->mbox_idx));
|
||||||
|
|
||||||
/* Write to the shared command region */
|
/* Write to the shared command region */
|
||||||
WRITE_ONCE(generic_comm_base->command,
|
WRITE_ONCE(generic_comm_base->command,
|
||||||
cpu_to_le16(MSG_TYPE(msg[0]) | PCCC_GENERATE_DB_INT));
|
cpu_to_le16(MSG_TYPE(msg[0]) | PCC_CMD_GENERATE_DB_INTR));
|
||||||
|
|
||||||
/* Flip CMD COMPLETE bit */
|
/* Flip CMD COMPLETE bit */
|
||||||
val = le16_to_cpu(READ_ONCE(generic_comm_base->status));
|
val = le16_to_cpu(READ_ONCE(generic_comm_base->status));
|
||||||
val &= ~PCCS_CMD_COMPLETE;
|
val &= ~PCC_STATUS_CMD_COMPLETE;
|
||||||
WRITE_ONCE(generic_comm_base->status, cpu_to_le16(val));
|
WRITE_ONCE(generic_comm_base->status, cpu_to_le16(val));
|
||||||
|
|
||||||
/* Copy the message to the PCC comm space */
|
/* Copy the message to the PCC comm space */
|
||||||
@ -544,7 +538,7 @@ static void xgene_hwmon_pcc_rx_cb(struct mbox_client *cl, void *msg)
|
|||||||
msg = generic_comm_base + 1;
|
msg = generic_comm_base + 1;
|
||||||
/* Check if platform sends interrupt */
|
/* Check if platform sends interrupt */
|
||||||
if (!xgene_word_tst_and_clr(&generic_comm_base->status,
|
if (!xgene_word_tst_and_clr(&generic_comm_base->status,
|
||||||
PCCS_SCI_DOORBEL))
|
PCC_STATUS_SCI_DOORBELL))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -566,7 +560,7 @@ static void xgene_hwmon_pcc_rx_cb(struct mbox_client *cl, void *msg)
|
|||||||
TPC_CMD(((u32 *)msg)[0]) == TPC_ALARM))) {
|
TPC_CMD(((u32 *)msg)[0]) == TPC_ALARM))) {
|
||||||
/* Check if platform completes command */
|
/* Check if platform completes command */
|
||||||
if (xgene_word_tst_and_clr(&generic_comm_base->status,
|
if (xgene_word_tst_and_clr(&generic_comm_base->status,
|
||||||
PCCS_CMD_COMPLETE)) {
|
PCC_STATUS_CMD_COMPLETE)) {
|
||||||
ctx->sync_msg.msg = ((u32 *)msg)[0];
|
ctx->sync_msg.msg = ((u32 *)msg)[0];
|
||||||
ctx->sync_msg.param1 = ((u32 *)msg)[1];
|
ctx->sync_msg.param1 = ((u32 *)msg)[1];
|
||||||
ctx->sync_msg.param2 = ((u32 *)msg)[2];
|
ctx->sync_msg.param2 = ((u32 *)msg)[2];
|
||||||
|
Loading…
Reference in New Issue
Block a user