[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