Loading drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h +9 −72 Original line number Diff line number Diff line Loading @@ -4,78 +4,15 @@ #include <core/device.h> enum nvkm_subdev_type { NVKM_SUBDEV_PCI, NVKM_SUBDEV_VBIOS, NVKM_SUBDEV_DEVINIT, NVKM_SUBDEV_TOP, NVKM_SUBDEV_IBUS, NVKM_SUBDEV_GPIO, NVKM_SUBDEV_I2C, NVKM_SUBDEV_FUSE, NVKM_SUBDEV_MXM, NVKM_SUBDEV_MC, NVKM_SUBDEV_BUS, NVKM_SUBDEV_TIMER, NVKM_SUBDEV_INSTMEM, NVKM_SUBDEV_FB, NVKM_SUBDEV_LTC, NVKM_SUBDEV_MMU, NVKM_SUBDEV_BAR, NVKM_SUBDEV_FAULT, NVKM_SUBDEV_ACR, NVKM_SUBDEV_PMU, NVKM_SUBDEV_VOLT, NVKM_SUBDEV_ICCSENSE, NVKM_SUBDEV_THERM, NVKM_SUBDEV_CLK, NVKM_SUBDEV_GSP, NVKM_ENGINE_BSP, NVKM_ENGINE_CE0, NVKM_ENGINE_CE = NVKM_ENGINE_CE0, NVKM_ENGINE_CE1, NVKM_ENGINE_CE2, NVKM_ENGINE_CE3, NVKM_ENGINE_CE4, NVKM_ENGINE_CE5, NVKM_ENGINE_CE6, NVKM_ENGINE_CE7, NVKM_ENGINE_CE8, NVKM_ENGINE_CE_LAST = NVKM_ENGINE_CE8, NVKM_ENGINE_CIPHER, NVKM_ENGINE_DISP, NVKM_ENGINE_DMAOBJ, NVKM_ENGINE_FIFO, NVKM_ENGINE_GR, NVKM_ENGINE_IFB, NVKM_ENGINE_ME, NVKM_ENGINE_MPEG, NVKM_ENGINE_MSENC, NVKM_ENGINE_MSPDEC, NVKM_ENGINE_MSPPP, NVKM_ENGINE_MSVLD, NVKM_ENGINE_NVENC0, NVKM_ENGINE_NVENC = NVKM_ENGINE_NVENC0, NVKM_ENGINE_NVENC1, NVKM_ENGINE_NVENC2, NVKM_ENGINE_NVENC_LAST = NVKM_ENGINE_NVENC2, NVKM_ENGINE_NVDEC0, NVKM_ENGINE_NVDEC = NVKM_ENGINE_NVDEC0, NVKM_ENGINE_NVDEC1, NVKM_ENGINE_NVDEC2, NVKM_ENGINE_NVDEC_LAST = NVKM_ENGINE_NVDEC2, NVKM_ENGINE_PM, NVKM_ENGINE_SEC, NVKM_ENGINE_SEC2, NVKM_ENGINE_SW, NVKM_ENGINE_VIC, NVKM_ENGINE_VP, #define NVKM_LAYOUT_ONCE(t,s,p) t, #define NVKM_LAYOUT_INST_3(t) t, t##0 = t, t##1, t##2, t##_LAST = t##2, #define NVKM_LAYOUT_INST_9(t) t, t##0 = t, t##1, t##2, t##3, t##4, t##5, t##6, t##7, t##8, t##_LAST = t##8, #define NVKM_LAYOUT_INST(t,s,p,c) NVKM_LAYOUT_INST_##c(t) #include <core/layout.h> #undef NVKM_LAYOUT_INST_9 #undef NVKM_LAYOUT_INST_3 #undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_ONCE NVKM_SUBDEV_NR }; Loading drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +5 −27 Original line number Diff line number Diff line Loading @@ -2848,7 +2848,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, struct nvkm_subdev *subdev; u64 mmio_base, mmio_size; u32 boot0, boot1, strap; int ret = -EEXIST, i, j; int ret = -EEXIST, j; unsigned chipset; mutex_lock(&nv_devices_mutex); Loading Loading @@ -3099,9 +3099,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, mutex_init(&device->mutex); for (i = 0; i < NVKM_SUBDEV_NR; i++) { switch (i) { #define NVKM_LAYOUT_ONCE(type,data,ptr) case type: \ #define NVKM_LAYOUT_ONCE(type,data,ptr) \ if (device->chip->ptr.inst && (subdev_mask & (BIT_ULL(type)))) { \ WARN_ON(device->chip->ptr.inst != 0x00000001); \ ret = device->chip->ptr.ctor(device, (type), -1, &device->ptr); \ Loading @@ -3117,9 +3115,8 @@ nvkm_device_ctor(const struct nvkm_device_func *func, } else { \ subdev->pself = (void **)&device->ptr; \ } \ } \ break; #define NVKM_LAYOUT_INST(type,data,ptr,cnt) case type: \ } #define NVKM_LAYOUT_INST(type,data,ptr,cnt) \ WARN_ON(device->chip->ptr.inst & ~((1 << ARRAY_SIZE(device->ptr)) - 1)); \ for (j = 0; device->chip->ptr.inst && j < ARRAY_SIZE(device->ptr); j++) { \ if ((device->chip->ptr.inst & BIT(j)) && (subdev_mask & BIT_ULL(type))) { \ Loading @@ -3138,29 +3135,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func, subdev->pself = (void **)&device->ptr[j]; \ } \ } \ } \ break; } #include <core/layout.h> #undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_ONCE case NVKM_ENGINE_CE1: case NVKM_ENGINE_CE2: case NVKM_ENGINE_CE3: case NVKM_ENGINE_CE4: case NVKM_ENGINE_CE5: case NVKM_ENGINE_CE6: case NVKM_ENGINE_CE7: case NVKM_ENGINE_CE8: case NVKM_ENGINE_NVDEC1: case NVKM_ENGINE_NVDEC2: case NVKM_ENGINE_NVENC1: case NVKM_ENGINE_NVENC2: break; default: WARN_ON(1); continue; } } ret = 0; done: Loading Loading
drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h +9 −72 Original line number Diff line number Diff line Loading @@ -4,78 +4,15 @@ #include <core/device.h> enum nvkm_subdev_type { NVKM_SUBDEV_PCI, NVKM_SUBDEV_VBIOS, NVKM_SUBDEV_DEVINIT, NVKM_SUBDEV_TOP, NVKM_SUBDEV_IBUS, NVKM_SUBDEV_GPIO, NVKM_SUBDEV_I2C, NVKM_SUBDEV_FUSE, NVKM_SUBDEV_MXM, NVKM_SUBDEV_MC, NVKM_SUBDEV_BUS, NVKM_SUBDEV_TIMER, NVKM_SUBDEV_INSTMEM, NVKM_SUBDEV_FB, NVKM_SUBDEV_LTC, NVKM_SUBDEV_MMU, NVKM_SUBDEV_BAR, NVKM_SUBDEV_FAULT, NVKM_SUBDEV_ACR, NVKM_SUBDEV_PMU, NVKM_SUBDEV_VOLT, NVKM_SUBDEV_ICCSENSE, NVKM_SUBDEV_THERM, NVKM_SUBDEV_CLK, NVKM_SUBDEV_GSP, NVKM_ENGINE_BSP, NVKM_ENGINE_CE0, NVKM_ENGINE_CE = NVKM_ENGINE_CE0, NVKM_ENGINE_CE1, NVKM_ENGINE_CE2, NVKM_ENGINE_CE3, NVKM_ENGINE_CE4, NVKM_ENGINE_CE5, NVKM_ENGINE_CE6, NVKM_ENGINE_CE7, NVKM_ENGINE_CE8, NVKM_ENGINE_CE_LAST = NVKM_ENGINE_CE8, NVKM_ENGINE_CIPHER, NVKM_ENGINE_DISP, NVKM_ENGINE_DMAOBJ, NVKM_ENGINE_FIFO, NVKM_ENGINE_GR, NVKM_ENGINE_IFB, NVKM_ENGINE_ME, NVKM_ENGINE_MPEG, NVKM_ENGINE_MSENC, NVKM_ENGINE_MSPDEC, NVKM_ENGINE_MSPPP, NVKM_ENGINE_MSVLD, NVKM_ENGINE_NVENC0, NVKM_ENGINE_NVENC = NVKM_ENGINE_NVENC0, NVKM_ENGINE_NVENC1, NVKM_ENGINE_NVENC2, NVKM_ENGINE_NVENC_LAST = NVKM_ENGINE_NVENC2, NVKM_ENGINE_NVDEC0, NVKM_ENGINE_NVDEC = NVKM_ENGINE_NVDEC0, NVKM_ENGINE_NVDEC1, NVKM_ENGINE_NVDEC2, NVKM_ENGINE_NVDEC_LAST = NVKM_ENGINE_NVDEC2, NVKM_ENGINE_PM, NVKM_ENGINE_SEC, NVKM_ENGINE_SEC2, NVKM_ENGINE_SW, NVKM_ENGINE_VIC, NVKM_ENGINE_VP, #define NVKM_LAYOUT_ONCE(t,s,p) t, #define NVKM_LAYOUT_INST_3(t) t, t##0 = t, t##1, t##2, t##_LAST = t##2, #define NVKM_LAYOUT_INST_9(t) t, t##0 = t, t##1, t##2, t##3, t##4, t##5, t##6, t##7, t##8, t##_LAST = t##8, #define NVKM_LAYOUT_INST(t,s,p,c) NVKM_LAYOUT_INST_##c(t) #include <core/layout.h> #undef NVKM_LAYOUT_INST_9 #undef NVKM_LAYOUT_INST_3 #undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_ONCE NVKM_SUBDEV_NR }; Loading
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +5 −27 Original line number Diff line number Diff line Loading @@ -2848,7 +2848,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, struct nvkm_subdev *subdev; u64 mmio_base, mmio_size; u32 boot0, boot1, strap; int ret = -EEXIST, i, j; int ret = -EEXIST, j; unsigned chipset; mutex_lock(&nv_devices_mutex); Loading Loading @@ -3099,9 +3099,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, mutex_init(&device->mutex); for (i = 0; i < NVKM_SUBDEV_NR; i++) { switch (i) { #define NVKM_LAYOUT_ONCE(type,data,ptr) case type: \ #define NVKM_LAYOUT_ONCE(type,data,ptr) \ if (device->chip->ptr.inst && (subdev_mask & (BIT_ULL(type)))) { \ WARN_ON(device->chip->ptr.inst != 0x00000001); \ ret = device->chip->ptr.ctor(device, (type), -1, &device->ptr); \ Loading @@ -3117,9 +3115,8 @@ nvkm_device_ctor(const struct nvkm_device_func *func, } else { \ subdev->pself = (void **)&device->ptr; \ } \ } \ break; #define NVKM_LAYOUT_INST(type,data,ptr,cnt) case type: \ } #define NVKM_LAYOUT_INST(type,data,ptr,cnt) \ WARN_ON(device->chip->ptr.inst & ~((1 << ARRAY_SIZE(device->ptr)) - 1)); \ for (j = 0; device->chip->ptr.inst && j < ARRAY_SIZE(device->ptr); j++) { \ if ((device->chip->ptr.inst & BIT(j)) && (subdev_mask & BIT_ULL(type))) { \ Loading @@ -3138,29 +3135,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func, subdev->pself = (void **)&device->ptr[j]; \ } \ } \ } \ break; } #include <core/layout.h> #undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_ONCE case NVKM_ENGINE_CE1: case NVKM_ENGINE_CE2: case NVKM_ENGINE_CE3: case NVKM_ENGINE_CE4: case NVKM_ENGINE_CE5: case NVKM_ENGINE_CE6: case NVKM_ENGINE_CE7: case NVKM_ENGINE_CE8: case NVKM_ENGINE_NVDEC1: case NVKM_ENGINE_NVDEC2: case NVKM_ENGINE_NVENC1: case NVKM_ENGINE_NVENC2: break; default: WARN_ON(1); continue; } } ret = 0; done: Loading