Adding support for MOXA ART SoC. Testing port of linux-2.6.32.60-moxart.
[linux-3.6.7-moxart.git] / drivers / gpu / drm / nouveau / nouveau_software.h
blob709e5ac680ec8356ea5b5c4b4ba61bf5ae9c4480
1 #ifndef __NOUVEAU_SOFTWARE_H__
2 #define __NOUVEAU_SOFTWARE_H__
4 struct nouveau_software_priv {
5 struct nouveau_exec_engine base;
6 struct list_head vblank;
7 spinlock_t peephole_lock;
8 };
10 struct nouveau_software_chan {
11 struct list_head flip;
12 struct {
13 struct list_head list;
14 u32 channel;
15 u32 ctxdma;
16 u32 offset;
17 u32 value;
18 u32 head;
19 } vblank;
22 static inline void
23 nouveau_software_context_new(struct nouveau_software_chan *pch)
25 INIT_LIST_HEAD(&pch->flip);
26 INIT_LIST_HEAD(&pch->vblank.list);
29 static inline void
30 nouveau_software_create(struct nouveau_software_priv *psw)
32 INIT_LIST_HEAD(&psw->vblank);
33 spin_lock_init(&psw->peephole_lock);
36 static inline u16
37 nouveau_software_class(struct drm_device *dev)
39 struct drm_nouveau_private *dev_priv = dev->dev_private;
40 if (dev_priv->card_type <= NV_04)
41 return 0x006e;
42 if (dev_priv->card_type <= NV_40)
43 return 0x016e;
44 if (dev_priv->card_type <= NV_50)
45 return 0x506e;
46 if (dev_priv->card_type <= NV_E0)
47 return 0x906e;
48 return 0x0000;
51 int nv04_software_create(struct drm_device *);
52 int nv50_software_create(struct drm_device *);
53 int nvc0_software_create(struct drm_device *);
54 u64 nvc0_software_crtc(struct nouveau_channel *, int crtc);
56 #endif