drm/nouveau/i2c: convert to new-style nvkm_subdev
authorBen Skeggs <bskeggs@redhat.com>
Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 28 Aug 2015 02:40:43 +0000 (12:40 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
24 files changed:
drivers/gpu/drm/nouveau/include/nvif/device.h
drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c
drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.c [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h

index 6cc9c65833a601f16eff0400ffc1a58fc98808f8..66d1bc23f3d7ea277b95b6ec1c71f9b0e8683237 100644 (file)
@@ -56,7 +56,7 @@ u64  nvif_device_time(struct nvif_device *);
 #define nvxx_bar(a) nvxx_device(a)->bar
 #define nvxx_gpio(a) nvxx_device(a)->gpio
 #define nvxx_clk(a) nvxx_device(a)->clk
-#define nvxx_i2c(a) nvkm_i2c(nvxx_device(a))
+#define nvxx_i2c(a) nvxx_device(a)->i2c
 #define nvxx_therm(a) nvkm_therm(nvxx_device(a))
 
 #include <core/device.h>
index ddc7e6e4be60a95e08352b7e4ea084c9f103853c..6b6224dbd5bb3ad63f03fdc29152344166a0ecbf 100644 (file)
@@ -69,31 +69,27 @@ int nvkm_i2c_aux_lnk_ctl(struct nvkm_i2c_aux *, int link_nr, int link_bw,
                         bool enhanced_framing);
 
 struct nvkm_i2c {
+       const struct nvkm_i2c_func *func;
        struct nvkm_subdev subdev;
-       struct nvkm_event event;
 
        struct list_head pad;
        struct list_head bus;
        struct list_head aux;
+
+       struct nvkm_event event;
 };
 
 struct nvkm_i2c_bus *nvkm_i2c_bus_find(struct nvkm_i2c *, int);
 struct nvkm_i2c_aux *nvkm_i2c_aux_find(struct nvkm_i2c *, int);
 
-static inline struct nvkm_i2c *
-nvkm_i2c(void *obj)
-{
-       return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_I2C);
-}
-
-extern struct nvkm_oclass *nv04_i2c_oclass;
-extern struct nvkm_oclass *nv4e_i2c_oclass;
-extern struct nvkm_oclass *nv50_i2c_oclass;
-extern struct nvkm_oclass *g94_i2c_oclass;
-extern struct nvkm_oclass *gf110_i2c_oclass;
-extern struct nvkm_oclass *gf117_i2c_oclass;
-extern struct nvkm_oclass *gk104_i2c_oclass;
-extern struct nvkm_oclass *gm204_i2c_oclass;
+int nv04_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int nv4e_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int nv50_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int g94_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int gf117_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int gf119_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int gk104_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
+int gm204_i2c_new(struct nvkm_device *, int, struct nvkm_i2c **);
 
 static inline int
 nvkm_rdi2cr(struct i2c_adapter *adap, u8 addr, u8 reg)
index 3caaa9caf4d3e92aadfecfa7fac90635381849ab..4c314961cc36c5fe203646e14f26881a69fdf040 100644 (file)
@@ -81,7 +81,7 @@ nv4_chipset = {
        .clk = nv04_clk_new,
        .devinit = nv04_devinit_new,
        .fb = nv04_fb_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -101,7 +101,7 @@ nv5_chipset = {
        .clk = nv04_clk_new,
        .devinit = nv05_devinit_new,
        .fb = nv04_fb_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -122,7 +122,7 @@ nv10_chipset = {
        .devinit = nv10_devinit_new,
        .fb = nv10_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -141,7 +141,7 @@ nv11_chipset = {
        .devinit = nv10_devinit_new,
        .fb = nv10_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -162,7 +162,7 @@ nv15_chipset = {
        .devinit = nv10_devinit_new,
        .fb = nv10_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -183,7 +183,7 @@ nv17_chipset = {
        .devinit = nv10_devinit_new,
        .fb = nv10_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -204,7 +204,7 @@ nv18_chipset = {
        .devinit = nv10_devinit_new,
        .fb = nv10_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -225,7 +225,7 @@ nv1a_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv1a_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -246,7 +246,7 @@ nv1f_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv1a_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -267,7 +267,7 @@ nv20_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv20_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -288,7 +288,7 @@ nv25_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv25_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -309,7 +309,7 @@ nv28_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv25_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -330,7 +330,7 @@ nv2a_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv25_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -351,7 +351,7 @@ nv30_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv30_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -372,7 +372,7 @@ nv31_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv30_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -394,7 +394,7 @@ nv34_chipset = {
        .devinit = nv10_devinit_new,
        .fb = nv10_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -416,7 +416,7 @@ nv35_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv35_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -437,7 +437,7 @@ nv36_chipset = {
        .devinit = nv20_devinit_new,
        .fb = nv36_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv04_instmem_new,
 //     .mc = nv04_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -459,7 +459,7 @@ nv40_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv40_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -484,7 +484,7 @@ nv41_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv41_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv41_mmu_new,
@@ -509,7 +509,7 @@ nv42_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv41_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv41_mmu_new,
@@ -534,7 +534,7 @@ nv43_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv41_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv41_mmu_new,
@@ -559,7 +559,7 @@ nv44_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv44_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv44_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -584,7 +584,7 @@ nv45_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv40_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv04_mmu_new,
@@ -609,7 +609,7 @@ nv46_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv46_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv44_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -634,7 +634,7 @@ nv47_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv47_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv41_mmu_new,
@@ -659,7 +659,7 @@ nv49_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv49_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv41_mmu_new,
@@ -684,7 +684,7 @@ nv4a_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv44_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv44_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -709,7 +709,7 @@ nv4b_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv49_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv40_mc_new,
 //     .mmu = nv41_mmu_new,
@@ -734,7 +734,7 @@ nv4c_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv46_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv4c_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -759,7 +759,7 @@ nv4e_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv4e_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv4e_i2c_new,
+       .i2c = nv4e_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv4c_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -786,7 +786,7 @@ nv50_chipset = {
        .fb = nv50_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = nv50_gpio_new,
-//     .i2c = nv50_i2c_new,
+       .i2c = nv50_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = nv50_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -812,7 +812,7 @@ nv63_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv46_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv4c_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -837,7 +837,7 @@ nv67_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv46_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv4c_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -862,7 +862,7 @@ nv68_chipset = {
        .devinit = nv1a_devinit_new,
        .fb = nv46_fb_new,
        .gpio = nv10_gpio_new,
-//     .i2c = nv04_i2c_new,
+       .i2c = nv04_i2c_new,
 //     .imem = nv40_instmem_new,
 //     .mc = nv4c_mc_new,
 //     .mmu = nv44_mmu_new,
@@ -889,7 +889,7 @@ nv84_chipset = {
        .fb = g84_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = nv50_gpio_new,
-//     .i2c = nv50_i2c_new,
+       .i2c = nv50_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = nv50_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -920,7 +920,7 @@ nv86_chipset = {
        .fb = g84_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = nv50_gpio_new,
-//     .i2c = nv50_i2c_new,
+       .i2c = nv50_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = nv50_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -951,7 +951,7 @@ nv92_chipset = {
        .fb = g84_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = nv50_gpio_new,
-//     .i2c = nv50_i2c_new,
+       .i2c = nv50_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = nv50_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -982,7 +982,7 @@ nv94_chipset = {
        .fb = g84_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g94_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1007,7 +1007,7 @@ nv96_chipset = {
        .name = "G96",
        .bios = nvkm_bios_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
        .fuse = nv50_fuse_new,
        .clk = g84_clk_new,
 //     .therm = g84_therm_new,
@@ -1038,7 +1038,7 @@ nv98_chipset = {
        .name = "G98",
        .bios = nvkm_bios_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
        .fuse = nv50_fuse_new,
        .clk = g84_clk_new,
 //     .therm = g84_therm_new,
@@ -1075,7 +1075,7 @@ nva0_chipset = {
        .fb = g84_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = nv50_i2c_new,
+       .i2c = nv50_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1106,7 +1106,7 @@ nva3_chipset = {
        .fb = gt215_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1139,7 +1139,7 @@ nva5_chipset = {
        .fb = gt215_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1171,7 +1171,7 @@ nva8_chipset = {
        .fb = gt215_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1203,7 +1203,7 @@ nvaa_chipset = {
        .fb = mcp77_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1234,7 +1234,7 @@ nvac_chipset = {
        .fb = mcp77_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1265,7 +1265,7 @@ nvaf_chipset = {
        .fb = mcp89_fb_new,
        .fuse = nv50_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .imem = nv50_instmem_new,
 //     .mc = g98_mc_new,
 //     .mmu = nv50_mmu_new,
@@ -1297,7 +1297,7 @@ nvc0_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1332,7 +1332,7 @@ nvc1_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1366,7 +1366,7 @@ nvc3_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1400,7 +1400,7 @@ nvc4_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1435,7 +1435,7 @@ nvc8_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1470,7 +1470,7 @@ nvce_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1505,7 +1505,7 @@ nvcf_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = g94_gpio_new,
-//     .i2c = g94_i2c_new,
+       .i2c = g94_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1539,7 +1539,7 @@ nvd7_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gf119_gpio_new,
-//     .i2c = gf117_i2c_new,
+       .i2c = gf117_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1571,7 +1571,7 @@ nvd9_chipset = {
        .fb = gf100_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gf119_gpio_new,
-//     .i2c = gf110_i2c_new,
+       .i2c = gf119_i2c_new,
 //     .ibus = gf100_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gf100_ltc_new,
@@ -1605,7 +1605,7 @@ nve4_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gk104_i2c_new,
+       .i2c = gk104_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1641,7 +1641,7 @@ nve6_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gk104_i2c_new,
+       .i2c = gk104_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1677,7 +1677,7 @@ nve7_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gk104_i2c_new,
+       .i2c = gk104_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1737,7 +1737,7 @@ nvf0_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gk104_i2c_new,
+       .i2c = gk104_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1773,7 +1773,7 @@ nvf1_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gf110_i2c_new,
+       .i2c = gf119_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1809,7 +1809,7 @@ nv106_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gk104_i2c_new,
+       .i2c = gk104_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1844,7 +1844,7 @@ nv108_chipset = {
        .fb = gk104_fb_new,
        .fuse = gf100_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gk104_i2c_new,
+       .i2c = gk104_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gk104_ltc_new,
@@ -1879,7 +1879,7 @@ nv117_chipset = {
        .fb = gm107_fb_new,
        .fuse = gm107_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gf110_i2c_new,
+       .i2c = gf119_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gm107_ltc_new,
@@ -1908,7 +1908,7 @@ nv124_chipset = {
        .fb = gm107_fb_new,
        .fuse = gm107_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gm204_i2c_new,
+       .i2c = gm204_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gm107_ltc_new,
@@ -1937,7 +1937,7 @@ nv126_chipset = {
        .fb = gm107_fb_new,
        .fuse = gm107_fuse_new,
        .gpio = gk104_gpio_new,
-//     .i2c = gm204_i2c_new,
+       .i2c = gm204_i2c_new,
 //     .ibus = gk104_ibus_new,
 //     .imem = nv50_instmem_new,
 //     .ltc = gm107_ltc_new,
index 9059b43efe7d8a5f8daf30930c2f6e9776b597dd..0ed4eb72628e3e8e2deed03c49d02e8e56be8e48 100644 (file)
@@ -28,7 +28,6 @@ gf100_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0xc0:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf100_mc_oclass;
@@ -52,7 +51,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf100_pm_oclass;
                break;
        case 0xc4:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf100_mc_oclass;
@@ -76,7 +74,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf100_pm_oclass;
                break;
        case 0xc3:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -99,7 +96,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf100_pm_oclass;
                break;
        case 0xce:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf100_mc_oclass;
@@ -123,7 +119,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf100_pm_oclass;
                break;
        case 0xcf:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -146,7 +141,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf100_pm_oclass;
                break;
        case 0xc1:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -169,7 +163,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf108_pm_oclass;
                break;
        case 0xc8:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf100_mc_oclass;
@@ -193,7 +186,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf100_pm_oclass;
                break;
        case 0xd9:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gf110_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -216,7 +208,6 @@ gf100_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gf117_pm_oclass;
                break;
        case 0xd7:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gf117_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
index 89eabad81e83d4909db4475a7a0ac890ea5faefb..05d8d276a4e6301aa63dbea3899e37ef00ceeb0d 100644 (file)
@@ -28,7 +28,6 @@ gk104_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0xe4:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gk104_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -53,7 +52,6 @@ gk104_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gk104_pm_oclass;
                break;
        case 0xe7:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gk104_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -78,7 +76,6 @@ gk104_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = gk104_pm_oclass;
                break;
        case 0xe6:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gk104_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -119,7 +116,6 @@ gk104_identify(struct nvkm_device *device)
                device->oclass[NVDEV_SUBDEV_PMU    ] =  gk20a_pmu_oclass;
                break;
        case 0xf0:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gk104_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -144,7 +140,6 @@ gk104_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = &gk110_pm_oclass;
                break;
        case 0xf1:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gf110_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gf106_mc_oclass;
@@ -169,7 +164,6 @@ gk104_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] = &gk110_pm_oclass;
                break;
        case 0x106:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gk104_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gk20a_mc_oclass;
@@ -193,7 +187,6 @@ gk104_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_MSPPP  ] = &gf100_msppp_oclass;
                break;
        case 0x108:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gk104_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gf110_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gk20a_mc_oclass;
index a57db5f56f6803bf6ac69280687024feb67f5806..a04bd5b744fd0e86a13dfd8cd50338ae57b15c74 100644 (file)
@@ -28,7 +28,6 @@ gm100_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x117:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gf110_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gm107_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  gk20a_mc_oclass;
@@ -59,7 +58,6 @@ gm100_identify(struct nvkm_device *device)
 #endif
                break;
        case 0x124:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gm204_i2c_oclass;
 #if 0
                /* looks to be some non-trivial changes */
                /* priv ring says no to 0x10eb14 writes */
@@ -91,7 +89,6 @@ gm100_identify(struct nvkm_device *device)
 #endif
                break;
        case 0x126:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  gm204_i2c_oclass;
 #if 0
                /* looks to be some non-trivial changes */
                /* priv ring says no to 0x10eb14 writes */
index d65d2943d776c73c993286dfbfb2a62e4b2d51a9..de456b2d44b30c5a5eb1ecf3f99da6bcdf35a264 100644 (file)
@@ -28,7 +28,6 @@ nv04_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x04:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -40,7 +39,6 @@ nv04_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x05:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
index ac2994a3fb33ccdd5a61c8cc2b66e5b3218512ee..6e58a0e20ba2ce25bce94792eceba04d93ed4647 100644 (file)
@@ -28,7 +28,6 @@ nv10_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x10:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -38,7 +37,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x15:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -50,7 +48,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x16:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -62,7 +59,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x1a:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -74,7 +70,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x11:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -86,7 +81,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x17:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -98,7 +92,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x1f:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -110,7 +103,6 @@ nv10_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x18:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
index 80290303606e7f5f7c8aabe2efa5ca81c7e3b369..14677377592274ec063bf33a6f84204a7203fa1e 100644 (file)
@@ -28,7 +28,6 @@ nv20_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x20:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -40,7 +39,6 @@ nv20_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x25:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -52,7 +50,6 @@ nv20_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x28:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -64,7 +61,6 @@ nv20_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x2a:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
index ce66504d1f3edcdcd7f9e680776f03bca09bad4b..e4d5fc697f494d21447d89921f0aa1e8c7f7a5aa 100644 (file)
@@ -28,7 +28,6 @@ nv30_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x30:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -40,7 +39,6 @@ nv30_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x35:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -52,7 +50,6 @@ nv30_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x31:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -65,7 +62,6 @@ nv30_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x36:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
@@ -78,7 +74,6 @@ nv30_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_DISP   ] =  nv04_disp_oclass;
                break;
        case 0x34:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv04_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
                device->oclass[NVDEV_SUBDEV_INSTMEM] =  nv04_instmem_oclass;
index 513fb7eea165ae14a3462c82c5e9c6d9a0bf4daf..0bf4fcefcf886accd11ff1da2ad5f533470073a3 100644 (file)
@@ -28,7 +28,6 @@ nv40_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x40:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -44,7 +43,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x41:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -60,7 +58,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x42:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -76,7 +73,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x43:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -92,7 +88,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x45:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -108,7 +103,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x47:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -124,7 +118,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x49:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -140,7 +133,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x4b:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv40_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -156,7 +148,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x44:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv44_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -172,7 +163,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x46:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv4c_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -188,7 +178,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x4a:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv44_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -204,7 +193,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x4c:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv4c_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -220,7 +208,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x4e:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv4e_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv4c_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -236,7 +223,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x63:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv4c_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -252,7 +238,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x67:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv4c_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
@@ -268,7 +253,6 @@ nv40_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv40_pm_oclass;
                break;
        case 0x68:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv04_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv40_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv4c_mc_oclass;
                device->oclass[NVDEV_SUBDEV_TIMER  ] = &nv04_timer_oclass;
index cf8839c1d1f05f14cfde4d8bb6a2f32d72a59f30..956ea9c02f4590e6f35f9f97ce393002ddb7fea0 100644 (file)
@@ -28,7 +28,6 @@ nv50_identify(struct nvkm_device *device)
 {
        switch (device->chipset) {
        case 0x50:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv50_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &nv50_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv50_mc_oclass;
@@ -45,7 +44,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  nv50_pm_oclass;
                break;
        case 0x84:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv50_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv50_mc_oclass;
@@ -65,7 +63,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0x86:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv50_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv50_mc_oclass;
@@ -85,7 +82,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0x92:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv50_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  nv50_mc_oclass;
@@ -105,7 +101,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0x94:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g94_mc_oclass;
@@ -125,7 +120,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0x96:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g94_mc_oclass;
@@ -145,7 +139,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0x98:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -165,7 +158,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0xa0:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  nv50_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -185,7 +177,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  gt200_pm_oclass;
                break;
        case 0xaa:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -205,7 +196,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0xac:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &g84_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -225,7 +215,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  g84_pm_oclass;
                break;
        case 0xa3:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -247,7 +236,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  gt215_pm_oclass;
                break;
        case 0xa5:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -268,7 +256,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  gt215_pm_oclass;
                break;
        case 0xa8:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
@@ -289,7 +276,6 @@ nv50_identify(struct nvkm_device *device)
                device->oclass[NVDEV_ENGINE_PM     ] =  gt215_pm_oclass;
                break;
        case 0xaf:
-               device->oclass[NVDEV_SUBDEV_I2C    ] =  g94_i2c_oclass;
                device->oclass[NVDEV_SUBDEV_THERM  ] = &gt215_therm_oclass;
                device->oclass[NVDEV_SUBDEV_MXM    ] = &nv50_mxm_oclass;
                device->oclass[NVDEV_SUBDEV_MC     ] =  g98_mc_oclass;
index 200f996f20b7dac81e10633ef260c3cb651beb08..1f730613c237b077c108609fc457bff0aeb79888 100644 (file)
@@ -3,8 +3,8 @@ nvkm-y += nvkm/subdev/i2c/nv04.o
 nvkm-y += nvkm/subdev/i2c/nv4e.o
 nvkm-y += nvkm/subdev/i2c/nv50.o
 nvkm-y += nvkm/subdev/i2c/g94.o
-nvkm-y += nvkm/subdev/i2c/gf110.o
 nvkm-y += nvkm/subdev/i2c/gf117.o
+nvkm-y += nvkm/subdev/i2c/gf119.o
 nvkm-y += nvkm/subdev/i2c/gk104.o
 nvkm-y += nvkm/subdev/i2c/gm204.o
 
index fe29e728a60298a01766eff24dd911cc972847b1..243a71ff0a0d9d9ebee40bf2aa3653eea41a7d6a 100644 (file)
@@ -91,9 +91,8 @@ nvkm_i2c_intr_fini(struct nvkm_event *event, int type, int id)
 {
        struct nvkm_i2c *i2c = container_of(event, typeof(*i2c), event);
        struct nvkm_i2c_aux *aux = nvkm_i2c_aux_find(i2c, id);
-       const struct nvkm_i2c_impl *impl = (void *)nv_object(i2c)->oclass;
        if (aux)
-               impl->aux_mask(i2c, type, aux->intr, 0);
+               i2c->func->aux_mask(i2c, type, aux->intr, 0);
 }
 
 static void
@@ -101,9 +100,8 @@ nvkm_i2c_intr_init(struct nvkm_event *event, int type, int id)
 {
        struct nvkm_i2c *i2c = container_of(event, typeof(*i2c), event);
        struct nvkm_i2c_aux *aux = nvkm_i2c_aux_find(i2c, id);
-       const struct nvkm_i2c_impl *impl = (void *)nv_object(i2c)->oclass;
        if (aux)
-               impl->aux_mask(i2c, type, aux->intr, aux->intr);
+               i2c->func->aux_mask(i2c, type, aux->intr, aux->intr);
 }
 
 static int
@@ -120,18 +118,24 @@ nvkm_i2c_intr_ctor(struct nvkm_object *object, void *data, u32 size,
        return -EINVAL;
 }
 
+static const struct nvkm_event_func
+nvkm_i2c_intr_func = {
+       .ctor = nvkm_i2c_intr_ctor,
+       .init = nvkm_i2c_intr_init,
+       .fini = nvkm_i2c_intr_fini,
+};
+
 static void
-nvkm_i2c_intr(struct nvkm_subdev *obj)
+nvkm_i2c_intr(struct nvkm_subdev *subdev)
 {
-       struct nvkm_i2c *i2c = container_of(obj, typeof(*i2c), subdev);
-       struct nvkm_i2c_impl *impl = (void *)i2c->subdev.object.oclass;
+       struct nvkm_i2c *i2c = nvkm_i2c(subdev);
        struct nvkm_i2c_aux *aux;
        u32 hi, lo, rq, tx;
 
-       if (!impl->aux_stat)
+       if (!i2c->func->aux_stat)
                return;
 
-       impl->aux_stat(i2c, &hi, &lo, &rq, &tx);
+       i2c->func->aux_stat(i2c, &hi, &lo, &rq, &tx);
        if (!hi && !lo && !rq && !tx)
                return;
 
@@ -151,44 +155,31 @@ nvkm_i2c_intr(struct nvkm_subdev *obj)
        }
 }
 
-static const struct nvkm_event_func
-nvkm_i2c_intr_func = {
-       .ctor = nvkm_i2c_intr_ctor,
-       .init = nvkm_i2c_intr_init,
-       .fini = nvkm_i2c_intr_fini,
-};
-
-int
-_nvkm_i2c_fini(struct nvkm_object *object, bool suspend)
+static int
+nvkm_i2c_fini(struct nvkm_subdev *subdev, bool suspend)
 {
-       struct nvkm_i2c_impl *impl = (void *)nv_oclass(object);
-       struct nvkm_i2c *i2c = (void *)object;
+       struct nvkm_i2c *i2c = nvkm_i2c(subdev);
        struct nvkm_i2c_pad *pad;
        u32 mask;
 
-       if ((mask = (1 << impl->aux) - 1), impl->aux_stat) {
-               impl->aux_mask(i2c, NVKM_I2C_ANY, mask, 0);
-               impl->aux_stat(i2c, &mask, &mask, &mask, &mask);
+       if ((mask = (1 << i2c->func->aux) - 1), i2c->func->aux_stat) {
+               i2c->func->aux_mask(i2c, NVKM_I2C_ANY, mask, 0);
+               i2c->func->aux_stat(i2c, &mask, &mask, &mask, &mask);
        }
 
        list_for_each_entry(pad, &i2c->pad, head) {
                nvkm_i2c_pad_fini(pad);
        }
 
-       return nvkm_subdev_fini_old(&i2c->subdev, suspend);
+       return 0;
 }
 
-int
-_nvkm_i2c_init(struct nvkm_object *object)
+static int
+nvkm_i2c_init(struct nvkm_subdev *subdev)
 {
-       struct nvkm_i2c *i2c = (void *)object;
+       struct nvkm_i2c *i2c = nvkm_i2c(subdev);
        struct nvkm_i2c_bus *bus;
        struct nvkm_i2c_pad *pad;
-       int ret;
-
-       ret = nvkm_subdev_init_old(&i2c->subdev);
-       if (ret)
-               return ret;
 
        list_for_each_entry(pad, &i2c->pad, head) {
                nvkm_i2c_pad_init(pad);
@@ -201,10 +192,10 @@ _nvkm_i2c_init(struct nvkm_object *object)
        return 0;
 }
 
-void
-_nvkm_i2c_dtor(struct nvkm_object *object)
+static void *
+nvkm_i2c_dtor(struct nvkm_subdev *subdev)
 {
-       struct nvkm_i2c *i2c = (void *)object;
+       struct nvkm_i2c *i2c = nvkm_i2c(subdev);
 
        nvkm_event_fini(&i2c->event);
 
@@ -226,9 +217,17 @@ _nvkm_i2c_dtor(struct nvkm_object *object)
                nvkm_i2c_pad_del(&pad);
        }
 
-       nvkm_subdev_destroy(&i2c->subdev);
+       return i2c;
 }
 
+static const struct nvkm_subdev_func
+nvkm_i2c = {
+       .dtor = nvkm_i2c_dtor,
+       .init = nvkm_i2c_init,
+       .fini = nvkm_i2c_fini,
+       .intr = nvkm_i2c_intr,
+};
+
 static const struct nvkm_i2c_drv {
        u8 bios;
        u8 addr;
@@ -242,11 +241,9 @@ nvkm_i2c_drv[] = {
 };
 
 int
-nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
-                struct nvkm_oclass *oclass, int length, void **pobject)
+nvkm_i2c_new_(const struct nvkm_i2c_func *func, struct nvkm_device *device,
+             int index, struct nvkm_i2c **pi2c)
 {
-       struct nvkm_i2c_impl *impl = (void *)oclass;
-       struct nvkm_device *device = (void *)parent;
        struct nvkm_bios *bios = device->bios;
        struct nvkm_i2c *i2c;
        struct dcb_i2c_entry ccbE;
@@ -254,17 +251,15 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
        u8 ver, hdr;
        int ret, i;
 
-       ret = nvkm_subdev_create(parent, engine, oclass, 0, "I2C", "i2c", &i2c);
-       *pobject = nv_object(i2c);
-       if (ret)
-               return ret;
+       if (!(i2c = *pi2c = kzalloc(sizeof(*i2c), GFP_KERNEL)))
+               return -ENOMEM;
 
+       nvkm_subdev_ctor(&nvkm_i2c, device, index, 0, &i2c->subdev);
+       i2c->func = func;
        INIT_LIST_HEAD(&i2c->pad);
        INIT_LIST_HEAD(&i2c->bus);
        INIT_LIST_HEAD(&i2c->aux);
 
-       nv_subdev(i2c)->intr = nvkm_i2c_intr;
-
        i = -1;
        while (!dcb_i2c_parse(bios, ++i, &ccbE)) {
                struct nvkm_i2c_pad *pad = NULL;
@@ -278,11 +273,11 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
                if (ccbE.share != DCB_I2C_UNUSED) {
                        const int id = NVKM_I2C_PAD_HYBRID(ccbE.share);
                        if (!(pad = nvkm_i2c_pad_find(i2c, id)))
-                               ret = impl->pad_s_new(i2c, id, &pad);
+                               ret = func->pad_s_new(i2c, id, &pad);
                        else
                                ret = 0;
                } else {
-                       ret = impl->pad_x_new(i2c, NVKM_I2C_PAD_CCB(i), &pad);
+                       ret = func->pad_x_new(i2c, NVKM_I2C_PAD_CCB(i), &pad);
                }
 
                if (ret) {
@@ -397,25 +392,5 @@ nvkm_i2c_create_(struct nvkm_object *parent, struct nvkm_object *engine,
                }
        }
 
-       ret = nvkm_event_init(&nvkm_i2c_intr_func, 4, i, &i2c->event);
-       if (ret)
-               return ret;
-
-       return 0;
-}
-
-int
-_nvkm_i2c_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
-              struct nvkm_oclass *oclass, void *data, u32 size,
-              struct nvkm_object **pobject)
-{
-       struct nvkm_i2c *i2c;
-       int ret;
-
-       ret = nvkm_i2c_create(parent, engine, oclass, &i2c);
-       *pobject = nv_object(i2c);
-       if (ret)
-               return ret;
-
-       return 0;
+       return nvkm_event_init(&nvkm_i2c_intr_func, 4, i, &i2c->event);
 }
index e18dc855f21b950cdc2cb92b1a2653b60c28c34a..bb2a31d8816111e48b5066c794c126b73608682a 100644 (file)
@@ -56,18 +56,17 @@ g94_aux_mask(struct nvkm_i2c *i2c, u32 type, u32 mask, u32 data)
        nvkm_wr32(device, 0x00e068, temp);
 }
 
-struct nvkm_oclass *
-g94_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0x94),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+g94_i2c = {
        .pad_x_new = g94_i2c_pad_x_new,
        .pad_s_new = g94_i2c_pad_s_new,
        .aux = 4,
        .aux_stat = g94_aux_stat,
        .aux_mask = g94_aux_mask,
-}.base;
+};
+
+int
+g94_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&g94_i2c, device, index, pi2c);
+}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c
deleted file mode 100644 (file)
index cb6774a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2012 Red Hat Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors: Ben Skeggs
- */
-#include "priv.h"
-#include "pad.h"
-
-struct nvkm_oclass *
-gf110_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0xd0),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
-       .pad_x_new = gf119_i2c_pad_x_new,
-       .pad_s_new = gf119_i2c_pad_s_new,
-       .aux = 4,
-       .aux_stat = g94_aux_stat,
-       .aux_mask = g94_aux_mask,
-}.base;
index bd5e7c987cf0609b10ae6e1b76a177122dd01e8c..ae4aad3fcd2e35d2fdc7201dc70cda2f321cb6ef 100644 (file)
 #include "priv.h"
 #include "pad.h"
 
-struct nvkm_oclass *
-gf117_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0xd7),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+gf117_i2c = {
        .pad_x_new = gf119_i2c_pad_x_new,
-}.base;
+};
+
+int
+gf117_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&gf117_i2c, device, index, pi2c);
+}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.c
new file mode 100644 (file)
index 0000000..6f2b02a
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2012 Red Hat Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors: Ben Skeggs
+ */
+#include "priv.h"
+#include "pad.h"
+
+static const struct nvkm_i2c_func
+gf119_i2c = {
+       .pad_x_new = gf119_i2c_pad_x_new,
+       .pad_s_new = gf119_i2c_pad_s_new,
+       .aux = 4,
+       .aux_stat = g94_aux_stat,
+       .aux_mask = g94_aux_mask,
+};
+
+int
+gf119_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&gf119_i2c, device, index, pi2c);
+}
index ac97c206939319000545f402cda279e2431a884d..f9f6bf4b66c97ab755589bfa52067106e3468d62 100644 (file)
@@ -56,18 +56,17 @@ gk104_aux_mask(struct nvkm_i2c *i2c, u32 type, u32 mask, u32 data)
        nvkm_wr32(device, 0x00dc68, temp);
 }
 
-struct nvkm_oclass *
-gk104_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0xe0),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+gk104_i2c = {
        .pad_x_new = gf119_i2c_pad_x_new,
        .pad_s_new = gf119_i2c_pad_s_new,
        .aux = 4,
        .aux_stat = gk104_aux_stat,
        .aux_mask = gk104_aux_mask,
-}.base;
+};
+
+int
+gk104_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&gk104_i2c, device, index, pi2c);
+}
index e84b9a4aadc7577d1e8903a2335c758023a85ac1..ff9f7d62f6be38dca02bd7dde4ecbf7dda8e5ba3 100644 (file)
 #include "priv.h"
 #include "pad.h"
 
-struct nvkm_oclass *
-gm204_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0x24),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+gm204_i2c = {
        .pad_x_new = gf119_i2c_pad_x_new,
        .pad_s_new = gm204_i2c_pad_s_new,
        .aux = 8,
        .aux_stat = gk104_aux_stat,
        .aux_mask = gk104_aux_mask,
-}.base;
+};
+
+int
+gm204_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&gm204_i2c, device, index, pi2c);
+}
index 9a7279f3ae390c019731f6a030c9433de43115db..18776f49355c341e241530c2e68b27bfaa6bde19 100644 (file)
 #include "priv.h"
 #include "pad.h"
 
-struct nvkm_oclass *
-nv04_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0x04),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+nv04_i2c = {
        .pad_x_new = nv04_i2c_pad_new,
-}.base;
+};
+
+int
+nv04_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&nv04_i2c, device, index, pi2c);
+}
index 40533d786894193560a55781b64fe063e879c22f..6b762f7cee9eeec4557175493e520e7050601ca1 100644 (file)
 #include "priv.h"
 #include "pad.h"
 
-struct nvkm_oclass *
-nv4e_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0x4e),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+nv4e_i2c = {
        .pad_x_new = nv4e_i2c_pad_new,
-}.base;
+};
+
+int
+nv4e_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&nv4e_i2c, device, index, pi2c);
+}
index 678585c44cb02509bafc4a5cedb28b303a8b399c..75640ab97d6acbefee6c0355f6edf40dfb1677f0 100644 (file)
 #include "priv.h"
 #include "pad.h"
 
-struct nvkm_oclass *
-nv50_i2c_oclass = &(struct nvkm_i2c_impl) {
-       .base.handle = NV_SUBDEV(I2C, 0x50),
-       .base.ofuncs = &(struct nvkm_ofuncs) {
-               .ctor = _nvkm_i2c_ctor,
-               .dtor = _nvkm_i2c_dtor,
-               .init = _nvkm_i2c_init,
-               .fini = _nvkm_i2c_fini,
-       },
+static const struct nvkm_i2c_func
+nv50_i2c = {
        .pad_x_new = nv50_i2c_pad_new,
-}.base;
+};
+
+int
+nv50_i2c_new(struct nvkm_device *device, int index, struct nvkm_i2c **pi2c)
+{
+       return nvkm_i2c_new_(&nv50_i2c, device, index, pi2c);
+}
index e320e9da415bf4946af78c575c6dd390046f1f40..bf655a66ef40073afa55669409851a75aadef959 100644 (file)
@@ -1,34 +1,12 @@
 #ifndef __NVKM_I2C_PRIV_H__
 #define __NVKM_I2C_PRIV_H__
+#define nvkm_i2c(p) container_of((p), struct nvkm_i2c, subdev)
 #include <subdev/i2c.h>
 
-#define nvkm_i2c_create(p,e,o,d)                                            \
-       nvkm_i2c_create_((p), (e), (o), sizeof(**d), (void **)d)
-#define nvkm_i2c_destroy(p) ({                                              \
-       struct nvkm_i2c *i2c = (p);                                         \
-       _nvkm_i2c_dtor(nv_object(i2c));                                     \
-})
-#define nvkm_i2c_init(p) ({                                                 \
-       struct nvkm_i2c *i2c = (p);                                         \
-       _nvkm_i2c_init(nv_object(i2c));                                     \
-})
-#define nvkm_i2c_fini(p,s) ({                                               \
-       struct nvkm_i2c *i2c = (p);                                         \
-       _nvkm_i2c_fini(nv_object(i2c), (s));                                \
-})
-
-int nvkm_i2c_create_(struct nvkm_object *, struct nvkm_object *,
-                       struct nvkm_oclass *, int, void **);
-int  _nvkm_i2c_ctor(struct nvkm_object *, struct nvkm_object *,
-                      struct nvkm_oclass *, void *, u32,
-                      struct nvkm_object **);
-void _nvkm_i2c_dtor(struct nvkm_object *);
-int  _nvkm_i2c_init(struct nvkm_object *);
-int  _nvkm_i2c_fini(struct nvkm_object *, bool);
-
-struct nvkm_i2c_impl {
-       struct nvkm_oclass base;
+int nvkm_i2c_new_(const struct nvkm_i2c_func *, struct nvkm_device *,
+                 int index, struct nvkm_i2c **);
 
+struct nvkm_i2c_func {
        int (*pad_x_new)(struct nvkm_i2c *, int id, struct nvkm_i2c_pad **);
        int (*pad_s_new)(struct nvkm_i2c *, int id, struct nvkm_i2c_pad **);