]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/nouveau/iccsense: switch to instanced constructor
authorBen Skeggs <bskeggs@redhat.com>
Fri, 4 Dec 2020 02:17:03 +0000 (12:17 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 11 Feb 2021 01:49:53 +0000 (11:49 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/core/device.h
drivers/gpu/drm/nouveau/include/nvkm/core/layout.h
drivers/gpu/drm/nouveau/include/nvkm/subdev/iccsense.h
drivers/gpu/drm/nouveau/nvkm/core/subdev.c
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/gf100.c
drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/priv.h

index 297b308ae65dee7d62693da6e1f72c15eb3a12c8..5ef4b5cca7e255c6254db910cf05d8ccf9e1ad17 100644 (file)
@@ -60,7 +60,6 @@ struct nvkm_device {
                struct notifier_block nb;
        } acpi;
 
-       struct nvkm_iccsense *iccsense;
        struct nvkm_instmem *imem;
        struct nvkm_ltc *ltc;
        struct nvkm_mc *mc;
@@ -135,7 +134,6 @@ struct nvkm_device_chip {
 #include <core/layout.h>
 #undef NVKM_LAYOUT_INST
 #undef NVKM_LAYOUT_ONCE
-       int (*iccsense)(struct nvkm_device *, int idx, struct nvkm_iccsense **);
        int (*imem    )(struct nvkm_device *, int idx, struct nvkm_instmem **);
        int (*ltc     )(struct nvkm_device *, int idx, struct nvkm_ltc **);
        int (*mc      )(struct nvkm_device *, int idx, struct nvkm_mc **);
index ee5946e30dcbf9c8672622793f9ea11034f4b664..03a5b43c42ad010208e8ae2df92fd836818a48ad 100644 (file)
@@ -10,5 +10,6 @@ NVKM_LAYOUT_ONCE(NVKM_SUBDEV_FB      , struct nvkm_fb      ,       fb)
 NVKM_LAYOUT_ONCE(NVKM_SUBDEV_BAR     , struct nvkm_bar     ,      bar)
 NVKM_LAYOUT_ONCE(NVKM_SUBDEV_FAULT   , struct nvkm_fault   ,    fault)
 NVKM_LAYOUT_ONCE(NVKM_SUBDEV_ACR     , struct nvkm_acr     ,      acr)
+NVKM_LAYOUT_ONCE(NVKM_SUBDEV_ICCSENSE, struct nvkm_iccsense, iccsense)
 NVKM_LAYOUT_ONCE(NVKM_SUBDEV_CLK     , struct nvkm_clk     ,      clk)
 NVKM_LAYOUT_ONCE(NVKM_SUBDEV_GSP     , struct nvkm_gsp     ,      gsp)
index f483dcd7cd1c9405e6d984e39e28afc35a2a2978..7400d62dcbec49086a5176b27acdcf1c6ff7011a 100644 (file)
@@ -14,6 +14,6 @@ struct nvkm_iccsense {
        u32 power_w_crit;
 };
 
-int gf100_iccsense_new(struct nvkm_device *, int index, struct nvkm_iccsense **);
+int gf100_iccsense_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_iccsense **);
 int nvkm_iccsense_read_all(struct nvkm_iccsense *iccsense);
 #endif
index a0c201a4748a29fbdce492e77d0a9d555860da0c..a6b05aafbc1e4c3e085084e35e088b50824f9c92 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_SUBDEV_ICCSENSE] = "iccsense",
        [NVKM_SUBDEV_INSTMEM ] = "imem",
        [NVKM_SUBDEV_LTC     ] = "ltc",
        [NVKM_SUBDEV_MC      ] = "mc",
index c6990b84c2731bf150bcf573b87dbe6a2e0ec3cb..99f6d36d23ebb61e5ece5304bff300bb20146fb0 100644 (file)
@@ -1348,7 +1348,7 @@ nvc0_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1385,7 +1385,7 @@ nvc1_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1421,7 +1421,7 @@ nvc3_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1457,7 +1457,7 @@ nvc4_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1494,7 +1494,7 @@ nvc8_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1531,7 +1531,7 @@ nvce_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1568,7 +1568,7 @@ nvcf_chipset = {
        .gpio     = { 0x00000001, g94_gpio_new },
        .i2c      = { 0x00000001, g94_i2c_new },
        .ibus     = { 0x00000001, gf100_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1604,7 +1604,7 @@ nvd7_chipset = {
        .gpio     = { 0x00000001, gf119_gpio_new },
        .i2c      = { 0x00000001, gf117_i2c_new },
        .ibus     = { 0x00000001, gf117_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1639,7 +1639,7 @@ nvd9_chipset = {
        .gpio     = { 0x00000001, gf119_gpio_new },
        .i2c      = { 0x00000001, gf119_i2c_new },
        .ibus     = { 0x00000001, gf117_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gf100_ltc_new,
        .mc = gf100_mc_new,
@@ -1675,7 +1675,7 @@ nve4_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk104_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk104_mc_new,
@@ -1714,7 +1714,7 @@ nve6_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk104_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk104_mc_new,
@@ -1753,7 +1753,7 @@ nve7_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk104_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk104_mc_new,
@@ -1817,7 +1817,7 @@ nvf0_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk110_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk104_mc_new,
@@ -1855,7 +1855,7 @@ nvf1_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk110_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk104_mc_new,
@@ -1893,7 +1893,7 @@ nv106_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk110_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk20a_mc_new,
@@ -1931,7 +1931,7 @@ nv108_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk110_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gk104_ltc_new,
        .mc = gk20a_mc_new,
@@ -1969,7 +1969,7 @@ nv117_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk110_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gm107_ltc_new,
        .mc = gk20a_mc_new,
@@ -2005,7 +2005,7 @@ nv118_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gk110_i2c_new },
        .ibus     = { 0x00000001, gk104_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gm107_ltc_new,
        .mc = gk20a_mc_new,
@@ -2039,7 +2039,7 @@ nv120_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gm200_i2c_new },
        .ibus     = { 0x00000001, gm200_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gm200_ltc_new,
        .mc = gk20a_mc_new,
@@ -2077,7 +2077,7 @@ nv124_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gm200_i2c_new },
        .ibus     = { 0x00000001, gm200_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gm200_ltc_new,
        .mc = gk20a_mc_new,
@@ -2115,7 +2115,7 @@ nv126_chipset = {
        .gpio     = { 0x00000001, gk104_gpio_new },
        .i2c      = { 0x00000001, gm200_i2c_new },
        .ibus     = { 0x00000001, gm200_ibus_new },
-       .iccsense = gf100_iccsense_new,
+       .iccsense = { 0x00000001, gf100_iccsense_new },
        .imem = nv50_instmem_new,
        .ltc = gm200_ltc_new,
        .mc = gk20a_mc_new,
@@ -3248,7 +3248,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
 #include <core/layout.h>
 #undef NVKM_LAYOUT_INST
 #undef NVKM_LAYOUT_ONCE
-               _(NVKM_SUBDEV_ICCSENSE, iccsense);
                _(NVKM_SUBDEV_INSTMEM ,     imem);
                _(NVKM_SUBDEV_LTC     ,      ltc);
                _(NVKM_SUBDEV_MC      ,       mc);
index fecfa6afcf54e8548079e7ce494dfa8871cb6d29..8f0ccd3664eb6c7c6ce5aff42b3043c64a109965 100644 (file)
@@ -312,20 +312,20 @@ iccsense_func = {
 };
 
 void
-nvkm_iccsense_ctor(struct nvkm_device *device, int index,
+nvkm_iccsense_ctor(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
                   struct nvkm_iccsense *iccsense)
 {
-       nvkm_subdev_ctor(&iccsense_func, device, index, &iccsense->subdev);
+       nvkm_subdev_ctor(&iccsense_func, device, type, inst, &iccsense->subdev);
 }
 
 int
-nvkm_iccsense_new_(struct nvkm_device *device, int index,
+nvkm_iccsense_new_(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
                   struct nvkm_iccsense **iccsense)
 {
        if (!(*iccsense = kzalloc(sizeof(**iccsense), GFP_KERNEL)))
                return -ENOMEM;
        INIT_LIST_HEAD(&(*iccsense)->sensors);
        INIT_LIST_HEAD(&(*iccsense)->rails);
-       nvkm_iccsense_ctor(device, index, *iccsense);
+       nvkm_iccsense_ctor(device, type, inst, *iccsense);
        return 0;
 }
index cccff1c8a409cbe9c7138cc4d3ca56f5692c654b..3eabf49443951de159b86f58d7cf6be645d078a7 100644 (file)
@@ -24,8 +24,8 @@
 #include "priv.h"
 
 int
-gf100_iccsense_new(struct nvkm_device *device, int index,
+gf100_iccsense_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
                   struct nvkm_iccsense **piccsense)
 {
-       return nvkm_iccsense_new_(device, index, piccsense);
+       return nvkm_iccsense_new_(device, type, inst, piccsense);
 }
index cc09c6c504af7880134ec223e5b2c0fd3c6e1480..c33441124241cc4bdfc3017e5ecc436102726b59 100644 (file)
@@ -22,6 +22,6 @@ struct nvkm_iccsense_rail {
        u8 mohm;
 };
 
-void nvkm_iccsense_ctor(struct nvkm_device *, int, struct nvkm_iccsense *);
-int nvkm_iccsense_new_(struct nvkm_device *, int, struct nvkm_iccsense **);
+void nvkm_iccsense_ctor(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_iccsense *);
+int nvkm_iccsense_new_(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_iccsense **);
 #endif