This source file includes following definitions.
- corec57d_init
- corec57d_new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include "core.h"
23 #include "head.h"
24
25 static void
26 corec57d_init(struct nv50_core *core)
27 {
28 const u32 windows = 8;
29 u32 *push, i;
30 if ((push = evo_wait(&core->chan, 2 + 6 * windows + 2))) {
31 evo_mthd(push, 0x0208, 1);
32 evo_data(push, core->chan.sync.handle);
33 for (i = 0; i < windows; i++) {
34 evo_mthd(push, 0x1000 + (i * 0x080), 3);
35 evo_data(push, i >> 1);
36 evo_data(push, 0x0000000f);
37 evo_data(push, 0x00000000);
38 evo_mthd(push, 0x1010 + (i * 0x080), 1);
39 evo_data(push, 0x00117fff);
40 }
41 evo_mthd(push, 0x0200, 1);
42 evo_data(push, 0x00000001);
43 evo_kick(push, &core->chan);
44 }
45 }
46
47 static const struct nv50_core_func
48 corec57d = {
49 .init = corec57d_init,
50 .ntfy_init = corec37d_ntfy_init,
51 .ntfy_wait_done = corec37d_ntfy_wait_done,
52 .update = corec37d_update,
53 .head = &headc57d,
54 .sor = &sorc37d,
55 };
56
57 int
58 corec57d_new(struct nouveau_drm *drm, s32 oclass, struct nv50_core **pcore)
59 {
60 return core507d_new_(&corec57d, drm, oclass, pcore);
61 }