mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 07:31:15 +00:00
firmware: scmi: add a version check against base protocol
In SCMI base protocol version 2 (0x20000), new interfaces, BASE_SET_DEVICE_PERMISSIONS/BASE_SET_PROTOCOL_PERMISSIONS/ BASE_RESET_AGENT_CONFIGURATION, were added. Moreover, the api of BASE_DISCOVER_AGENT was changed to support self-agent discovery. So the driver expects SCMI firmware support version 2 of base protocol. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
This commit is contained in:
parent
ec8727b7e1
commit
58543c0d41
1 changed files with 8 additions and 0 deletions
|
@ -481,6 +481,7 @@ static int scmi_base_reset_agent_configuration_int(struct udevice *dev,
|
||||||
*/
|
*/
|
||||||
static int scmi_base_probe(struct udevice *dev)
|
static int scmi_base_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
|
u32 version;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = devm_scmi_of_get_channel(dev);
|
ret = devm_scmi_of_get_channel(dev);
|
||||||
|
@ -488,6 +489,13 @@ static int scmi_base_probe(struct udevice *dev)
|
||||||
dev_err(dev, "get_channel failed\n");
|
dev_err(dev, "get_channel failed\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
ret = scmi_base_protocol_version_int(dev, &version);
|
||||||
|
if (ret) {
|
||||||
|
dev_err(dev, "getting protocol version failed\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
if (version < SCMI_BASE_PROTOCOL_VERSION)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue