diff options
author | Stephen Warren <swarren@nvidia.com> | 2016-04-12 11:17:39 -0600 |
---|---|---|
committer | Tom Warren <twarren@nvidia.com> | 2016-05-04 13:31:03 -0700 |
commit | d9b6f58efd21adf892c2507a46a0d04dd1441650 (patch) | |
tree | 1e737948c916b8004605453195b3fb38721c3166 /arch/arm/mach-tegra/gpu.c | |
parent | b38eaec53570821043c94ad44eabcb23747d9969 (diff) | |
download | u-boot-imx-d9b6f58efd21adf892c2507a46a0d04dd1441650.zip u-boot-imx-d9b6f58efd21adf892c2507a46a0d04dd1441650.tar.gz u-boot-imx-d9b6f58efd21adf892c2507a46a0d04dd1441650.tar.bz2 |
ARM: tegra: enable GPU node by compatible value
In current Linux kernel Tegra DT files, 64-bit addresses are represented
in unit addresses as a pair of comma-separated 32-bit values. Apparently
this is no longer the correct representation for simple busses, and the
unit address should be represented as a single 64-bit value. If this is
changed in the DTs, arm/arm/mach-tegra/board2.c:ft_system_setup() will no
longer be able to find and enable the GPU node, since it looks up the node
by name.
Fix that function to enable nodes based on their compatible value rather
than their node name. This will work no matter what the node name is, i.e
for DTs both before and after any rename operation.
Cc: Thierry Reding <treding@nvidia.com>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/gpu.c')
-rw-r--r-- | arch/arm/mach-tegra/gpu.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/gpu.c b/arch/arm/mach-tegra/gpu.c index 0dbddd4..74b64a6 100644 --- a/arch/arm/mach-tegra/gpu.c +++ b/arch/arm/mach-tegra/gpu.c @@ -33,16 +33,17 @@ void tegra_gpu_config(void) #if defined(CONFIG_OF_LIBFDT) -int tegra_gpu_enable_node(void *blob, const char *gpupath) +int tegra_gpu_enable_node(void *blob, const char *compat) { int offset; - if (_configured) { - offset = fdt_path_offset(blob, gpupath); - if (offset > 0) { - fdt_status_okay(blob, offset); - debug("enabled GPU node %s\n", gpupath); - } + if (!_configured) + return 0; + + offset = fdt_node_offset_by_compatible(blob, -1, compat); + while (offset != -FDT_ERR_NOTFOUND) { + fdt_status_okay(blob, offset); + offset = fdt_node_offset_by_compatible(blob, offset, compat); } return 0; |