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;
10 struct nouveau_software_chan {
11 struct list_head flip;
13 struct list_head list;
23 nouveau_software_context_new(struct nouveau_software_chan *pch)
25 INIT_LIST_HEAD(&pch->flip);
29 nouveau_software_create(struct nouveau_software_priv *psw)
31 INIT_LIST_HEAD(&psw->vblank);
32 spin_lock_init(&psw->peephole_lock);
36 nouveau_software_class(struct drm_device *dev)
38 struct drm_nouveau_private *dev_priv = dev->dev_private;
39 if (dev_priv->card_type <= NV_04)
41 if (dev_priv->card_type <= NV_40)
43 if (dev_priv->card_type <= NV_50)
45 if (dev_priv->card_type <= NV_E0)
50 int nv04_software_create(struct drm_device *);
51 int nv50_software_create(struct drm_device *);
52 int nvc0_software_create(struct drm_device *);
53 u64 nvc0_software_crtc(struct nouveau_channel *, int crtc);