]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - drivers/gpu/drm/nouveau/core/include/subdev/bios/ramcfg.h
Merge tag 'ipu-fixes-3.18' of git://git.pengutronix.de/git/pza/linux into drm-next
[karo-tx-linux.git] / drivers / gpu / drm / nouveau / core / include / subdev / bios / ramcfg.h
1 #ifndef __NVBIOS_RAMCFG_H__
2 #define __NVBIOS_RAMCFG_H__
3
4 struct nouveau_bios;
5
6 struct nvbios_ramcfg {
7         unsigned rammap_ver;
8         unsigned rammap_hdr;
9         unsigned rammap_min;
10         unsigned rammap_max;
11         union {
12                 struct {
13                         unsigned rammap_10_04_02:1;
14                         unsigned rammap_10_04_08:1;
15                 };
16                 struct {
17                         unsigned rammap_11_08_01:1;
18                         unsigned rammap_11_08_0c:2;
19                         unsigned rammap_11_08_10:1;
20                         unsigned rammap_11_09_01ff:9;
21                         unsigned rammap_11_0a_03fe:9;
22                         unsigned rammap_11_0a_0400:1;
23                         unsigned rammap_11_0a_0800:1;
24                         unsigned rammap_11_0b_01f0:5;
25                         unsigned rammap_11_0b_0200:1;
26                         unsigned rammap_11_0b_0400:1;
27                         unsigned rammap_11_0b_0800:1;
28                         unsigned rammap_11_0d:8;
29                         unsigned rammap_11_0e:8;
30                         unsigned rammap_11_0f:8;
31                         unsigned rammap_11_11_0c:2;
32                 };
33         };
34
35         unsigned ramcfg_ver;
36         unsigned ramcfg_hdr;
37         unsigned ramcfg_timing;
38         union {
39                 struct {
40                         unsigned ramcfg_10_02_01:1;
41                         unsigned ramcfg_10_02_02:1;
42                         unsigned ramcfg_10_02_04:1;
43                         unsigned ramcfg_10_02_08:1;
44                         unsigned ramcfg_10_02_10:1;
45                         unsigned ramcfg_10_02_20:1;
46                         unsigned ramcfg_10_02_40:1;
47                         unsigned ramcfg_10_03_0f:4;
48                         unsigned ramcfg_10_05:8;
49                         unsigned ramcfg_10_06:8;
50                         unsigned ramcfg_10_07:8;
51                         unsigned ramcfg_10_08:8;
52                         unsigned ramcfg_10_09_0f:4;
53                         unsigned ramcfg_10_09_f0:4;
54                 };
55                 struct {
56                         unsigned ramcfg_11_01_01:1;
57                         unsigned ramcfg_11_01_02:1;
58                         unsigned ramcfg_11_01_04:1;
59                         unsigned ramcfg_11_01_08:1;
60                         unsigned ramcfg_11_01_10:1;
61                         unsigned ramcfg_11_01_20:1;
62                         unsigned ramcfg_11_01_40:1;
63                         unsigned ramcfg_11_01_80:1;
64                         unsigned ramcfg_11_02_03:2;
65                         unsigned ramcfg_11_02_04:1;
66                         unsigned ramcfg_11_02_08:1;
67                         unsigned ramcfg_11_02_10:1;
68                         unsigned ramcfg_11_02_40:1;
69                         unsigned ramcfg_11_02_80:1;
70                         unsigned ramcfg_11_03_0f:4;
71                         unsigned ramcfg_11_03_30:2;
72                         unsigned ramcfg_11_03_c0:2;
73                         unsigned ramcfg_11_03_f0:4;
74                         unsigned ramcfg_11_04:8;
75                         unsigned ramcfg_11_06:8;
76                         unsigned ramcfg_11_07_02:1;
77                         unsigned ramcfg_11_07_04:1;
78                         unsigned ramcfg_11_07_08:1;
79                         unsigned ramcfg_11_07_10:1;
80                         unsigned ramcfg_11_07_40:1;
81                         unsigned ramcfg_11_07_80:1;
82                         unsigned ramcfg_11_08_01:1;
83                         unsigned ramcfg_11_08_02:1;
84                         unsigned ramcfg_11_08_04:1;
85                         unsigned ramcfg_11_08_08:1;
86                         unsigned ramcfg_11_08_10:1;
87                         unsigned ramcfg_11_08_20:1;
88                         unsigned ramcfg_11_09:8;
89                 };
90         };
91
92         unsigned timing_ver;
93         unsigned timing_hdr;
94         unsigned timing[11];
95         union {
96                 struct {
97                         unsigned timing_10_WR:8;
98                         unsigned timing_10_CL:8;
99                         unsigned timing_10_ODT:3;
100                         unsigned timing_10_CWL:8;
101                 };
102                 struct {
103                         unsigned timing_20_2e_03:2;
104                         unsigned timing_20_2e_30:2;
105                         unsigned timing_20_2e_c0:2;
106                         unsigned timing_20_2f_03:2;
107                         unsigned timing_20_2c_003f:6;
108                         unsigned timing_20_2c_1fc0:7;
109                         unsigned timing_20_30_f8:5;
110                         unsigned timing_20_30_07:3;
111                         unsigned timing_20_31_0007:3;
112                         unsigned timing_20_31_0078:4;
113                         unsigned timing_20_31_0780:4;
114                         unsigned timing_20_31_0800:1;
115                         unsigned timing_20_31_7000:3;
116                         unsigned timing_20_31_8000:1;
117                 };
118         };
119 };
120
121 u8 nvbios_ramcfg_count(struct nouveau_bios *);
122 u8 nvbios_ramcfg_index(struct nouveau_subdev *);
123
124 #endif