diff options
author | Maarten Lankhorst | 2012-11-16 17:47:16 +0100 |
---|---|---|
committer | Ben Skeggs | 2012-11-18 23:52:30 +0100 |
commit | d9c390561d1c4e520773e62781bbf89bb6845353 (patch) | |
tree | d851559261615735f1e3920086cd1eb3a9df4d70 /drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c | |
parent | drm/nouveau: fix crash with noaccel=1 (diff) | |
download | kernel-qcow2-linux-d9c390561d1c4e520773e62781bbf89bb6845353.tar.gz kernel-qcow2-linux-d9c390561d1c4e520773e62781bbf89bb6845353.tar.xz kernel-qcow2-linux-d9c390561d1c4e520773e62781bbf89bb6845353.zip |
drm/nouveau: add missing pll_calc calls
Fixes a null pointer dereference when reclocking on my fermi.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c b/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c index cc8d7d162d7c..9068c98b96f6 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c +++ b/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c @@ -66,6 +66,24 @@ nva3_clock_pll_set(struct nouveau_clock *clk, u32 type, u32 freq) return ret; } +int +nva3_clock_pll_calc(struct nouveau_clock *clock, struct nvbios_pll *info, + int clk, struct nouveau_pll_vals *pv) +{ + int ret, N, M, P; + + ret = nva3_pll_calc(clock, info, clk, &N, NULL, &M, &P); + + if (ret > 0) { + pv->refclk = info->refclk; + pv->N1 = N; + pv->M1 = M; + pv->log2P = P; + } + return ret; +} + + static int nva3_clock_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, @@ -80,6 +98,7 @@ nva3_clock_ctor(struct nouveau_object *parent, struct nouveau_object *engine, return ret; priv->base.pll_set = nva3_clock_pll_set; + priv->base.pll_calc = nva3_clock_pll_calc; return 0; } |