diff options
author | Roy Spliet <rspliet@eclipso.eu> | 2014-08-21 13:45:15 +0200 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-08-28 08:39:46 +1000 |
commit | 0eb42fa0e1fbc620ca0292f2200070182b378328 (patch) | |
tree | e0139332f9f3601014d103eb07c4f1028a08de72 | |
parent | 83d2c69cec95d57e415e02ab9c43a48c03df9d5e (diff) | |
download | nouveau-0eb42fa0e1fbc620ca0292f2200070182b378328.tar.gz |
clk/nva3: Abort when PLL doesn't lock
Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | nvkm/subdev/clock/nva3.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/nvkm/subdev/clock/nva3.c b/nvkm/subdev/clock/nva3.c index c676de6d1..fd00397bc 100644 --- a/nvkm/subdev/clock/nva3.c +++ b/nvkm/subdev/clock/nva3.c @@ -311,7 +311,11 @@ prog_pll(struct nva3_clock_priv *priv, int clk, u32 pll, int idx) nv_wr32(priv, coef, info->pll); nv_mask(priv, ctrl, 0x00000015, 0x00000015); nv_mask(priv, ctrl, 0x00000010, 0x00000000); - nv_wait(priv, ctrl, 0x00020000, 0x00020000); + if (!nv_wait(priv, ctrl, 0x00020000, 0x00020000)) { + nv_mask(priv, ctrl, 0x00000010, 0x00000010); + nv_mask(priv, src0, 0x00000101, 0x00000000); + return; + } nv_mask(priv, ctrl, 0x00000010, 0x00000010); nv_mask(priv, ctrl, 0x00000008, 0x00000000); disable_clk_src(priv, src1); |