diff options
author | Jon Hunter <jonathanh@nvidia.com> | 2020-06-18 12:54:38 +0100 |
---|---|---|
committer | Tom Warren <twarren@nvidia.com> | 2020-06-18 13:14:50 -0700 |
commit | fb264efbd2fef45ca96630c355cbe30957132f3f (patch) | |
tree | 9579d14a9995bfe5a3ea29fa88abaf982a82e315 /drivers | |
parent | 9cb895203a46654f7ee6dd95be5c8ab05e4dfbd3 (diff) |
firmware: PSCI: Fix PSCI support for OF live trees
When CONFIG_OF_LIVE is enabled, dev_of_offset() cannot be used and
if used returns an invalid offset. This causes the call to
fdt_stringlist_get() in the psci_probe() to fail to read the 'method'
property from the PSCI node for the device and hence prevents PSCI
from working. Fix this by using the ofnode_read_string() API instead
of the fdt_stringlist_get() because this will handle reading the
property both when CONFIG_OF_LIVE is enabled or disabled.
Due to the above problem and since commit 81ea00838c68 ("efi_loader:
PSCI reset and shutdown") was added, the EFI system reset has been
broken for Tegra210 and Tegra196 platforms. This also fixes the EFI
system reset for these Tegra platforms.
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/firmware/psci.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c index e0d66d74f5..23cf807591 100644 --- a/drivers/firmware/psci.c +++ b/drivers/firmware/psci.c @@ -67,11 +67,9 @@ static int psci_bind(struct udevice *dev) static int psci_probe(struct udevice *dev) { - DECLARE_GLOBAL_DATA_PTR; const char *method; - method = fdt_stringlist_get(gd->fdt_blob, dev_of_offset(dev), "method", - 0, NULL); + method = ofnode_read_string(dev_ofnode(dev), "method"); if (!method) { pr_warn("missing \"method\" property\n"); return -ENXIO; |