drm/nouveau/sw: turn flip completion into an event
authorBen Skeggs <bskeggs@redhat.com>
Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 28 Aug 2015 02:40:38 +0000 (12:40 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
18 files changed:
drivers/gpu/drm/nouveau/include/nvif/class.h
drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h
drivers/gpu/drm/nouveau/nouveau_chan.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/nouveau/nouveau_drm.h
drivers/gpu/drm/nouveau/nouveau_fence.h
drivers/gpu/drm/nouveau/nvkm/engine/sw/Kbuild
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.h
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.h [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/engine/sw/priv.h [new file with mode: 0644]

index 4dd2c6e..d8bad60 100644 (file)
@@ -584,6 +584,8 @@ struct nv50_disp_overlay_v0 {
  * software
  ******************************************************************************/
 
+#define NVSW_NTFY_UEVENT                                                   0x00
+
 #define NV04_NVSW_GET_REF                                                  0x00
 
 struct nv04_nvsw_get_ref_v0 {
index 8dae958..b06140a 100644 (file)
@@ -1,27 +1,5 @@
 #ifndef __NVKM_SW_H__
 #define __NVKM_SW_H__
-#include <core/engctx.h>
-
-struct nvkm_sw_chan {
-       struct nvkm_engctx base;
-
-       int (*flip)(void *);
-       void *flip_data;
-};
-
-#define nvkm_sw_context_create(p,e,c,d)                               \
-       nvkm_engctx_create((p), (e), (c), (p), 0, 0, 0, (d))
-#define nvkm_sw_context_destroy(d)                                    \
-       nvkm_engctx_destroy(&(d)->base)
-#define nvkm_sw_context_init(d)                                       \
-       nvkm_engctx_init(&(d)->base)
-#define nvkm_sw_context_fini(d,s)                                     \
-       nvkm_engctx_fini(&(d)->base, (s))
-
-#define _nvkm_sw_context_dtor _nvkm_engctx_dtor
-#define _nvkm_sw_context_init _nvkm_engctx_init
-#define _nvkm_sw_context_fini _nvkm_engctx_fini
-
 #include <core/engine.h>
 
 struct nvkm_sw {
index 7f3e821..4a13bda 100644 (file)
@@ -293,7 +293,6 @@ nouveau_channel_init(struct nouveau_channel *chan, u32 vram, u32 gart)
        struct nvif_device *device = chan->device;
        struct nouveau_cli *cli = (void *)chan->user.client;
        struct nvkm_mmu *mmu = nvxx_mmu(device);
-       struct nvkm_sw_chan *swch;
        struct nv_dma_v0 args = {};
        int ret, i;
 
@@ -382,10 +381,6 @@ nouveau_channel_init(struct nouveau_channel *chan, u32 vram, u32 gart)
                if (ret)
                        return ret;
 
-               swch = (void *)nvxx_object(&chan->nvsw)->parent;
-               swch->flip = nouveau_flip_complete;
-               swch->flip_data = chan;
-
                ret = RING_SPACE(chan, 2);
                if (ret)
                        return ret;
Simple merge
Simple merge