summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2017-05-12 14:14:31 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-21 00:43:42 -0400
commit83f8bb225b074bfdf11a2da6c21acf204eecb293 (patch)
treec560bfd66c19199f00d85a5c63b4252784dd444d /drivers/gpu/nvgpu/common
parentd0ea8fe969b2a8f7509621103c1ead83187b798b (diff)
gpu: nvgpu: mclk switching sequences for PG419
VBIOS memory settings have been updated for PG419, significantly modifying MCLK switching sequences. This change adds support for PG419 tables, while remaining backward compatible with PG418. Bug 1921082 JIRA EVLR-1269 Change-Id: Ia8a1f8b3f482e348a46f0acb540af23287d9c11e Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: http://git-master/r/1484110 (cherry picked from commit c2444ae89caf97da2702e8486cc8fb162b4f50b1) Reviewed-on: http://git-master/r/1485300 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r--drivers/gpu/nvgpu/common/linux/pci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/pci.c b/drivers/gpu/nvgpu/common/linux/pci.c
index 4351ba5b..31181808 100644
--- a/drivers/gpu/nvgpu/common/linux/pci.c
+++ b/drivers/gpu/nvgpu/common/linux/pci.c
@@ -25,6 +25,7 @@
25#include "gk20a/gk20a.h" 25#include "gk20a/gk20a.h"
26#include "gk20a/platform_gk20a.h" 26#include "gk20a/platform_gk20a.h"
27#include "clk/clk.h" 27#include "clk/clk.h"
28#include "clk/clk_mclk.h"
28#include "module.h" 29#include "module.h"
29#include "intr.h" 30#include "intr.h"
30 31
@@ -92,6 +93,7 @@ static struct gk20a_platform nvgpu_pci_device[] = {
92 .ina3221_dcb_index = 0, 93 .ina3221_dcb_index = 0,
93 .ina3221_i2c_address = 0x84, 94 .ina3221_i2c_address = 0x84,
94 .ina3221_i2c_port = 0x2, 95 .ina3221_i2c_port = 0x2,
96 .mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418,
95 }, 97 },
96 { /* DEVICE=0x1c36 */ 98 { /* DEVICE=0x1c36 */
97 /* ptimer src frequency in hz */ 99 /* ptimer src frequency in hz */
@@ -127,6 +129,7 @@ static struct gk20a_platform nvgpu_pci_device[] = {
127 .ina3221_dcb_index = 0, 129 .ina3221_dcb_index = 0,
128 .ina3221_i2c_address = 0x84, 130 .ina3221_i2c_address = 0x84,
129 .ina3221_i2c_port = 0x2, 131 .ina3221_i2c_port = 0x2,
132 .mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418,
130 }, 133 },
131 { /* DEVICE=0x1c37 */ 134 { /* DEVICE=0x1c37 */
132 /* ptimer src frequency in hz */ 135 /* ptimer src frequency in hz */
@@ -162,6 +165,7 @@ static struct gk20a_platform nvgpu_pci_device[] = {
162 .ina3221_dcb_index = 0, 165 .ina3221_dcb_index = 0,
163 .ina3221_i2c_address = 0x84, 166 .ina3221_i2c_address = 0x84,
164 .ina3221_i2c_port = 0x2, 167 .ina3221_i2c_port = 0x2,
168 .mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418,
165 }, 169 },
166 { /* DEVICE=0x1c75 */ 170 { /* DEVICE=0x1c75 */
167 /* ptimer src frequency in hz */ 171 /* ptimer src frequency in hz */
@@ -197,6 +201,7 @@ static struct gk20a_platform nvgpu_pci_device[] = {
197 .ina3221_dcb_index = 1, 201 .ina3221_dcb_index = 1,
198 .ina3221_i2c_address = 0x80, 202 .ina3221_i2c_address = 0x80,
199 .ina3221_i2c_port = 0x1, 203 .ina3221_i2c_port = 0x1,
204 .mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG419,
200 } 205 }
201}; 206};
202 207
@@ -392,6 +397,8 @@ static int nvgpu_pci_probe(struct pci_dev *pdev,
392 g->msi_enabled = true; 397 g->msi_enabled = true;
393#endif 398#endif
394 399
400 g->mem_config_idx = platform->mem_config_idx;
401
395 g->irq_stall = pdev->irq; 402 g->irq_stall = pdev->irq;
396 g->irq_nonstall = pdev->irq; 403 g->irq_nonstall = pdev->irq;
397 if (g->irq_stall < 0) 404 if (g->irq_stall < 0)