Set memory attributes on page
[pscnv.git] / pscnv / pscnv_engine.h
blobd2d96e757af22972b0a3821aa6de6c99752f0e04
1 #ifndef __PSCNV_ENGINE_H__
2 #define __PSCNV_ENGINE_H__
4 struct pscnv_chan;
5 struct pscnv_vspace;
7 struct pscnv_engine {
8 struct drm_device *dev;
9 uint32_t *oclasses;
10 void (*takedown) (struct pscnv_engine *eng);
11 int (*tlb_flush) (struct pscnv_engine *eng, struct pscnv_vspace *vs);
12 int (*chan_alloc) (struct pscnv_engine *eng, struct pscnv_chan *ch);
13 void (*chan_free) (struct pscnv_engine *eng, struct pscnv_chan *ch);
14 int (*chan_obj_new) (struct pscnv_engine *eng, struct pscnv_chan *ch, uint32_t handle, uint32_t oclass, uint32_t flags);
15 void (*chan_kill) (struct pscnv_engine *eng, struct pscnv_chan *ch);
18 int nv50_graph_init(struct drm_device *dev);
19 int nvc0_graph_init(struct drm_device *dev);
20 int nv84_crypt_init(struct drm_device *dev);
21 int nv98_crypt_init(struct drm_device *dev);
22 int nvc0_copy_init(struct drm_device *dev, int engine);
24 #define PSCNV_ENGINE_GRAPH 1
25 #define PSCNV_ENGINE_COPY 3
26 #define PSCNV_ENGINE_COPY0 3 /* PSCNV_ENGINE_COPY + 0 */
27 #define PSCNV_ENGINE_COPY1 4 /* PSCNV_ENGINE_COPY + 1 */
28 #define PSCNV_ENGINE_CRYPT 5
30 #define PSCNV_ENGINES_NUM 16
33 #endif