From: Ben Skeggs Date: Wed, 3 Dec 2014 07:07:22 +0000 (+1000) Subject: drm/nouveau/subdev: always upcast through nouveau_subdev()/nouveau_engine() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=2f4a58e852d103488fc435f0c1ecbb9a86761579;p=openwrt%2Fstaging%2Fblogic.git drm/nouveau/subdev: always upcast through nouveau_subdev()/nouveau_engine() Has additional safeties for one. For two, needed for an upcoming commit that removes abuse of nouveau_object.engine. Signed-off-by: Ben Skeggs --- diff --git a/drivers/gpu/drm/nouveau/core/include/engine/disp.h b/drivers/gpu/drm/nouveau/core/include/engine/disp.h index fc307f1317ff..626508d8da40 100644 --- a/drivers/gpu/drm/nouveau/core/include/engine/disp.h +++ b/drivers/gpu/drm/nouveau/core/include/engine/disp.h @@ -18,7 +18,7 @@ struct nouveau_disp { static inline struct nouveau_disp * nouveau_disp(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_ENGINE_DISP]; + return (void *)nouveau_engine(obj, NVDEV_ENGINE_DISP); } extern struct nouveau_oclass *nv04_disp_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/engine/fifo.h b/drivers/gpu/drm/nouveau/core/include/engine/fifo.h index 2007453f6fce..c52b939f52f0 100644 --- a/drivers/gpu/drm/nouveau/core/include/engine/fifo.h +++ b/drivers/gpu/drm/nouveau/core/include/engine/fifo.h @@ -85,7 +85,7 @@ struct nouveau_fifo { static inline struct nouveau_fifo * nouveau_fifo(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_ENGINE_FIFO]; + return (void *)nouveau_engine(obj, NVDEV_ENGINE_FIFO); } #define nouveau_fifo_create(o,e,c,fc,lc,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/engine/graph.h b/drivers/gpu/drm/nouveau/core/include/engine/graph.h index d5055570d01b..d61dcb7d6d5f 100644 --- a/drivers/gpu/drm/nouveau/core/include/engine/graph.h +++ b/drivers/gpu/drm/nouveau/core/include/engine/graph.h @@ -35,7 +35,7 @@ struct nouveau_graph { static inline struct nouveau_graph * nouveau_graph(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_ENGINE_GR]; + return (void *)nouveau_engine(obj, NVDEV_ENGINE_GR); } #define nouveau_graph_create(p,e,c,y,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/engine/perfmon.h b/drivers/gpu/drm/nouveau/core/include/engine/perfmon.h index 88cc812baaa3..251c8545ca58 100644 --- a/drivers/gpu/drm/nouveau/core/include/engine/perfmon.h +++ b/drivers/gpu/drm/nouveau/core/include/engine/perfmon.h @@ -24,7 +24,7 @@ struct nouveau_perfmon { static inline struct nouveau_perfmon * nouveau_perfmon(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_ENGINE_PERFMON]; + return (void *)nouveau_engine(obj, NVDEV_ENGINE_PERFMON); } extern struct nouveau_oclass *nv40_perfmon_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bar.h b/drivers/gpu/drm/nouveau/core/include/subdev/bar.h index 257ddf6d36d4..960e33a30819 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/bar.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/bar.h @@ -27,7 +27,7 @@ struct nouveau_bar { static inline struct nouveau_bar * nouveau_bar(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_BAR]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_BAR); } extern struct nouveau_oclass nv50_bar_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios.h b/drivers/gpu/drm/nouveau/core/include/subdev/bios.h index 5bd1ca8cd20d..39528a9f3c20 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/bios.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/bios.h @@ -24,7 +24,7 @@ struct nouveau_bios { static inline struct nouveau_bios * nouveau_bios(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_VBIOS]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_VBIOS); } u8 nvbios_checksum(const u8 *data, int size); diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bus.h b/drivers/gpu/drm/nouveau/core/include/subdev/bus.h index 697f7ce70aab..2d40f0c2fdfc 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/bus.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/bus.h @@ -18,7 +18,7 @@ struct nouveau_bus { static inline struct nouveau_bus * nouveau_bus(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_BUS]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_BUS); } #define nouveau_bus_create(p, e, o, d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/clock.h b/drivers/gpu/drm/nouveau/core/include/subdev/clock.h index 36ed035d4d42..0fd5e4a3a7a2 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/clock.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/clock.h @@ -104,7 +104,7 @@ struct nouveau_clock { static inline struct nouveau_clock * nouveau_clock(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_CLOCK]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_CLOCK); } struct nouveau_clocks { diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h b/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h index e007a9d44683..b627d5329543 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h @@ -15,7 +15,7 @@ struct nouveau_devinit { static inline struct nouveau_devinit * nouveau_devinit(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DEVINIT]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_DEVINIT); } extern struct nouveau_oclass *nv04_devinit_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/fb.h b/drivers/gpu/drm/nouveau/core/include/subdev/fb.h index 8d0032f15205..889603fbb0cf 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/fb.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/fb.h @@ -80,7 +80,7 @@ nouveau_fb(void *obj) nv_subidx(obj) == NVDEV_SUBDEV_FB) return obj; - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_FB]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_FB); } extern struct nouveau_oclass *nv04_fb_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/fuse.h b/drivers/gpu/drm/nouveau/core/include/subdev/fuse.h index 2b1ddb2a9a7d..cc6b02fec682 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/fuse.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/fuse.h @@ -11,7 +11,7 @@ struct nouveau_fuse { static inline struct nouveau_fuse * nouveau_fuse(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_FUSE]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_FUSE); } #define nouveau_fuse_create(p, e, o, d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h b/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h index f855140dbcb7..8b60c5de6cb9 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h @@ -35,7 +35,7 @@ struct nouveau_gpio { static inline struct nouveau_gpio * nouveau_gpio(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_GPIO]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_GPIO); } extern struct nouveau_oclass *nv10_gpio_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/i2c.h b/drivers/gpu/drm/nouveau/core/include/subdev/i2c.h index d94ccacb40bf..a400e67f2d43 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/i2c.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/i2c.h @@ -81,7 +81,7 @@ struct nouveau_i2c { static inline struct nouveau_i2c * nouveau_i2c(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_I2C]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_I2C); } extern struct nouveau_oclass *nv04_i2c_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/ibus.h b/drivers/gpu/drm/nouveau/core/include/subdev/ibus.h index 31df634c0fdc..b6387d27ea0c 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/ibus.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/ibus.h @@ -11,7 +11,7 @@ struct nouveau_ibus { static inline struct nouveau_ibus * nouveau_ibus(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_IBUS]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_IBUS); } #define nouveau_ibus_create(p,e,o,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/instmem.h b/drivers/gpu/drm/nouveau/core/include/subdev/instmem.h index c1df26f3230c..4953e6c6c86b 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/instmem.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/instmem.h @@ -42,7 +42,7 @@ nouveau_instmem(void *obj) nv_subidx(obj) == NVDEV_SUBDEV_INSTMEM) return obj; - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_INSTMEM]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_INSTMEM); } extern struct nouveau_oclass *nv04_instmem_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/ltc.h b/drivers/gpu/drm/nouveau/core/include/subdev/ltc.h index b909a7363f6b..432717a421d3 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/ltc.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/ltc.h @@ -25,7 +25,7 @@ struct nouveau_ltc { static inline struct nouveau_ltc * nouveau_ltc(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_LTC]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_LTC); } extern struct nouveau_oclass *gf100_ltc_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/mc.h b/drivers/gpu/drm/nouveau/core/include/subdev/mc.h index 568e4dfc5e9e..af7926f3a93d 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/mc.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/mc.h @@ -14,7 +14,7 @@ struct nouveau_mc { static inline struct nouveau_mc * nouveau_mc(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_MC]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_MC); } extern struct nouveau_oclass *nv04_mc_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/mxm.h b/drivers/gpu/drm/nouveau/core/include/subdev/mxm.h index b93b152cb566..94b8af23c33e 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/mxm.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/mxm.h @@ -15,7 +15,7 @@ struct nouveau_mxm { static inline struct nouveau_mxm * nouveau_mxm(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_MXM]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_MXM); } #define nouveau_mxm_create(p,e,o,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/pwr.h b/drivers/gpu/drm/nouveau/core/include/subdev/pwr.h index f2427bf5aeed..ef57c85405ff 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/pwr.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/pwr.h @@ -30,7 +30,7 @@ struct nouveau_pwr { static inline struct nouveau_pwr * nouveau_pwr(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_PWR]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_PWR); } extern struct nouveau_oclass *nva3_pwr_oclass; diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/therm.h b/drivers/gpu/drm/nouveau/core/include/subdev/therm.h index a437597dcafc..42f9574a06c9 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/therm.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/therm.h @@ -47,7 +47,7 @@ struct nouveau_therm { static inline struct nouveau_therm * nouveau_therm(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_THERM]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_THERM); } #define nouveau_therm_create(p,e,o,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/timer.h b/drivers/gpu/drm/nouveau/core/include/subdev/timer.h index db9be803a874..36b5184e35ec 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/timer.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/timer.h @@ -42,7 +42,7 @@ struct nouveau_timer { static inline struct nouveau_timer * nouveau_timer(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_TIMER]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_TIMER); } #define nouveau_timer_create(p,e,o,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/vm.h b/drivers/gpu/drm/nouveau/core/include/subdev/vm.h index c9509039f94b..d56585f1cd8c 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/vm.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/vm.h @@ -91,7 +91,7 @@ struct nouveau_vmmgr { static inline struct nouveau_vmmgr * nouveau_vmmgr(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_VM]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_VM); } #define nouveau_vmmgr_create(p,e,o,i,f,d) \ diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/volt.h b/drivers/gpu/drm/nouveau/core/include/subdev/volt.h index 67db5e58880d..13e9a83ceccc 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/volt.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/volt.h @@ -29,7 +29,7 @@ struct nouveau_volt { static inline struct nouveau_volt * nouveau_volt(void *obj) { - return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_VOLT]; + return (void *)nouveau_subdev(obj, NVDEV_SUBDEV_VOLT); } #define nouveau_volt_create(p, e, o, d) \