diff options
author | Shardar Shariff Md <smohammed@nvidia.com> | 2016-11-01 09:36:06 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-11-11 05:18:40 -0500 |
commit | cc4208a27831faf95409b491aa29b8a161bf630a (patch) | |
tree | 57200cca04b4d477bed934577c16b7ccdf93ae83 /drivers/gpu | |
parent | 5855fe26cb401d6d139b930ab48bb1106301585f (diff) |
gpu: nvgpu: define fuse macro depend on kernel version
- Define fuse macros depending on kernel version as fuse
offset got changed in K4.4 and for K4.4 fuse defines are
defined in common header file (tegra-fuse.h)
- Use fuse control read/write APIs when reading control
registers for K4.4.
Bug 200243956
Change-Id: I5a86ef58d9de17a273aea8d3ce8ad5772444dac2
Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
Reviewed-on: http://git-master/r/1245824
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 6 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.h | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 4 |
4 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h index 6ec0067b..2cb56639 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | |||
@@ -21,6 +21,7 @@ | |||
21 | #ifndef __PMU_GK20A_H__ | 21 | #ifndef __PMU_GK20A_H__ |
22 | #define __PMU_GK20A_H__ | 22 | #define __PMU_GK20A_H__ |
23 | 23 | ||
24 | #include <linux/version.h> | ||
24 | #include "pmu_api.h" | 25 | #include "pmu_api.h" |
25 | #include "pmu_common.h" | 26 | #include "pmu_common.h" |
26 | #include "pmuif/gpmuifboardobj.h" | 27 | #include "pmuif/gpmuifboardobj.h" |
@@ -55,7 +56,9 @@ | |||
55 | #define APP_VERSION_0 16856675 | 56 | #define APP_VERSION_0 16856675 |
56 | 57 | ||
57 | /*Fuse defines*/ | 58 | /*Fuse defines*/ |
59 | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) | ||
58 | #define FUSE_GCPLEX_CONFIG_FUSE_0 0x2C8 | 60 | #define FUSE_GCPLEX_CONFIG_FUSE_0 0x2C8 |
61 | #endif | ||
59 | #define PMU_MODE_MISMATCH_STATUS_MAILBOX_R 6 | 62 | #define PMU_MODE_MISMATCH_STATUS_MAILBOX_R 6 |
60 | #define PMU_MODE_MISMATCH_STATUS_VAL 0xDEADDEAD | 63 | #define PMU_MODE_MISMATCH_STATUS_VAL 0xDEADDEAD |
61 | 64 | ||
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c index 7903af79..23144275 100644 --- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/tegra-fuse.h> | 19 | #include <linux/tegra-fuse.h> |
20 | #include <linux/vmalloc.h> | 20 | #include <linux/vmalloc.h> |
21 | #include <linux/version.h> | ||
21 | 22 | ||
22 | #include <dt-bindings/soc/gm20b-fuse.h> | 23 | #include <dt-bindings/soc/gm20b-fuse.h> |
23 | 24 | ||
@@ -513,8 +514,13 @@ static void gr_gm20b_set_gpc_tpc_mask(struct gk20a *g, u32 gpc_index) | |||
513 | tegra_clk_writel(CLK_RST_CONTROLLER_MISC_CLK_ENB_0_ALL_VISIBLE, | 514 | tegra_clk_writel(CLK_RST_CONTROLLER_MISC_CLK_ENB_0_ALL_VISIBLE, |
514 | CLK_RST_CONTROLLER_MISC_CLK_ENB_0); | 515 | CLK_RST_CONTROLLER_MISC_CLK_ENB_0); |
515 | 516 | ||
517 | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) | ||
516 | tegra_fuse_writel(0x1, FUSE_FUSEBYPASS_0); | 518 | tegra_fuse_writel(0x1, FUSE_FUSEBYPASS_0); |
517 | tegra_fuse_writel(0x0, FUSE_WRITE_ACCESS_SW_0); | 519 | tegra_fuse_writel(0x0, FUSE_WRITE_ACCESS_SW_0); |
520 | #else | ||
521 | tegra_fuse_control_write(0x1, FUSE_FUSEBYPASS_0); | ||
522 | tegra_fuse_control_write(0x0, FUSE_WRITE_ACCESS_SW_0); | ||
523 | #endif | ||
518 | 524 | ||
519 | if (g->gr.gpc_tpc_mask[gpc_index] == 0x1) { | 525 | if (g->gr.gpc_tpc_mask[gpc_index] == 0x1) { |
520 | tegra_fuse_writel(0x0, FUSE_OPT_GPU_TPC0_DISABLE_0); | 526 | tegra_fuse_writel(0x0, FUSE_OPT_GPU_TPC0_DISABLE_0); |
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.h b/drivers/gpu/nvgpu/gm20b/gr_gm20b.h index fc52f223..fd24d105 100644 --- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.h | |||
@@ -15,6 +15,9 @@ | |||
15 | 15 | ||
16 | #ifndef _NVHOST_GM20B_GR_MMU_H | 16 | #ifndef _NVHOST_GM20B_GR_MMU_H |
17 | #define _NVHOST_GM20B_GR_MMU_H | 17 | #define _NVHOST_GM20B_GR_MMU_H |
18 | |||
19 | #include <linux/version.h> | ||
20 | |||
18 | struct gk20a; | 21 | struct gk20a; |
19 | 22 | ||
20 | enum { | 23 | enum { |
@@ -31,10 +34,12 @@ enum { | |||
31 | #define CLK_RST_CONTROLLER_MISC_CLK_ENB_0 0x48 | 34 | #define CLK_RST_CONTROLLER_MISC_CLK_ENB_0 0x48 |
32 | #define CLK_RST_CONTROLLER_MISC_CLK_ENB_0_ALL_VISIBLE BIT(28) | 35 | #define CLK_RST_CONTROLLER_MISC_CLK_ENB_0_ALL_VISIBLE BIT(28) |
33 | 36 | ||
37 | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) | ||
34 | #define FUSE_FUSEBYPASS_0 0x24 | 38 | #define FUSE_FUSEBYPASS_0 0x24 |
35 | #define FUSE_WRITE_ACCESS_SW_0 0x30 | 39 | #define FUSE_WRITE_ACCESS_SW_0 0x30 |
36 | #define FUSE_OPT_GPU_TPC0_DISABLE_0 0x30C | 40 | #define FUSE_OPT_GPU_TPC0_DISABLE_0 0x30C |
37 | #define FUSE_OPT_GPU_TPC1_DISABLE_0 0x33C | 41 | #define FUSE_OPT_GPU_TPC1_DISABLE_0 0x33C |
42 | #endif | ||
38 | 43 | ||
39 | #define NVB197_SET_ALPHA_CIRCULAR_BUFFER_SIZE 0x02dc | 44 | #define NVB197_SET_ALPHA_CIRCULAR_BUFFER_SIZE 0x02dc |
40 | #define NVB197_SET_CIRCULAR_BUFFER_SIZE 0x1280 | 45 | #define NVB197_SET_CIRCULAR_BUFFER_SIZE 0x1280 |
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 1c601894..966d33d7 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c | |||
@@ -14,6 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/types.h> | 16 | #include <linux/types.h> |
17 | #include <linux/version.h> | ||
17 | 18 | ||
18 | #include "gk20a/gk20a.h" | 19 | #include "gk20a/gk20a.h" |
19 | 20 | ||
@@ -38,7 +39,10 @@ | |||
38 | #include "gk20a/dbg_gpu_gk20a.h" | 39 | #include "gk20a/dbg_gpu_gk20a.h" |
39 | #include "gk20a/css_gr_gk20a.h" | 40 | #include "gk20a/css_gr_gk20a.h" |
40 | 41 | ||
42 | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) | ||
41 | #define FUSE_OPT_PRIV_SEC_DIS_0 0x264 | 43 | #define FUSE_OPT_PRIV_SEC_DIS_0 0x264 |
44 | #endif | ||
45 | |||
42 | #define PRIV_SECURITY_DISABLE 0x01 | 46 | #define PRIV_SECURITY_DISABLE 0x01 |
43 | 47 | ||
44 | static struct gpu_ops gm20b_ops = { | 48 | static struct gpu_ops gm20b_ops = { |