]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/nouveau/msppp: switch to instanced constructor
authorBen Skeggs <bskeggs@redhat.com>
Wed, 3 Feb 2021 22:39:28 +0000 (08:39 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 11 Feb 2021 01:49:58 +0000 (11:49 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
14 files changed:
drivers/gpu/drm/nouveau/include/nvkm/core/device.h
drivers/gpu/drm/nouveau/include/nvkm/core/layout.h
drivers/gpu/drm/nouveau/include/nvkm/engine/msppp.h
drivers/gpu/drm/nouveau/nvkm/core/subdev.c
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/engine/msppp/base.c
drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c
drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/msppp/gt215.c
drivers/gpu/drm/nouveau/nvkm/engine/msppp/priv.h
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.c
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gt215.c
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.c

index e8200e2a29d17dd678bbbe0189e37df263b93446..3f632c86740bee44d4faf095c18c52cfe832ebc4 100644 (file)
@@ -60,7 +60,6 @@ struct nvkm_device {
                struct notifier_block nb;
        } acpi;
 
-       struct nvkm_engine *msppp;
        struct nvkm_engine *msvld;
        struct nvkm_nvenc *nvenc[3];
        struct nvkm_nvdec *nvdec[3];
@@ -110,7 +109,6 @@ struct nvkm_device_chip {
 #undef NVKM_LAYOUT_INST
 #undef NVKM_LAYOUT_ONCE
 
-       int (*msppp   )(struct nvkm_device *, int idx, struct nvkm_engine **);
        int (*msvld   )(struct nvkm_device *, int idx, struct nvkm_engine **);
        int (*nvenc[3])(struct nvkm_device *, int idx, struct nvkm_nvenc **);
        int (*nvdec[3])(struct nvkm_device *, int idx, struct nvkm_nvdec **);
index cce050b2de56ae8b4c63324e101e3b5573b105c1..649c9ff51a3cb9651ea22d620d9636375921238b 100644 (file)
@@ -37,4 +37,5 @@ NVKM_LAYOUT_ONCE(NVKM_ENGINE_ME      , struct nvkm_engine  ,       me)
 NVKM_LAYOUT_ONCE(NVKM_ENGINE_MPEG    , struct nvkm_engine  ,     mpeg)
 NVKM_LAYOUT_ONCE(NVKM_ENGINE_MSENC   , struct nvkm_engine  ,    msenc)
 NVKM_LAYOUT_ONCE(NVKM_ENGINE_MSPDEC  , struct nvkm_engine  ,   mspdec)
+NVKM_LAYOUT_ONCE(NVKM_ENGINE_MSPPP   , struct nvkm_engine  ,    msppp)
 NVKM_LAYOUT_ONCE(NVKM_ENGINE_VP      , struct nvkm_engine  ,       vp)
index 69e09fd96e0cbb35ab8f56d1c08cc2afac338157..81c2b6f0ad845547ce4107c9a608c929d4c7af59 100644 (file)
@@ -2,7 +2,7 @@
 #ifndef __NVKM_MSPPP_H__
 #define __NVKM_MSPPP_H__
 #include <engine/falcon.h>
-int g98_msppp_new(struct nvkm_device *, int, struct nvkm_engine **);
-int gt215_msppp_new(struct nvkm_device *, int, struct nvkm_engine **);
-int gf100_msppp_new(struct nvkm_device *, int, struct nvkm_engine **);
+int g98_msppp_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_engine **);
+int gt215_msppp_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_engine **);
+int gf100_msppp_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_engine **);
 #endif
index 09015ff40e3ae7f1bd958f945f80e263fb55f81d..dff42fe7a12a13f7c4441fd329495d25da043f98 100644 (file)
@@ -33,7 +33,6 @@ nvkm_subdev_type[NVKM_SUBDEV_NR] = {
 #include <core/layout.h>
 #undef NVKM_LAYOUT_ONCE
 #undef NVKM_LAYOUT_INST
-       [NVKM_ENGINE_MSPPP   ] = "msppp",
        [NVKM_ENGINE_MSVLD   ] = "msvld",
        [NVKM_ENGINE_NVENC0  ] = "nvenc0",
        [NVKM_ENGINE_NVENC1  ] = "nvenc1",
index 49d554e359279d1f726c7dce96696049ef652d28..cabf6dc3234de6041d9dac2e5401e4176ae0707b 100644 (file)
@@ -1099,7 +1099,7 @@ nv98_chipset = {
        .fifo     = { 0x00000001, g84_fifo_new },
        .gr       = { 0x00000001, g84_gr_new },
        .mspdec   = { 0x00000001, g98_mspdec_new },
-       .msppp = g98_msppp_new,
+       .msppp    = { 0x00000001, g98_msppp_new },
        .msvld = g98_msvld_new,
        .pm = g84_pm_new,
        .sec = g98_sec_new,
@@ -1166,7 +1166,7 @@ nva3_chipset = {
        .gr       = { 0x00000001, gt215_gr_new },
        .mpeg     = { 0x00000001, g84_mpeg_new },
        .mspdec   = { 0x00000001, gt215_mspdec_new },
-       .msppp = gt215_msppp_new,
+       .msppp    = { 0x00000001, gt215_msppp_new },
        .msvld = gt215_msvld_new,
        .pm = gt215_pm_new,
        .sw = nv50_sw_new,
@@ -1199,7 +1199,7 @@ nva5_chipset = {
        .fifo     = { 0x00000001, g84_fifo_new },
        .gr       = { 0x00000001, gt215_gr_new },
        .mspdec   = { 0x00000001, gt215_mspdec_new },
-       .msppp = gt215_msppp_new,
+       .msppp    = { 0x00000001, gt215_msppp_new },
        .msvld = gt215_msvld_new,
        .pm = gt215_pm_new,
        .sw = nv50_sw_new,
@@ -1232,7 +1232,7 @@ nva8_chipset = {
        .fifo     = { 0x00000001, g84_fifo_new },
        .gr       = { 0x00000001, gt215_gr_new },
        .mspdec   = { 0x00000001, gt215_mspdec_new },
-       .msppp = gt215_msppp_new,
+       .msppp    = { 0x00000001, gt215_msppp_new },
        .msvld = gt215_msvld_new,
        .pm = gt215_pm_new,
        .sw = nv50_sw_new,
@@ -1263,7 +1263,7 @@ nvaa_chipset = {
        .fifo     = { 0x00000001, g84_fifo_new },
        .gr       = { 0x00000001, gt200_gr_new },
        .mspdec   = { 0x00000001, g98_mspdec_new },
-       .msppp = g98_msppp_new,
+       .msppp    = { 0x00000001, g98_msppp_new },
        .msvld = g98_msvld_new,
        .pm = g84_pm_new,
        .sec = g98_sec_new,
@@ -1295,7 +1295,7 @@ nvac_chipset = {
        .fifo     = { 0x00000001, g84_fifo_new },
        .gr       = { 0x00000001, mcp79_gr_new },
        .mspdec   = { 0x00000001, g98_mspdec_new },
-       .msppp = g98_msppp_new,
+       .msppp    = { 0x00000001, g98_msppp_new },
        .msvld = g98_msvld_new,
        .pm = g84_pm_new,
        .sec = g98_sec_new,
@@ -1329,7 +1329,7 @@ nvaf_chipset = {
        .fifo     = { 0x00000001, g84_fifo_new },
        .gr       = { 0x00000001, mcp89_gr_new },
        .mspdec   = { 0x00000001, gt215_mspdec_new },
-       .msppp = gt215_msppp_new,
+       .msppp    = { 0x00000001, gt215_msppp_new },
        .msvld = mcp89_msvld_new,
        .pm = gt215_pm_new,
        .sw = nv50_sw_new,
@@ -1365,7 +1365,7 @@ nvc0_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf100_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf100_pm_new,
        .sw = gf100_sw_new,
@@ -1401,7 +1401,7 @@ nvc1_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf108_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf108_pm_new,
        .sw = gf100_sw_new,
@@ -1437,7 +1437,7 @@ nvc3_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf104_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf100_pm_new,
        .sw = gf100_sw_new,
@@ -1473,7 +1473,7 @@ nvc4_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf104_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf100_pm_new,
        .sw = gf100_sw_new,
@@ -1509,7 +1509,7 @@ nvc8_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf110_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf100_pm_new,
        .sw = gf100_sw_new,
@@ -1545,7 +1545,7 @@ nvce_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf104_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf100_pm_new,
        .sw = gf100_sw_new,
@@ -1581,7 +1581,7 @@ nvcf_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf104_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf100_pm_new,
        .sw = gf100_sw_new,
@@ -1616,7 +1616,7 @@ nvd7_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf117_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf117_pm_new,
        .sw = gf100_sw_new,
@@ -1652,7 +1652,7 @@ nvd9_chipset = {
        .fifo     = { 0x00000001, gf100_fifo_new },
        .gr       = { 0x00000001, gf119_gr_new },
        .mspdec   = { 0x00000001, gf100_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gf100_msvld_new,
        .pm = gf117_pm_new,
        .sw = gf100_sw_new,
@@ -1689,7 +1689,7 @@ nve4_chipset = {
        .fifo     = { 0x00000001, gk104_fifo_new },
        .gr       = { 0x00000001, gk104_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .pm = gk104_pm_new,
        .sw = gf100_sw_new,
@@ -1726,7 +1726,7 @@ nve6_chipset = {
        .fifo     = { 0x00000001, gk104_fifo_new },
        .gr       = { 0x00000001, gk104_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .pm = gk104_pm_new,
        .sw = gf100_sw_new,
@@ -1763,7 +1763,7 @@ nve7_chipset = {
        .fifo     = { 0x00000001, gk104_fifo_new },
        .gr       = { 0x00000001, gk104_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .pm = gk104_pm_new,
        .sw = gf100_sw_new,
@@ -1825,7 +1825,7 @@ nvf0_chipset = {
        .fifo     = { 0x00000001, gk110_fifo_new },
        .gr       = { 0x00000001, gk110_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .sw = gf100_sw_new,
 };
@@ -1861,7 +1861,7 @@ nvf1_chipset = {
        .fifo     = { 0x00000001, gk110_fifo_new },
        .gr       = { 0x00000001, gk110b_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .sw = gf100_sw_new,
 };
@@ -1897,7 +1897,7 @@ nv106_chipset = {
        .fifo     = { 0x00000001, gk208_fifo_new },
        .gr       = { 0x00000001, gk208_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .sw = gf100_sw_new,
 };
@@ -1933,7 +1933,7 @@ nv108_chipset = {
        .fifo     = { 0x00000001, gk208_fifo_new },
        .gr       = { 0x00000001, gk208_gr_new },
        .mspdec   = { 0x00000001, gk104_mspdec_new },
-       .msppp = gf100_msppp_new,
+       .msppp    = { 0x00000001, gf100_msppp_new },
        .msvld = gk104_msvld_new,
        .sw = gf100_sw_new,
 };
@@ -3174,7 +3174,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
 #include <core/layout.h>
 #undef NVKM_LAYOUT_INST
 #undef NVKM_LAYOUT_ONCE
-               _(NVKM_ENGINE_MSPPP   ,    msppp);
                _(NVKM_ENGINE_MSVLD   ,    msvld);
                _(NVKM_ENGINE_NVENC0  , nvenc[0]);
                _(NVKM_ENGINE_NVENC1  , nvenc[1]);
index bfae5e60e9259e88ffbf487e37e88f98d17de78a..45a9411ab2e28dd9c9d0e7046dd0334bf668aea0 100644 (file)
@@ -25,7 +25,7 @@
 
 int
 nvkm_msppp_new_(const struct nvkm_falcon_func *func, struct nvkm_device *device,
-               int index, struct nvkm_engine **pengine)
+               enum nvkm_subdev_type type, int inst, struct nvkm_engine **pengine)
 {
-       return nvkm_falcon_new_(func, device, index, true, 0x086000, pengine);
+       return nvkm_falcon_new_(func, device, type, inst, true, 0x086000, pengine);
 }
index c45dbf79d1f9d1977da44da1306b1dd52846da7b..160120b9bd641ee2c24b8da57da71183e2e538b7 100644 (file)
@@ -43,8 +43,8 @@ g98_msppp = {
 };
 
 int
-g98_msppp_new(struct nvkm_device *device, int index,
+g98_msppp_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
              struct nvkm_engine **pengine)
 {
-       return nvkm_msppp_new_(&g98_msppp, device, index, pengine);
+       return nvkm_msppp_new_(&g98_msppp, device, type, inst, pengine);
 }
index 803c62ab516e107858f5c396e27c45be4755ce59..debed9ae873197c38a370ed922b612cc7776a7ce 100644 (file)
@@ -43,8 +43,8 @@ gf100_msppp = {
 };
 
 int
-gf100_msppp_new(struct nvkm_device *device, int index,
+gf100_msppp_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
                struct nvkm_engine **pengine)
 {
-       return nvkm_msppp_new_(&gf100_msppp, device, index, pengine);
+       return nvkm_msppp_new_(&gf100_msppp, device, type, inst, pengine);
 }
index 49cbf72cee4bd6ac587317be85dd339551f33c20..a2fd736fef943adeed8650c4139b185c679f07d9 100644 (file)
@@ -35,8 +35,8 @@ gt215_msppp = {
 };
 
 int
-gt215_msppp_new(struct nvkm_device *device, int index,
-             struct nvkm_engine **pengine)
+gt215_msppp_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
+               struct nvkm_engine **pengine)
 {
-       return nvkm_msppp_new_(&gt215_msppp, device, index, pengine);
+       return nvkm_msppp_new_(&gt215_msppp, device, type, inst, pengine);
 }
index f20b10915db262600688e74f5e08fa49b4209ab2..582ab8ce14255072401b052f709996320c2ccbbb 100644 (file)
@@ -3,8 +3,8 @@
 #define __NVKM_MSPPP_PRIV_H__
 #include <engine/msppp.h>
 
-int nvkm_msppp_new_(const struct nvkm_falcon_func *, struct nvkm_device *,
-                   int index, struct nvkm_engine **);
+int nvkm_msppp_new_(const struct nvkm_falcon_func *, struct nvkm_device *, enum nvkm_subdev_type,
+                   int, struct nvkm_engine **);
 
 void g98_msppp_init(struct nvkm_falcon *);
 #endif
index 81a85f5024958a0efaa5b353a3910769b9cb8d93..f274d6077319e66f2d45587f24caf14f690f5f2e 100644 (file)
@@ -37,7 +37,7 @@ g98_devinit_disable(struct nvkm_devinit *init)
        if (!(r001540 & 0x40000000)) {
                nvkm_subdev_disable(device, NVKM_ENGINE_MSPDEC, 0);
                disable |= (1ULL << NVKM_ENGINE_MSVLD);
-               disable |= (1ULL << NVKM_ENGINE_MSPPP);
+               nvkm_subdev_disable(device, NVKM_ENGINE_MSPPP, 0);
        }
 
        if (!(r00154c & 0x00000004))
index 61b0d1b5e96f5a915feaaa0f8f1a4249642f07ff..c5a5064bebc10ec02950ae4acb677473280cea80 100644 (file)
@@ -75,7 +75,7 @@ gf100_devinit_disable(struct nvkm_devinit *init)
 
        if (r022500 & 0x00000002) {
                nvkm_subdev_disable(device, NVKM_ENGINE_MSPDEC, 0);
-               disable |= (1ULL << NVKM_ENGINE_MSPPP);
+               nvkm_subdev_disable(device, NVKM_ENGINE_MSPPP, 0);
        }
 
        if (r022500 & 0x00000004)
index 2cd999060a612acded49ae98a04d4ade5b2e6457..88d70b34ee06f621dc424397d18d4cde4994587d 100644 (file)
@@ -72,7 +72,7 @@ gt215_devinit_disable(struct nvkm_devinit *init)
 
        if (!(r001540 & 0x40000000)) {
                nvkm_subdev_disable(device, NVKM_ENGINE_MSPDEC, 0);
-               disable |= (1ULL << NVKM_ENGINE_MSPPP);
+               nvkm_subdev_disable(device, NVKM_ENGINE_MSPPP, 0);
        }
 
        if (!(r00154c & 0x00000004))
index cb14ab804c9793fc60717fae873f156b736c4959..be59afa421897e384730c674553495b1ffde4176 100644 (file)
@@ -36,7 +36,7 @@ mcp89_devinit_disable(struct nvkm_devinit *init)
 
        if (!(r001540 & 0x40000000)) {
                nvkm_subdev_disable(device, NVKM_ENGINE_MSPDEC, 0);
-               disable |= (1ULL << NVKM_ENGINE_MSPPP);
+               nvkm_subdev_disable(device, NVKM_ENGINE_MSPPP, 0);
        }
 
        if (!(r00154c & 0x00000004))