diff options
author | Richard Zhao <rizhao@nvidia.com> | 2016-07-25 14:19:21 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-08-15 14:41:21 -0400 |
commit | 233862859a759b14353d743c0bce7d0df18e49ca (patch) | |
tree | 11bf4894ec20d9fc67e3842269b48e748261a8ef | |
parent | 47fe8460e96413c10ec84261895418d6b59bc690 (diff) |
gpu: nvgpu: vgpu: add getting ltc constants
move below attributes to constants:
TEGRA_VGPU_ATTRIB_COMPTAG_LINES
TEGRA_VGPU_ATTRIB_L2_SIZE
TEGRA_VGPU_ATTRIB_CACHELINE_SIZE
TEGRA_VGPU_ATTRIB_COMPTAGS_PER_CACHELINE
TEGRA_VGPU_ATTRIB_SLICES_PER_LTC
TEGRA_VGPU_ATTRIB_LTC_COUNT
JIRA VFND-2103
Change-Id: Iecf9717ee553a16ffe8de445be5bfe5a99c3a094
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: http://git-master/r/1190480
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vladislav Buzov <vbuzov@nvidia.com>
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/ltc_vgpu.c | 36 | ||||
-rw-r--r-- | include/linux/tegra_vgpu.h | 18 |
2 files changed, 21 insertions, 33 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c b/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c index 3e3f67c6..dc4d47cb 100644 --- a/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/ltc_vgpu.c | |||
@@ -17,39 +17,25 @@ | |||
17 | 17 | ||
18 | static int vgpu_determine_L2_size_bytes(struct gk20a *g) | 18 | static int vgpu_determine_L2_size_bytes(struct gk20a *g) |
19 | { | 19 | { |
20 | u32 cache_size = 0; | 20 | struct vgpu_priv_data *priv = vgpu_get_priv_data(g); |
21 | 21 | ||
22 | gk20a_dbg_fn(""); | 22 | gk20a_dbg_fn(""); |
23 | 23 | ||
24 | if (vgpu_get_attribute(vgpu_get_handle(g), | 24 | return priv->constants.l2_size; |
25 | TEGRA_VGPU_ATTRIB_L2_SIZE, &cache_size)) | ||
26 | dev_err(dev_from_gk20a(g), "unable to get L2 size\n"); | ||
27 | |||
28 | return cache_size; | ||
29 | } | 25 | } |
30 | 26 | ||
31 | static int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr) | 27 | static int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr) |
32 | { | 28 | { |
29 | struct vgpu_priv_data *priv = vgpu_get_priv_data(g); | ||
33 | u32 max_comptag_lines = 0; | 30 | u32 max_comptag_lines = 0; |
34 | int err; | 31 | int err; |
35 | 32 | ||
36 | gk20a_dbg_fn(""); | 33 | gk20a_dbg_fn(""); |
37 | 34 | ||
38 | err = vgpu_get_attribute(vgpu_get_handle(g), | 35 | gr->cacheline_size = priv->constants.cacheline_size; |
39 | TEGRA_VGPU_ATTRIB_CACHELINE_SIZE, | 36 | gr->comptags_per_cacheline = priv->constants.comptags_per_cacheline; |
40 | &gr->cacheline_size); | 37 | gr->slices_per_ltc = priv->constants.slices_per_ltc; |
41 | err |= vgpu_get_attribute(vgpu_get_handle(g), | 38 | max_comptag_lines = priv->constants.comptag_lines; |
42 | TEGRA_VGPU_ATTRIB_COMPTAGS_PER_CACHELINE, | ||
43 | &gr->comptags_per_cacheline); | ||
44 | err |= vgpu_get_attribute(vgpu_get_handle(g), | ||
45 | TEGRA_VGPU_ATTRIB_SLICES_PER_LTC, | ||
46 | &gr->slices_per_ltc); | ||
47 | err |= vgpu_get_attribute(vgpu_get_handle(g), | ||
48 | TEGRA_VGPU_ATTRIB_COMPTAG_LINES, &max_comptag_lines); | ||
49 | if (err) { | ||
50 | dev_err(dev_from_gk20a(g), "failed to get ctags atributes\n"); | ||
51 | return -ENXIO; | ||
52 | } | ||
53 | 39 | ||
54 | if (max_comptag_lines < 2) | 40 | if (max_comptag_lines < 2) |
55 | return -ENXIO; | 41 | return -ENXIO; |
@@ -63,15 +49,11 @@ static int vgpu_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr) | |||
63 | 49 | ||
64 | static void vgpu_ltc_init_fs_state(struct gk20a *g) | 50 | static void vgpu_ltc_init_fs_state(struct gk20a *g) |
65 | { | 51 | { |
66 | u32 ltc_count = 0; | 52 | struct vgpu_priv_data *priv = vgpu_get_priv_data(g); |
67 | int err; | ||
68 | 53 | ||
69 | gk20a_dbg_fn(""); | 54 | gk20a_dbg_fn(""); |
70 | 55 | ||
71 | err = vgpu_get_attribute(vgpu_get_handle(g), | 56 | g->ltc_count = priv->constants.ltc_count; |
72 | TEGRA_VGPU_ATTRIB_LTC_COUNT, <c_count); | ||
73 | WARN_ON(err); | ||
74 | g->ltc_count = ltc_count; | ||
75 | } | 57 | } |
76 | 58 | ||
77 | void vgpu_init_ltc_ops(struct gpu_ops *gops) | 59 | void vgpu_init_ltc_ops(struct gpu_ops *gops) |
diff --git a/include/linux/tegra_vgpu.h b/include/linux/tegra_vgpu.h index 504a31ad..ef4c36d9 100644 --- a/include/linux/tegra_vgpu.h +++ b/include/linux/tegra_vgpu.h | |||
@@ -114,22 +114,22 @@ enum { | |||
114 | TEGRA_VGPU_ATTRIB_NUM_CHANNELS = 0, /*deprecated */ | 114 | TEGRA_VGPU_ATTRIB_NUM_CHANNELS = 0, /*deprecated */ |
115 | TEGRA_VGPU_ATTRIB_GOLDEN_CTX_SIZE = 1, /* deprecated */ | 115 | TEGRA_VGPU_ATTRIB_GOLDEN_CTX_SIZE = 1, /* deprecated */ |
116 | TEGRA_VGPU_ATTRIB_ZCULL_CTX_SIZE = 2, /* deprecated */ | 116 | TEGRA_VGPU_ATTRIB_ZCULL_CTX_SIZE = 2, /* deprecated */ |
117 | TEGRA_VGPU_ATTRIB_COMPTAG_LINES = 3, | 117 | TEGRA_VGPU_ATTRIB_COMPTAG_LINES = 3, /* deprecated */ |
118 | TEGRA_VGPU_ATTRIB_GPC_COUNT = 4, | 118 | TEGRA_VGPU_ATTRIB_GPC_COUNT = 4, |
119 | TEGRA_VGPU_ATTRIB_MAX_TPC_PER_GPC_COUNT = 5, | 119 | TEGRA_VGPU_ATTRIB_MAX_TPC_PER_GPC_COUNT = 5, |
120 | TEGRA_VGPU_ATTRIB_MAX_TPC_COUNT = 6, | 120 | TEGRA_VGPU_ATTRIB_MAX_TPC_COUNT = 6, |
121 | TEGRA_VGPU_ATTRIB_PMC_BOOT_0 = 7, /* deprecated */ | 121 | TEGRA_VGPU_ATTRIB_PMC_BOOT_0 = 7, /* deprecated */ |
122 | TEGRA_VGPU_ATTRIB_L2_SIZE = 8, | 122 | TEGRA_VGPU_ATTRIB_L2_SIZE = 8, /* deprecated */ |
123 | TEGRA_VGPU_ATTRIB_GPC0_TPC0_SM_ARCH = 9, | 123 | TEGRA_VGPU_ATTRIB_GPC0_TPC0_SM_ARCH = 9, |
124 | TEGRA_VGPU_ATTRIB_NUM_FBPS = 10, | 124 | TEGRA_VGPU_ATTRIB_NUM_FBPS = 10, |
125 | TEGRA_VGPU_ATTRIB_FBP_EN_MASK = 11, | 125 | TEGRA_VGPU_ATTRIB_FBP_EN_MASK = 11, |
126 | TEGRA_VGPU_ATTRIB_MAX_LTC_PER_FBP = 12, | 126 | TEGRA_VGPU_ATTRIB_MAX_LTC_PER_FBP = 12, |
127 | TEGRA_VGPU_ATTRIB_MAX_LTS_PER_LTC = 13, | 127 | TEGRA_VGPU_ATTRIB_MAX_LTS_PER_LTC = 13, |
128 | TEGRA_VGPU_ATTRIB_GPC0_TPC_MASK = 14, | 128 | TEGRA_VGPU_ATTRIB_GPC0_TPC_MASK = 14, |
129 | TEGRA_VGPU_ATTRIB_CACHELINE_SIZE = 15, | 129 | TEGRA_VGPU_ATTRIB_CACHELINE_SIZE = 15, /* deprecated */ |
130 | TEGRA_VGPU_ATTRIB_COMPTAGS_PER_CACHELINE = 16, | 130 | TEGRA_VGPU_ATTRIB_COMPTAGS_PER_CACHELINE = 16, /* deprecated */ |
131 | TEGRA_VGPU_ATTRIB_SLICES_PER_LTC = 17, | 131 | TEGRA_VGPU_ATTRIB_SLICES_PER_LTC = 17, /* deprecated */ |
132 | TEGRA_VGPU_ATTRIB_LTC_COUNT = 18, | 132 | TEGRA_VGPU_ATTRIB_LTC_COUNT = 18, /* deprecated */ |
133 | TEGRA_VGPU_ATTRIB_TPC_COUNT = 19, | 133 | TEGRA_VGPU_ATTRIB_TPC_COUNT = 19, |
134 | TEGRA_VGPU_ATTRIB_GPC0_TPC_COUNT = 20, | 134 | TEGRA_VGPU_ATTRIB_GPC0_TPC_COUNT = 20, |
135 | TEGRA_VGPU_ATTRIB_MAX_FREQ = 21, /* deprecated */ | 135 | TEGRA_VGPU_ATTRIB_MAX_FREQ = 21, /* deprecated */ |
@@ -411,6 +411,12 @@ struct tegra_vgpu_constants_params { | |||
411 | u32 num_channels; | 411 | u32 num_channels; |
412 | u32 golden_ctx_size; | 412 | u32 golden_ctx_size; |
413 | u32 zcull_ctx_size; | 413 | u32 zcull_ctx_size; |
414 | u32 l2_size; | ||
415 | u32 ltc_count; | ||
416 | u32 cacheline_size; | ||
417 | u32 slices_per_ltc; | ||
418 | u32 comptags_per_cacheline; | ||
419 | u32 comptag_lines; | ||
414 | }; | 420 | }; |
415 | 421 | ||
416 | struct tegra_vgpu_cmd_msg { | 422 | struct tegra_vgpu_cmd_msg { |