[U-Boot] [PATCH] ARM: tegra: enable GPU node by compatible value
Thierry Reding
treding at nvidia.com
Wed Apr 13 16:04:34 CEST 2016
On Tue, Apr 12, 2016 at 11:17:39AM -0600, Stephen Warren wrote:
> From: Stephen Warren <swarren at nvidia.com>
>
> 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 at nvidia.com>
> Cc: Alexandre Courbot <acourbot at nvidia.com>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---
> arch/arm/include/asm/arch-tegra/gpu.h | 2 +-
> arch/arm/mach-tegra/board2.c | 20 +++++++++++++-------
> arch/arm/mach-tegra/gpu.c | 15 ++++++++-------
> 3 files changed, 22 insertions(+), 15 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-tegra/gpu.h b/arch/arm/include/asm/arch-tegra/gpu.h
> index 4423386f2805..6be9f6157b36 100644
> --- a/arch/arm/include/asm/arch-tegra/gpu.h
> +++ b/arch/arm/include/asm/arch-tegra/gpu.h
> @@ -26,7 +26,7 @@ int tegra_gpu_enable_node(void *blob, const char *gpupath);
>
> #else /* CONFIG_OF_LIBFDT */
>
> -static inline int tegra_gpu_enable_node(void *blob, const char *gpupath)
> +static inline int tegra_gpu_enable_node(void *blob, const char *compat)
> {
> return 0;
> }
> diff --git a/arch/arm/mach-tegra/board2.c b/arch/arm/mach-tegra/board2.c
> index ac274e17e8bd..141d6e1cb555 100644
> --- a/arch/arm/mach-tegra/board2.c
> +++ b/arch/arm/mach-tegra/board2.c
> @@ -404,16 +404,22 @@ ulong board_get_usable_ram_top(ulong total_size)
> */
> int ft_system_setup(void *blob, bd_t *bd)
> {
> - const char *gpu_path =
> -#if defined(CONFIG_TEGRA124) || defined(CONFIG_TEGRA210)
> - "/gpu at 0,57000000";
> -#else
> - NULL;
> + const char *gpu_compats[] = {
> +#if defined(CONFIG_TEGRA124)
> + "nvidia,gk20a",
> +#endif
> +#if defined(CONFIG_TEGRA210)
> + "nvidia,gm20b",
> #endif
> + };
> + int i, ret;
Perhaps unsigned int for i, but meh...
Reviewed-by: Thierry Reding <treding at nvidia.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160413/ad8d4f1e/attachment.sig>
More information about the U-Boot
mailing list