diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2011-04-29 10:45:50 +0300 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:42:48 -0800 |
commit | a147ecc954b36b0d36c5bf7510d97d9af705bc8e (patch) | |
tree | 9beb1b6b7abd33590c1b0ca7860034b9a1d02e71 /arch/arm/mach-tegra/fuse.c | |
parent | f1f372675ef9d6a61bd2c37727642742190371f1 (diff) |
nvhost: Add checks for # of GPU register sets.
Checks from a fuse whether we have one or two register sets.
- fuse.h/fuse.c: Implement tegra_register_sets()
- nvhost_3dctx.c: Use tegra_register_sets() to determine number of
sets to save.
- dev.c: Create entry /sys/module/nvhost/parameters/register_sets to
return to user space the number of sets.
Change-Id: Ibd9a50cfe77a642335bd85b5814e8fdd8d2c35e6
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/29786
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>
Rebase-Id: R0a53bbe37d8d83599b85514dad33bcd04a2f67f4
Diffstat (limited to 'arch/arm/mach-tegra/fuse.c')
-rw-r--r-- | arch/arm/mach-tegra/fuse.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/fuse.c b/arch/arm/mach-tegra/fuse.c index 44107448e310..a628880f403f 100644 --- a/arch/arm/mach-tegra/fuse.c +++ b/arch/arm/mach-tegra/fuse.c @@ -48,6 +48,8 @@ #define FUSE_X_COORDINATE_MASK 0x1ff #define FUSE_Y_COORDINATE 0x218 #define FUSE_Y_COORDINATE_MASK 0x1ff +#define FUSE_GPU_INFO 0x390 +#define FUSE_GPU_INFO_MASK (1<<2) #define FUSE_SPARE_BIT 0x244 #endif @@ -209,6 +211,21 @@ int tegra_sku_id(void) return sku_id; } +int tegra_gpu_register_sets(void) +{ +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) + return 1; +#elif defined(CONFIG_ARCH_TEGRA_3x_SOC) + u32 reg = readl(IO_TO_VIRT(TEGRA_CLK_RESET_BASE + FUSE_GPU_INFO)); + if (reg & FUSE_GPU_INFO_MASK) + return 1; + else + return 2; +#else +#error ERROR! Neither 2x or 3x Tegra present +#endif +} + static enum tegra_revision tegra_decode_revision(const struct tegra_id *id) { #ifdef CONFIG_ARCH_TEGRA_2x_SOC |