diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-08-18 18:45:27 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-12-02 00:43:49 -0500 |
commit | 1f89b4756fb83f385ac0e277b092774c01a5ab9c (patch) | |
tree | 1c7e6fc2986fc78bf8cb323e6676a1a9f4955593 | |
parent | e16cc45c7db9d094c90a7e0fb0f163203c622748 (diff) |
drm/gm204/disp: initial support
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/Makefile | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/gm204.c | 113 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/nv50.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/sorgm204.c | 132 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/engine/disp.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvif/class.h | 2 |
8 files changed, 255 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile index 6441847a3aef..d01f4ae6feb9 100644 --- a/drivers/gpu/drm/nouveau/Makefile +++ b/drivers/gpu/drm/nouveau/Makefile | |||
@@ -267,6 +267,7 @@ nouveau-y += core/engine/disp/nvd0.o | |||
267 | nouveau-y += core/engine/disp/nve0.o | 267 | nouveau-y += core/engine/disp/nve0.o |
268 | nouveau-y += core/engine/disp/nvf0.o | 268 | nouveau-y += core/engine/disp/nvf0.o |
269 | nouveau-y += core/engine/disp/gm107.o | 269 | nouveau-y += core/engine/disp/gm107.o |
270 | nouveau-y += core/engine/disp/gm204.o | ||
270 | nouveau-y += core/engine/disp/dacnv50.o | 271 | nouveau-y += core/engine/disp/dacnv50.o |
271 | nouveau-y += core/engine/disp/dport.o | 272 | nouveau-y += core/engine/disp/dport.o |
272 | nouveau-y += core/engine/disp/hdanva3.o | 273 | nouveau-y += core/engine/disp/hdanva3.o |
@@ -279,6 +280,7 @@ nouveau-y += core/engine/disp/piornv50.o | |||
279 | nouveau-y += core/engine/disp/sornv50.o | 280 | nouveau-y += core/engine/disp/sornv50.o |
280 | nouveau-y += core/engine/disp/sornv94.o | 281 | nouveau-y += core/engine/disp/sornv94.o |
281 | nouveau-y += core/engine/disp/sornvd0.o | 282 | nouveau-y += core/engine/disp/sornvd0.o |
283 | nouveau-y += core/engine/disp/sorgm204.o | ||
282 | nouveau-y += core/engine/disp/vga.o | 284 | nouveau-y += core/engine/disp/vga.o |
283 | nouveau-y += core/engine/fifo/base.o | 285 | nouveau-y += core/engine/fifo/base.o |
284 | nouveau-y += core/engine/fifo/nv04.o | 286 | nouveau-y += core/engine/fifo/nv04.o |
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/gm204.c b/drivers/gpu/drm/nouveau/core/engine/disp/gm204.c new file mode 100644 index 000000000000..ebd68eb222a4 --- /dev/null +++ b/drivers/gpu/drm/nouveau/core/engine/disp/gm204.c | |||
@@ -0,0 +1,113 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Red Hat Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | * | ||
22 | * Authors: Ben Skeggs | ||
23 | */ | ||
24 | |||
25 | #include <engine/software.h> | ||
26 | #include <engine/disp.h> | ||
27 | |||
28 | #include <nvif/class.h> | ||
29 | |||
30 | #include "nv50.h" | ||
31 | |||
32 | /******************************************************************************* | ||
33 | * Base display object | ||
34 | ******************************************************************************/ | ||
35 | |||
36 | static struct nouveau_oclass | ||
37 | gm204_disp_sclass[] = { | ||
38 | { GM204_DISP_CORE_CHANNEL_DMA, &nvd0_disp_mast_ofuncs.base }, | ||
39 | { GK110_DISP_BASE_CHANNEL_DMA, &nvd0_disp_sync_ofuncs.base }, | ||
40 | { GK104_DISP_OVERLAY_CONTROL_DMA, &nvd0_disp_ovly_ofuncs.base }, | ||
41 | { GK104_DISP_OVERLAY, &nvd0_disp_oimm_ofuncs.base }, | ||
42 | { GK104_DISP_CURSOR, &nvd0_disp_curs_ofuncs.base }, | ||
43 | {} | ||
44 | }; | ||
45 | |||
46 | static struct nouveau_oclass | ||
47 | gm204_disp_base_oclass[] = { | ||
48 | { GM204_DISP, &nvd0_disp_base_ofuncs }, | ||
49 | {} | ||
50 | }; | ||
51 | |||
52 | /******************************************************************************* | ||
53 | * Display engine implementation | ||
54 | ******************************************************************************/ | ||
55 | |||
56 | static int | ||
57 | gm204_disp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | ||
58 | struct nouveau_oclass *oclass, void *data, u32 size, | ||
59 | struct nouveau_object **pobject) | ||
60 | { | ||
61 | struct nv50_disp_priv *priv; | ||
62 | int heads = nv_rd32(parent, 0x022448); | ||
63 | int ret; | ||
64 | |||
65 | ret = nouveau_disp_create(parent, engine, oclass, heads, | ||
66 | "PDISP", "display", &priv); | ||
67 | *pobject = nv_object(priv); | ||
68 | if (ret) | ||
69 | return ret; | ||
70 | |||
71 | ret = nvkm_event_init(&nvd0_disp_chan_uevent, 1, 17, &priv->uevent); | ||
72 | if (ret) | ||
73 | return ret; | ||
74 | |||
75 | nv_engine(priv)->sclass = gm204_disp_base_oclass; | ||
76 | nv_engine(priv)->cclass = &nv50_disp_cclass; | ||
77 | nv_subdev(priv)->intr = nvd0_disp_intr; | ||
78 | INIT_WORK(&priv->supervisor, nvd0_disp_intr_supervisor); | ||
79 | priv->sclass = gm204_disp_sclass; | ||
80 | priv->head.nr = heads; | ||
81 | priv->dac.nr = 3; | ||
82 | priv->sor.nr = 4; | ||
83 | priv->dac.power = nv50_dac_power; | ||
84 | priv->dac.sense = nv50_dac_sense; | ||
85 | priv->sor.power = nv50_sor_power; | ||
86 | priv->sor.hda_eld = nvd0_hda_eld; | ||
87 | priv->sor.hdmi = nvd0_hdmi_ctrl; | ||
88 | return 0; | ||
89 | } | ||
90 | |||
91 | struct nouveau_oclass * | ||
92 | gm204_disp_outp_sclass[] = { | ||
93 | &gm204_sor_dp_impl.base.base, | ||
94 | NULL | ||
95 | }; | ||
96 | |||
97 | struct nouveau_oclass * | ||
98 | gm204_disp_oclass = &(struct nv50_disp_impl) { | ||
99 | .base.base.handle = NV_ENGINE(DISP, 0x07), | ||
100 | .base.base.ofuncs = &(struct nouveau_ofuncs) { | ||
101 | .ctor = gm204_disp_ctor, | ||
102 | .dtor = _nouveau_disp_dtor, | ||
103 | .init = _nouveau_disp_init, | ||
104 | .fini = _nouveau_disp_fini, | ||
105 | }, | ||
106 | .base.vblank = &nvd0_disp_vblank_func, | ||
107 | .base.outp = gm204_disp_outp_sclass, | ||
108 | .mthd.core = &nve0_disp_mast_mthd_chan, | ||
109 | .mthd.base = &nvd0_disp_sync_mthd_chan, | ||
110 | .mthd.ovly = &nve0_disp_ovly_mthd_chan, | ||
111 | .mthd.prev = -0x020000, | ||
112 | .head.scanoutpos = nvd0_disp_base_scanoutpos, | ||
113 | }.base.base; | ||
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h b/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h index 5279feefec06..9a0058ca8365 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h +++ b/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h | |||
@@ -242,6 +242,9 @@ int nv94_sor_dp_lnk_pwr(struct nvkm_output_dp *, int); | |||
242 | extern struct nouveau_oclass *nv94_disp_outp_sclass[]; | 242 | extern struct nouveau_oclass *nv94_disp_outp_sclass[]; |
243 | 243 | ||
244 | extern struct nvkm_output_dp_impl nvd0_sor_dp_impl; | 244 | extern struct nvkm_output_dp_impl nvd0_sor_dp_impl; |
245 | int nvd0_sor_dp_lnk_ctl(struct nvkm_output_dp *, int, int, bool); | ||
245 | extern struct nouveau_oclass *nvd0_disp_outp_sclass[]; | 246 | extern struct nouveau_oclass *nvd0_disp_outp_sclass[]; |
246 | 247 | ||
248 | extern struct nvkm_output_dp_impl gm204_sor_dp_impl; | ||
249 | |||
247 | #endif | 250 | #endif |
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sorgm204.c b/drivers/gpu/drm/nouveau/core/engine/disp/sorgm204.c new file mode 100644 index 000000000000..ee1f7ae8a52f --- /dev/null +++ b/drivers/gpu/drm/nouveau/core/engine/disp/sorgm204.c | |||
@@ -0,0 +1,132 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Red Hat Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | * | ||
22 | * Authors: Ben Skeggs | ||
23 | */ | ||
24 | |||
25 | #include <core/os.h> | ||
26 | |||
27 | #include <subdev/bios.h> | ||
28 | #include <subdev/bios/dcb.h> | ||
29 | #include <subdev/bios/dp.h> | ||
30 | #include <subdev/bios/init.h> | ||
31 | #include <subdev/timer.h> | ||
32 | |||
33 | #include "nv50.h" | ||
34 | |||
35 | static inline u32 | ||
36 | gm204_sor_soff(struct nvkm_output_dp *outp) | ||
37 | { | ||
38 | return (ffs(outp->base.info.or) - 1) * 0x800; | ||
39 | } | ||
40 | |||
41 | static inline u32 | ||
42 | gm204_sor_loff(struct nvkm_output_dp *outp) | ||
43 | { | ||
44 | return gm204_sor_soff(outp) + !(outp->base.info.sorconf.link & 1) * 0x80; | ||
45 | } | ||
46 | |||
47 | static inline u32 | ||
48 | gm204_sor_dp_lane_map(struct nv50_disp_priv *priv, u8 lane) | ||
49 | { | ||
50 | return lane * 0x08; | ||
51 | } | ||
52 | |||
53 | static int | ||
54 | gm204_sor_dp_pattern(struct nvkm_output_dp *outp, int pattern) | ||
55 | { | ||
56 | struct nv50_disp_priv *priv = (void *)nouveau_disp(outp); | ||
57 | const u32 soff = gm204_sor_soff(outp); | ||
58 | const u32 data = 0x01010101 * pattern; | ||
59 | if (outp->base.info.sorconf.link & 1) | ||
60 | nv_mask(priv, 0x61c110 + soff, 0x0f0f0f0f, data); | ||
61 | else | ||
62 | nv_mask(priv, 0x61c12c + soff, 0x0f0f0f0f, data); | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | static int | ||
67 | gm204_sor_dp_lnk_pwr(struct nvkm_output_dp *outp, int nr) | ||
68 | { | ||
69 | struct nv50_disp_priv *priv = (void *)nouveau_disp(outp); | ||
70 | const u32 soff = gm204_sor_soff(outp); | ||
71 | const u32 loff = gm204_sor_loff(outp); | ||
72 | u32 mask = 0, i; | ||
73 | |||
74 | for (i = 0; i < nr; i++) | ||
75 | mask |= 1 << (gm204_sor_dp_lane_map(priv, i) >> 3); | ||
76 | |||
77 | nv_mask(priv, 0x61c130 + loff, 0x0000000f, mask); | ||
78 | nv_mask(priv, 0x61c034 + soff, 0x80000000, 0x80000000); | ||
79 | nv_wait(priv, 0x61c034 + soff, 0x80000000, 0x00000000); | ||
80 | return 0; | ||
81 | } | ||
82 | |||
83 | static int | ||
84 | gm204_sor_dp_drv_ctl(struct nvkm_output_dp *outp, int ln, int vs, int pe, int pc) | ||
85 | { | ||
86 | struct nv50_disp_priv *priv = (void *)nouveau_disp(outp); | ||
87 | struct nouveau_bios *bios = nouveau_bios(priv); | ||
88 | const u32 shift = gm204_sor_dp_lane_map(priv, ln); | ||
89 | const u32 loff = gm204_sor_loff(outp); | ||
90 | u32 addr, data[4]; | ||
91 | u8 ver, hdr, cnt, len; | ||
92 | struct nvbios_dpout info; | ||
93 | struct nvbios_dpcfg ocfg; | ||
94 | |||
95 | addr = nvbios_dpout_match(bios, outp->base.info.hasht, | ||
96 | outp->base.info.hashm, | ||
97 | &ver, &hdr, &cnt, &len, &info); | ||
98 | if (!addr) | ||
99 | return -ENODEV; | ||
100 | |||
101 | addr = nvbios_dpcfg_match(bios, addr, pc, vs, pe, | ||
102 | &ver, &hdr, &cnt, &len, &ocfg); | ||
103 | if (!addr) | ||
104 | return -EINVAL; | ||
105 | |||
106 | data[0] = nv_rd32(priv, 0x61c118 + loff) & ~(0x000000ff << shift); | ||
107 | data[1] = nv_rd32(priv, 0x61c120 + loff) & ~(0x000000ff << shift); | ||
108 | data[2] = nv_rd32(priv, 0x61c130 + loff); | ||
109 | if ((data[2] & 0x0000ff00) < (ocfg.tx_pu << 8) || ln == 0) | ||
110 | data[2] = (data[2] & ~0x0000ff00) | (ocfg.tx_pu << 8); | ||
111 | nv_wr32(priv, 0x61c118 + loff, data[0] | (ocfg.dc << shift)); | ||
112 | nv_wr32(priv, 0x61c120 + loff, data[1] | (ocfg.pe << shift)); | ||
113 | nv_wr32(priv, 0x61c130 + loff, data[2] | (ocfg.tx_pu << 8)); | ||
114 | data[3] = nv_rd32(priv, 0x61c13c + loff) & ~(0x000000ff << shift); | ||
115 | nv_wr32(priv, 0x61c13c + loff, data[3] | (ocfg.pc << shift)); | ||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | struct nvkm_output_dp_impl | ||
120 | gm204_sor_dp_impl = { | ||
121 | .base.base.handle = DCB_OUTPUT_DP, | ||
122 | .base.base.ofuncs = &(struct nouveau_ofuncs) { | ||
123 | .ctor = _nvkm_output_dp_ctor, | ||
124 | .dtor = _nvkm_output_dp_dtor, | ||
125 | .init = _nvkm_output_dp_init, | ||
126 | .fini = _nvkm_output_dp_fini, | ||
127 | }, | ||
128 | .pattern = gm204_sor_dp_pattern, | ||
129 | .lnk_pwr = gm204_sor_dp_lnk_pwr, | ||
130 | .lnk_ctl = nvd0_sor_dp_lnk_ctl, | ||
131 | .drv_ctl = gm204_sor_dp_drv_ctl, | ||
132 | }; | ||
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c b/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c index 7b7bbc3e459e..fdab2939070c 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c | |||
@@ -60,7 +60,7 @@ nvd0_sor_dp_pattern(struct nvkm_output_dp *outp, int pattern) | |||
60 | return 0; | 60 | return 0; |
61 | } | 61 | } |
62 | 62 | ||
63 | static int | 63 | int |
64 | nvd0_sor_dp_lnk_ctl(struct nvkm_output_dp *outp, int nr, int bw, bool ef) | 64 | nvd0_sor_dp_lnk_ctl(struct nvkm_output_dp *outp, int nr, int bw, bool ef) |
65 | { | 65 | { |
66 | struct nv50_disp_priv *priv = (void *)nouveau_disp(outp); | 66 | struct nv50_disp_priv *priv = (void *)nouveau_disp(outp); |
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c b/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c index 3fc4f0b0eaca..19f5f6522962 100644 --- a/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c +++ b/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c | |||
@@ -51,6 +51,7 @@ nvd0_dmaobj_bind(struct nouveau_dmaobj *dmaobj, | |||
51 | case GK104_DISP_CORE_CHANNEL_DMA: | 51 | case GK104_DISP_CORE_CHANNEL_DMA: |
52 | case GK110_DISP_CORE_CHANNEL_DMA: | 52 | case GK110_DISP_CORE_CHANNEL_DMA: |
53 | case GM107_DISP_CORE_CHANNEL_DMA: | 53 | case GM107_DISP_CORE_CHANNEL_DMA: |
54 | case GM204_DISP_CORE_CHANNEL_DMA: | ||
54 | case GF110_DISP_BASE_CHANNEL_DMA: | 55 | case GF110_DISP_BASE_CHANNEL_DMA: |
55 | case GK104_DISP_BASE_CHANNEL_DMA: | 56 | case GK104_DISP_BASE_CHANNEL_DMA: |
56 | case GK110_DISP_BASE_CHANNEL_DMA: | 57 | case GK110_DISP_BASE_CHANNEL_DMA: |
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/disp.h b/drivers/gpu/drm/nouveau/core/include/engine/disp.h index 7a64f347b385..fc307f1317ff 100644 --- a/drivers/gpu/drm/nouveau/core/include/engine/disp.h +++ b/drivers/gpu/drm/nouveau/core/include/engine/disp.h | |||
@@ -31,5 +31,6 @@ extern struct nouveau_oclass *nvd0_disp_oclass; | |||
31 | extern struct nouveau_oclass *nve0_disp_oclass; | 31 | extern struct nouveau_oclass *nve0_disp_oclass; |
32 | extern struct nouveau_oclass *nvf0_disp_oclass; | 32 | extern struct nouveau_oclass *nvf0_disp_oclass; |
33 | extern struct nouveau_oclass *gm107_disp_oclass; | 33 | extern struct nouveau_oclass *gm107_disp_oclass; |
34 | extern struct nouveau_oclass *gm204_disp_oclass; | ||
34 | 35 | ||
35 | #endif | 36 | #endif |
diff --git a/drivers/gpu/drm/nouveau/nvif/class.h b/drivers/gpu/drm/nouveau/nvif/class.h index e5a27df0672b..0dc092ba74ae 100644 --- a/drivers/gpu/drm/nouveau/nvif/class.h +++ b/drivers/gpu/drm/nouveau/nvif/class.h | |||
@@ -35,6 +35,7 @@ | |||
35 | #define GK104_DISP 0x00009170 | 35 | #define GK104_DISP 0x00009170 |
36 | #define GK110_DISP 0x00009270 | 36 | #define GK110_DISP 0x00009270 |
37 | #define GM107_DISP 0x00009470 | 37 | #define GM107_DISP 0x00009470 |
38 | #define GM204_DISP 0x00009570 | ||
38 | 39 | ||
39 | #define NV50_DISP_CURSOR 0x0000507a | 40 | #define NV50_DISP_CURSOR 0x0000507a |
40 | #define G82_DISP_CURSOR 0x0000827a | 41 | #define G82_DISP_CURSOR 0x0000827a |
@@ -65,6 +66,7 @@ | |||
65 | #define GK104_DISP_CORE_CHANNEL_DMA 0x0000917d | 66 | #define GK104_DISP_CORE_CHANNEL_DMA 0x0000917d |
66 | #define GK110_DISP_CORE_CHANNEL_DMA 0x0000927d | 67 | #define GK110_DISP_CORE_CHANNEL_DMA 0x0000927d |
67 | #define GM107_DISP_CORE_CHANNEL_DMA 0x0000947d | 68 | #define GM107_DISP_CORE_CHANNEL_DMA 0x0000947d |
69 | #define GM204_DISP_CORE_CHANNEL_DMA 0x0000957d | ||
68 | 70 | ||
69 | #define NV50_DISP_OVERLAY_CHANNEL_DMA 0x0000507e | 71 | #define NV50_DISP_OVERLAY_CHANNEL_DMA 0x0000507e |
70 | #define G82_DISP_OVERLAY_CHANNEL_DMA 0x0000827e | 72 | #define G82_DISP_OVERLAY_CHANNEL_DMA 0x0000827e |