diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2020-01-15 06:34:21 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2020-01-15 10:50:26 +1000 |
commit | de048192130db2c02e3f16d49ed4cc1f20e6ba90 (patch) | |
tree | 4c8c10a573b294b780e88fe9d57a9defdff3db0a | |
parent | drm/nouveau/flcn: move fetching of configuration until first use (diff) | |
download | linux-dev-de048192130db2c02e3f16d49ed4cc1f20e6ba90.tar.xz linux-dev-de048192130db2c02e3f16d49ed4cc1f20e6ba90.zip |
drm/nouveau/flcn: fetch PRI address from TOP if not provided by constructor
Shortcut to avoid each subdev having to do this itself.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/falcon/base.c b/drivers/gpu/drm/nouveau/nvkm/falcon/base.c index 3ed421058b08..8f4c3aca2233 100644 --- a/drivers/gpu/drm/nouveau/nvkm/falcon/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/falcon/base.c @@ -22,6 +22,7 @@ #include "priv.h" #include <subdev/mc.h> +#include <subdev/top.h> void nvkm_falcon_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, @@ -141,6 +142,12 @@ nvkm_falcon_oneinit(struct nvkm_falcon *falcon) u32 debug_reg; u32 reg; + if (!falcon->addr) { + falcon->addr = nvkm_top_addr(subdev->device, subdev->index); + if (WARN_ON(!falcon->addr)) + return -ENODEV; + } + reg = nvkm_falcon_rd32(falcon, 0x12c); falcon->version = reg & 0xf; falcon->secret = (reg >> 4) & 0x3; |