mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
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
1 changed files with 11 additions and 0 deletions
|
@ -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)
|
||||
{
|
||||
int count, idx, ret;
|
||||
|
@ -933,6 +941,9 @@ static int scpi_probe(struct platform_device *pdev)
|
|||
struct mbox_client *cl = &pchan->cl;
|
||||
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);
|
||||
of_node_put(shmem);
|
||||
if (ret) {
|
||||
|
|
Loading…
Add table
Reference in a new issue