summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2016-03-11 10:55:30 -0500
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-03-22 13:02:29 -0400
commita13a4124c7de56d7c38cce106e16f88c429292f8 (patch)
treef33dffbcf207227126da85ec86c9e4a82167a13a /drivers
parenta9b9597a108f8dacb01696c5e0f1c7a2e9f52def (diff)
gpu: nvgpu: Disable illegal comptag interrupt
Illegal comptag interrupt is triggered when a page is mapped with two different kinds with incompatible compression status. This can be intentional, so disable the interrupt. Change-Id: I84a212beac147991d09d2d381a9e770b1364f4d8 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1029663 (cherry picked from commit 819607a768f9fccdd0b233d58bcf88b9eee4ee19) Reviewed-on: http://git-master/r/1031010 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h6
-rw-r--r--drivers/gpu/nvgpu/gk20a/ltc_gk20a.c14
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h6
-rw-r--r--drivers/gpu/nvgpu/gm20b/ltc_gm20b.c3
4 files changed, 22 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h
index 6db5654b..94770431 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_ltc_gk20a.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012-2014, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2012-2016, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License, 5 * under the terms and conditions of the GNU General Public License,
@@ -258,6 +258,10 @@ static inline u32 ltc_ltcs_ltss_intr_en_evicted_cb_m(void)
258{ 258{
259 return 0x1 << 20; 259 return 0x1 << 20;
260} 260}
261static inline u32 ltc_ltcs_ltss_intr_en_illegal_compstat_m(void)
262{
263 return 0x1 << 21;
264}
261static inline u32 ltc_ltc0_lts0_intr_r(void) 265static inline u32 ltc_ltc0_lts0_intr_r(void)
262{ 266{
263 return 0x00141020; 267 return 0x00141020;
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c
index c6ff07da..0d9a98b4 100644
--- a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c
@@ -1,9 +1,7 @@
1/* 1/*
2 * drivers/video/tegra/host/gk20a/ltc_gk20a.c 2 * GK20A L2
3 * 3 *
4 * GK20A Graphics 4 * Copyright (c) 2011-2016, NVIDIA CORPORATION. All rights reserved.
5 *
6 * Copyright (c) 2011-2015, NVIDIA CORPORATION. All rights reserved.
7 * 5 *
8 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
9 * under the terms and conditions of the GNU General Public License, 7 * under the terms and conditions of the GNU General Public License,
@@ -173,9 +171,17 @@ out:
173 171
174static void gk20a_ltc_init_fs_state(struct gk20a *g) 172static void gk20a_ltc_init_fs_state(struct gk20a *g)
175{ 173{
174 u32 reg;
175
176 gk20a_dbg_info("initialize gk20a L2"); 176 gk20a_dbg_info("initialize gk20a L2");
177 177
178 g->max_ltc_count = g->ltc_count = 1; 178 g->max_ltc_count = g->ltc_count = 1;
179
180 /* Disable LTC interrupts */
181 reg = gk20a_readl(g, ltc_ltcs_ltss_intr_r());
182 reg &= ~ltc_ltcs_ltss_intr_en_evicted_cb_m();
183 reg &= ~ltc_ltcs_ltss_intr_en_illegal_compstat_m();
184 gk20a_writel(g, ltc_ltcs_ltss_intr_r(), reg);
179} 185}
180 186
181static void gk20a_ltc_isr(struct gk20a *g) 187static void gk20a_ltc_isr(struct gk20a *g)
diff --git a/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h
index 95e0c43d..aa01e945 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_ltc_gm20b.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License, 5 * under the terms and conditions of the GNU General Public License,
@@ -286,6 +286,10 @@ static inline u32 ltc_ltcs_ltss_intr_en_illegal_compstat_access_m(void)
286{ 286{
287 return 0x1 << 30; 287 return 0x1 << 30;
288} 288}
289static inline u32 ltc_ltcs_ltss_intr_en_illegal_compstat_m(void)
290{
291 return 0x1 << 21;
292}
289static inline u32 ltc_ltc0_lts0_intr_r(void) 293static inline u32 ltc_ltc0_lts0_intr_r(void)
290{ 294{
291 return 0x0014040c; 295 return 0x0014040c;
diff --git a/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c b/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
index 5b6bff7f..ffc36903 100644
--- a/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * GM20B L2 2 * GM20B L2
3 * 3 *
4 * Copyright (c) 2014-2015 NVIDIA CORPORATION. All rights reserved. 4 * Copyright (c) 2014-2016 NVIDIA CORPORATION. All rights reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License, 7 * under the terms and conditions of the GNU General Public License,
@@ -190,6 +190,7 @@ void gm20b_ltc_init_fs_state(struct gk20a *g)
190 reg = gk20a_readl(g, ltc_ltcs_ltss_intr_r()); 190 reg = gk20a_readl(g, ltc_ltcs_ltss_intr_r());
191 reg &= ~ltc_ltcs_ltss_intr_en_evicted_cb_m(); 191 reg &= ~ltc_ltcs_ltss_intr_en_evicted_cb_m();
192 reg &= ~ltc_ltcs_ltss_intr_en_illegal_compstat_access_m(); 192 reg &= ~ltc_ltcs_ltss_intr_en_illegal_compstat_access_m();
193 reg &= ~ltc_ltcs_ltss_intr_en_illegal_compstat_m();
193 gk20a_writel(g, ltc_ltcs_ltss_intr_r(), reg); 194 gk20a_writel(g, ltc_ltcs_ltss_intr_r(), reg);
194} 195}
195 196