summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarol Herbst <nouveau@karolherbst.de>2015-09-15 18:49:32 +0200
committerBen Skeggs <bskeggs@redhat.com>2016-01-11 11:15:11 +1000
commit436c5af24e0d5632897e3ce7da497faf1851be35 (patch)
treed65cf2e237662bb4296f8351b7801a80132ffe2b
parentc35fdd711e2260df2cb885903992f360277021b4 (diff)
downloadnouveau-436c5af24e0d5632897e3ce7da497faf1851be35.tar.gz
perf: change pcie speed on pstate change
v2: remove error and only set link for pcie devices v6: remove check for pcie device Signed-off-by: Karol Herbst <nouveau@karolherbst.de>
-rw-r--r--drm/nouveau/nvkm/subdev/clk/base.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
index c769aff04..889cce2eb 100644
--- a/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drm/nouveau/nvkm/subdev/clk/base.c
@@ -176,6 +176,7 @@ nvkm_pstate_prog(struct nvkm_clk *clk, int pstatei)
{
struct nvkm_subdev *subdev = &clk->subdev;
struct nvkm_ram *ram = subdev->device->fb->ram;
+ struct nvkm_pci *pci = subdev->device->pci;
struct nvkm_pstate *pstate;
int ret, idx = 0;
@@ -187,6 +188,8 @@ nvkm_pstate_prog(struct nvkm_clk *clk, int pstatei)
nvkm_debug(subdev, "setting performance state %d\n", pstatei);
clk->pstate = pstatei;
+ nvkm_pcie_set_link(pci, pstate->pcie_speed, pstate->pcie_width);
+
if (ram && ram->func->calc) {
int khz = pstate->base.domain[nv_clk_src_mem];
do {