firmware: arm_scpi: Add compatibility checks for shmem node
The shared memory node used for communication between the firmware and the OS should be compatible with one of the following: - amlogic,meson-gxbb-scp-shmem - amlogic,meson-axg-scp-shmem - arm,juno-scp-shmem - arm,scp-shmem Add the check for the same while parsing the node before fetching the memory regions. Link: https://lore.kernel.org/r/20210602073851.1005607-1-sudeep.holla@arm.com Cc: Rob Herring <robh+dt@kernel.org> Cc: Kevin Hilman <khilman@baylibre.com> Cc: Neil Armstrong <narmstrong@baylibre.com> Cc: Jerome Brunet <jbrunet@baylibre.com> Reviewed-by: Cristian Marussi <cristian.marussi@arm.com> Tested-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This commit is contained in:
parent
ab7766b728
commit
ed7ecb8839
|
@ -897,6 +897,14 @@ static const struct of_device_id legacy_scpi_of_match[] = {
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct of_device_id shmem_of_match[] __maybe_unused = {
|
||||||
|
{ .compatible = "amlogic,meson-gxbb-scp-shmem", },
|
||||||
|
{ .compatible = "amlogic,meson-axg-scp-shmem", },
|
||||||
|
{ .compatible = "arm,juno-scp-shmem", },
|
||||||
|
{ .compatible = "arm,scp-shmem", },
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
static int scpi_probe(struct platform_device *pdev)
|
static int scpi_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int count, idx, ret;
|
int count, idx, ret;
|
||||||
|
@ -933,6 +941,9 @@ static int scpi_probe(struct platform_device *pdev)
|
||||||
struct mbox_client *cl = &pchan->cl;
|
struct mbox_client *cl = &pchan->cl;
|
||||||
struct device_node *shmem = of_parse_phandle(np, "shmem", idx);
|
struct device_node *shmem = of_parse_phandle(np, "shmem", idx);
|
||||||
|
|
||||||
|
if (!of_match_node(shmem_of_match, shmem))
|
||||||
|
return -ENXIO;
|
||||||
|
|
||||||
ret = of_address_to_resource(shmem, 0, &res);
|
ret = of_address_to_resource(shmem, 0, &res);
|
||||||
of_node_put(shmem);
|
of_node_put(shmem);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|
Loading…
Reference in New Issue