Skip to content

Commit 83ae1cc

Browse files
plbossartvinodkoul
authored andcommitted
soundwire: cadence: change access to IP_MCP_CMD_BASE
The latest Cadence IP moves MCP_CMD_BASE and MCP_CMD_RESP to the IP_MCP_CMD_BASE and IP_MCP_CMD_RESP registers located in different area and accessed with a fixed offset. Unlike other patches, the fields are not renamed to avoid a very invasive and low-value set of changes. For existing solutions, this is an iso-functionality change. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://lore.kernel.org/r/20230314015410.487311-17-yung-chuan.liao@linux.intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 73a29d3 commit 83ae1cc

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

drivers/soundwire/cadence_master.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask");
129129
#define CDNS_MCP_FIFOSTAT 0x7C
130130
#define CDNS_MCP_RX_FIFO_AVAIL GENMASK(5, 0)
131131

132-
#define CDNS_MCP_CMD_BASE 0x80
133-
#define CDNS_MCP_RESP_BASE 0x80
132+
#define CDNS_IP_MCP_CMD_BASE 0x80 /* IP offset added at run-time */
133+
#define CDNS_IP_MCP_RESP_BASE 0x80 /* IP offset added at run-time */
134134
/* FIFO can hold 8 commands */
135135
#define CDNS_MCP_CMD_LEN 8
136136
#define CDNS_MCP_CMD_WORD_LEN 0x4
@@ -590,10 +590,10 @@ static void cdns_read_response(struct sdw_cdns *cdns)
590590
num_resp = ARRAY_SIZE(cdns->response_buf);
591591
}
592592

593-
cmd_base = CDNS_MCP_CMD_BASE;
593+
cmd_base = CDNS_IP_MCP_CMD_BASE;
594594

595595
for (i = 0; i < num_resp; i++) {
596-
cdns->response_buf[i] = cdns_readl(cdns, cmd_base);
596+
cdns->response_buf[i] = cdns_ip_readl(cdns, cmd_base);
597597
cmd_base += CDNS_MCP_CMD_WORD_LEN;
598598
}
599599
}
@@ -612,7 +612,7 @@ _cdns_xfer_msg(struct sdw_cdns *cdns, struct sdw_msg *msg, int cmd,
612612
cdns->msg_count = count;
613613
}
614614

615-
base = CDNS_MCP_CMD_BASE;
615+
base = CDNS_IP_MCP_CMD_BASE;
616616
addr = msg->addr + offset;
617617

618618
for (i = 0; i < count; i++) {
@@ -625,7 +625,7 @@ _cdns_xfer_msg(struct sdw_cdns *cdns, struct sdw_msg *msg, int cmd,
625625
data |= msg->buf[i + offset];
626626

627627
data |= FIELD_PREP(CDNS_MCP_CMD_SSP_TAG, msg->ssp_sync);
628-
cdns_writel(cdns, base, data);
628+
cdns_ip_writel(cdns, base, data);
629629
base += CDNS_MCP_CMD_WORD_LEN;
630630
}
631631

@@ -673,10 +673,10 @@ cdns_program_scp_addr(struct sdw_cdns *cdns, struct sdw_msg *msg)
673673
data[0] |= msg->addr_page1;
674674
data[1] |= msg->addr_page2;
675675

676-
base = CDNS_MCP_CMD_BASE;
677-
cdns_writel(cdns, base, data[0]);
676+
base = CDNS_IP_MCP_CMD_BASE;
677+
cdns_ip_writel(cdns, base, data[0]);
678678
base += CDNS_MCP_CMD_WORD_LEN;
679-
cdns_writel(cdns, base, data[1]);
679+
cdns_ip_writel(cdns, base, data[1]);
680680

681681
time = wait_for_completion_timeout(&cdns->tx_complete,
682682
msecs_to_jiffies(CDNS_TX_TIMEOUT));

0 commit comments

Comments
 (0)