Skip to content

Commit

Permalink
drm/nouveau: share fence structures between nv10+ and nv50 implementa…
Browse files Browse the repository at this point in the history
…tions

We already rely on them having the same fields and layout.

Signed-off-by: Marcin Slusarz <[email protected]>
Signed-off-by: Ben Skeggs <[email protected]>
  • Loading branch information
mslusarz authored and Ben Skeggs committed Feb 20, 2013
1 parent a624baf commit a4cea27
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 27 deletions.
13 changes: 1 addition & 12 deletions drivers/gpu/drm/nouveau/nv10_fence.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,7 @@

#include "nouveau_drm.h"
#include "nouveau_dma.h"
#include "nouveau_fence.h"

struct nv10_fence_chan {
struct nouveau_fence_chan base;
};

struct nv10_fence_priv {
struct nouveau_fence_priv base;
struct nouveau_bo *bo;
spinlock_t lock;
u32 sequence;
};
#include "nv10_fence.h"

int
nv10_fence_emit(struct nouveau_fence *fence)
Expand Down
19 changes: 19 additions & 0 deletions drivers/gpu/drm/nouveau/nv10_fence.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#ifndef __NV10_FENCE_H_
#define __NV10_FENCE_H_

#include <core/os.h>
#include "nouveau_fence.h"
#include "nouveau_bo.h"

struct nv10_fence_chan {
struct nouveau_fence_chan base;
};

struct nv10_fence_priv {
struct nouveau_fence_priv base;
struct nouveau_bo *bo;
spinlock_t lock;
u32 sequence;
};

#endif
19 changes: 4 additions & 15 deletions drivers/gpu/drm/nouveau/nv50_fence.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,16 @@

#include "nouveau_drm.h"
#include "nouveau_dma.h"
#include "nouveau_fence.h"
#include "nv10_fence.h"

#include "nv50_display.h"

struct nv50_fence_chan {
struct nouveau_fence_chan base;
};

struct nv50_fence_priv {
struct nouveau_fence_priv base;
struct nouveau_bo *bo;
spinlock_t lock;
u32 sequence;
};

static int
nv50_fence_context_new(struct nouveau_channel *chan)
{
struct drm_device *dev = chan->drm->dev;
struct nv50_fence_priv *priv = chan->drm->fence;
struct nv50_fence_chan *fctx;
struct nv10_fence_priv *priv = chan->drm->fence;
struct nv10_fence_chan *fctx;
struct ttm_mem_reg *mem = &priv->bo->bo.mem;
struct nouveau_object *object;
int ret, i;
Expand Down Expand Up @@ -91,7 +80,7 @@ nv50_fence_context_new(struct nouveau_channel *chan)
int
nv50_fence_create(struct nouveau_drm *drm)
{
struct nv50_fence_priv *priv;
struct nv10_fence_priv *priv;
int ret = 0;

priv = drm->fence = kzalloc(sizeof(*priv), GFP_KERNEL);
Expand Down

0 comments on commit a4cea27

Please sign in to comment.