mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/devinit: bump priv ring timeouts before executing scripts
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
15606cb466
commit
c49c0b4411
|
@ -16,6 +16,7 @@ enum nv_subdev_type {
|
|||
* to during POST.
|
||||
*/
|
||||
NVDEV_SUBDEV_DEVINIT,
|
||||
NVDEV_SUBDEV_IBUS,
|
||||
NVDEV_SUBDEV_GPIO,
|
||||
NVDEV_SUBDEV_I2C,
|
||||
NVDEV_SUBDEV_DEVINIT_LAST = NVDEV_SUBDEV_I2C,
|
||||
|
@ -31,7 +32,6 @@ enum nv_subdev_type {
|
|||
NVDEV_SUBDEV_TIMER,
|
||||
NVDEV_SUBDEV_FB,
|
||||
NVDEV_SUBDEV_LTC,
|
||||
NVDEV_SUBDEV_IBUS,
|
||||
NVDEV_SUBDEV_INSTMEM,
|
||||
NVDEV_SUBDEV_VM,
|
||||
NVDEV_SUBDEV_BAR,
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue