firmware: scmi: prepare scmi uclass API to multi-channel
Changes SCMI driver API function devm_scmi_process_msg() to add
an SCMI channel reference argument for when SCMI agent supports
SCMI protocol specific channels. First argument of devm_scmi_process_msg()
is also change to point to the caller SCMI protocol device rather
than its parent device (the SCMI agent device).
The argument is a pointer to opaque struct scmi_channel known from
the SCMI transport drivers. It is currently unused and caller a pass
NULL value. A later change will enable such support once SCMI protocol
drivers have means to get the channel reference during initialization.
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Sean Anderson <seanga2@gmail.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
index 5aaabcf..0d0bb72 100644
--- a/drivers/clk/clk_scmi.c
+++ b/drivers/clk/clk_scmi.c
@@ -24,7 +24,7 @@
};
int ret;
- ret = devm_scmi_process_msg(dev, &msg);
+ ret = devm_scmi_process_msg(dev, NULL, &msg);
if (ret)
return ret;
@@ -49,7 +49,7 @@
};
int ret;
- ret = devm_scmi_process_msg(dev, &msg);
+ ret = devm_scmi_process_msg(dev, NULL, &msg);
if (ret)
return ret;
@@ -70,7 +70,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(clk->dev, &msg);
+ ret = devm_scmi_process_msg(clk->dev, NULL, &msg);
if (ret)
return ret;
@@ -98,7 +98,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(clk->dev, &msg);
+ ret = devm_scmi_process_msg(clk->dev, NULL, &msg);
if (ret < 0)
return ret;
@@ -123,7 +123,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(clk->dev, &msg);
+ ret = devm_scmi_process_msg(clk->dev, NULL, &msg);
if (ret < 0)
return ret;
diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c b/drivers/firmware/scmi/scmi_agent-uclass.c
index 3819f2f..93cfc9c 100644
--- a/drivers/firmware/scmi/scmi_agent-uclass.c
+++ b/drivers/firmware/scmi/scmi_agent-uclass.c
@@ -114,7 +114,8 @@
return (const struct scmi_agent_ops *)dev->driver->ops;
}
-int devm_scmi_process_msg(struct udevice *dev, struct scmi_msg *msg)
+int devm_scmi_process_msg(struct udevice *dev, struct scmi_channel *channel,
+ struct scmi_msg *msg)
{
const struct scmi_agent_ops *ops;
struct udevice *parent = dev;
diff --git a/drivers/power/regulator/scmi_regulator.c b/drivers/power/regulator/scmi_regulator.c
index 2966bdc..3325dda 100644
--- a/drivers/power/regulator/scmi_regulator.c
+++ b/drivers/power/regulator/scmi_regulator.c
@@ -38,7 +38,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(dev, &msg);
+ ret = devm_scmi_process_msg(dev, NULL, &msg);
if (ret)
return ret;
@@ -61,7 +61,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(dev, &msg);
+ ret = devm_scmi_process_msg(dev, NULL, &msg);
if (ret < 0)
return ret;
@@ -85,7 +85,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(dev, &msg);
+ ret = devm_scmi_process_msg(dev, NULL, &msg);
if (ret < 0)
return ret;
@@ -104,7 +104,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(dev, &msg);
+ ret = devm_scmi_process_msg(dev, NULL, &msg);
if (ret < 0)
return ret;
@@ -147,7 +147,7 @@
/* Check voltage domain is known from SCMI server */
in.domain_id = pdata->domain_id;
- ret = devm_scmi_process_msg(dev, &scmi_msg);
+ ret = devm_scmi_process_msg(dev, NULL, &scmi_msg);
if (ret) {
dev_err(dev, "Failed to query voltage domain %u: %d\n",
pdata->domain_id, ret);
diff --git a/drivers/reset/reset-scmi.c b/drivers/reset/reset-scmi.c
index 81d195a..30b26ec 100644
--- a/drivers/reset/reset-scmi.c
+++ b/drivers/reset/reset-scmi.c
@@ -26,7 +26,7 @@
in, out);
int ret;
- ret = devm_scmi_process_msg(rst->dev, &msg);
+ ret = devm_scmi_process_msg(rst->dev, NULL, &msg);
if (ret)
return ret;
@@ -58,7 +58,7 @@
* We don't really care about the attribute, just check
* the reset domain exists.
*/
- ret = devm_scmi_process_msg(rst->dev, &msg);
+ ret = devm_scmi_process_msg(rst->dev, NULL, &msg);
if (ret)
return ret;