drm/nouveau/drm/nv50-: remove allocation of sw class
authorBen Skeggs <bskeggs@redhat.com>
Tue, 8 May 2018 10:39:47 +0000 (20:39 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 18 May 2018 05:01:26 +0000 (15:01 +1000)
Hasn't been required for a long time.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_dma.h
drivers/gpu/drm/nouveau/nouveau_drm.c

index 89c87111bbbddc145b41b49eea14c6d39ca1137f..fc5e3f41282ddcc7cca78c7aa20ebc928704ab6c 100644 (file)
@@ -54,7 +54,6 @@ enum {
 
        NvSub2D         = 3, /* DO NOT CHANGE - hardcoded for kepler gr fifo */
        NvSubCopy       = 4, /* DO NOT CHANGE - hardcoded for kepler gr fifo */
-       FermiSw         = 5, /* DO NOT CHANGE (well.. 6/7 will work...) */
 };
 
 /* Object handles - for stuff that's doesn't use handle == oclass. */
index 64b8fd0c4d68f64eb54082b560e3149137fdb322..8e506c5d5a731b57f523cf855cc3ea935d9e1c54 100644 (file)
@@ -388,38 +388,36 @@ nouveau_accel_init(struct nouveau_drm *drm)
                return;
        }
 
-       ret = nvif_object_init(&drm->channel->user, NVDRM_NVSW,
-                              nouveau_abi16_swclass(drm), NULL, 0, &drm->nvsw);
-       if (ret == 0) {
-               ret = RING_SPACE(drm->channel, 2);
+       if (device->info.family < NV_DEVICE_INFO_V0_TESLA) {
+               ret = nvif_object_init(&drm->channel->user, NVDRM_NVSW,
+                                      nouveau_abi16_swclass(drm), NULL, 0,
+                                      &drm->nvsw);
                if (ret == 0) {
-                       if (device->info.family < NV_DEVICE_INFO_V0_FERMI) {
+                       ret = RING_SPACE(drm->channel, 2);
+                       if (ret == 0) {
                                BEGIN_NV04(drm->channel, NvSubSw, 0, 1);
-                               OUT_RING  (drm->channel, NVDRM_NVSW);
-                       } else
-                       if (device->info.family < NV_DEVICE_INFO_V0_KEPLER) {
-                               BEGIN_NVC0(drm->channel, FermiSw, 0, 1);
-                               OUT_RING  (drm->channel, 0x001f0000);
+                               OUT_RING  (drm->channel, drm->nvsw.handle);
+                       }
+
+                       ret = nvif_notify_init(&drm->nvsw,
+                                              nouveau_flip_complete,
+                                              false, NV04_NVSW_NTFY_UEVENT,
+                                              NULL, 0, 0, &drm->flip);
+                       if (ret == 0)
+                               ret = nvif_notify_get(&drm->flip);
+                       if (ret) {
+                               nouveau_accel_fini(drm);
+                               return;
                        }
                }
 
-               ret = nvif_notify_init(&drm->nvsw, nouveau_flip_complete,
-                                      false, NV04_NVSW_NTFY_UEVENT,
-                                      NULL, 0, 0, &drm->flip);
-               if (ret == 0)
-                       ret = nvif_notify_get(&drm->flip);
                if (ret) {
+                       NV_ERROR(drm, "failed to allocate sw class, %d\n", ret);
                        nouveau_accel_fini(drm);
                        return;
                }
        }
 
-       if (ret) {
-               NV_ERROR(drm, "failed to allocate software object, %d\n", ret);
-               nouveau_accel_fini(drm);
-               return;
-       }
-
        if (device->info.family < NV_DEVICE_INFO_V0_FERMI) {
                ret = nvkm_gpuobj_new(nvxx_device(&drm->client.device), 32, 0,
                                      false, NULL, &drm->notify);