[Nouveau] [PATCH] drm/nouveau/clock: fix support for more than 2 monitors on nve0
Ben Skeggs
skeggsb at gmail.com
Sun Jan 6 19:53:40 PST 2013
On Fri, Jan 04, 2013 at 06:39:13PM +0200, Aleksi Torhamo wrote:
> Fixes regression introduced in commit 70790f4f
> "drm/nouveau/clock: pull in the implementation from all over the place"
>
> When code was moved from nv50_crtc_set_clock to nvc0_clock_pll_set,
> the PLLs it is used for got limited to only the first two VPLLs.
>
> nv50_crtc_set_clock was only called to change VPLLs, so it didn't
> limit what it was used for in any way. Since nvc0_clock_pll_set is
> used for all PLLs, it has to specify which PLLs the code is used for,
> and only listed the first two VPLLs.
Thanks, queued in nouveau's kernel tree.
>
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=58735
>
> This patch is a -stable candidate for 3.7.
>
> Signed-off-by: Aleksi Torhamo <aleksi at torhamo.net>
> Tested-by: Aleksi Torhamo <aleksi at torhamo.net>
> Tested-by: Sean Santos <quantheory at gmail.com>
> Cc: stable at vger.kernel.org
> ---
> .../gpu/drm/nouveau/core/include/subdev/bios/pll.h | 2 ++
> drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c | 2 ++
> 2 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h b/drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h
> index c345097..b2f3d4d 100644
> --- a/drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h
> +++ b/drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h
> @@ -38,6 +38,8 @@ enum nvbios_pll_type {
> PLL_UNK42 = 0x42,
> PLL_VPLL0 = 0x80,
> PLL_VPLL1 = 0x81,
> + PLL_VPLL2 = 0x82,
> + PLL_VPLL3 = 0x83,
> PLL_MAX = 0xff
> };
>
> diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c b/drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c
> index f6962c9..7c96262 100644
> --- a/drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c
> +++ b/drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c
> @@ -52,6 +52,8 @@ nvc0_clock_pll_set(struct nouveau_clock *clk, u32 type, u32 freq)
> switch (info.type) {
> case PLL_VPLL0:
> case PLL_VPLL1:
> + case PLL_VPLL2:
> + case PLL_VPLL3:
> nv_mask(priv, info.reg + 0x0c, 0x00000000, 0x00000100);
> nv_wr32(priv, info.reg + 0x04, (P << 16) | (N << 8) | M);
> nv_wr32(priv, info.reg + 0x10, fN << 16);
> --
> 1.7.8.6
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau
More information about the Nouveau
mailing list