diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-11-26 08:51:10 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-12-02 15:37:22 +1000 |
commit | 39d90a2194ddcc8e6114d84b81b84ba94ecc1930 (patch) | |
tree | ffd71865455ab8573fb8bf3cd97d8929825333ff /nvkm/subdev/devinit/nv50.c | |
parent | 5b9c4e1953f4f7f2fa21bae7164586cd33967bb6 (diff) | |
download | nouveau-39d90a2194ddcc8e6114d84b81b84ba94ecc1930.tar.gz |
devinit: bump priv ring timeouts before executing scripts
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'nvkm/subdev/devinit/nv50.c')
-rw-r--r-- | nvkm/subdev/devinit/nv50.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/nvkm/subdev/devinit/nv50.c b/nvkm/subdev/devinit/nv50.c index 0de7fa6e8..968334d1d 100644 --- a/nvkm/subdev/devinit/nv50.c +++ b/nvkm/subdev/devinit/nv50.c @@ -26,6 +26,7 @@ #include <subdev/bios/dcb.h> #include <subdev/bios/disp.h> #include <subdev/bios/init.h> +#include <subdev/ibus.h> #include <subdev/vga.h> #include "nv50.h" @@ -91,6 +92,7 @@ int nv50_devinit_init(struct nouveau_object *object) { struct nouveau_bios *bios = nouveau_bios(object); + struct nouveau_ibus *ibus = nouveau_ibus(object); struct nv50_devinit_priv *priv = (void *)object; struct nvbios_outp info; struct dcb_output outp; @@ -105,6 +107,13 @@ nv50_devinit_init(struct nouveau_object *object) } } + /* some boards appear to require certain priv register timeouts + * to be bumped before runing devinit scripts. not a clue why + * the vbios engineers didn't make the scripts just work... + */ + if (priv->base.post && ibus) + nv_ofuncs(ibus)->init(nv_object(ibus)); + ret = nouveau_devinit_init(&priv->base); if (ret) return ret; |