.. | .. |
---|
1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
---|
| 1 | +/* SPDX-License-Identifier: MIT */ |
---|
2 | 2 | #ifndef __NVKM_DISP_IOR_H__ |
---|
3 | 3 | #define __NVKM_DISP_IOR_H__ |
---|
4 | 4 | #include "priv.h" |
---|
.. | .. |
---|
41 | 41 | u8 nr; |
---|
42 | 42 | u8 bw; |
---|
43 | 43 | } dp; |
---|
| 44 | + |
---|
| 45 | + /* Armed TMDS state. */ |
---|
| 46 | + struct { |
---|
| 47 | + bool high_speed; |
---|
| 48 | + } tmds; |
---|
44 | 49 | }; |
---|
45 | 50 | |
---|
46 | 51 | struct nvkm_ior_func { |
---|
.. | .. |
---|
61 | 66 | void (*ctrl)(struct nvkm_ior *, int head, bool enable, |
---|
62 | 67 | u8 max_ac_packet, u8 rekey, u8 *avi, u8 avi_size, |
---|
63 | 68 | u8 *vendor, u8 vendor_size); |
---|
| 69 | + void (*scdc)(struct nvkm_ior *, u8 scdc); |
---|
64 | 70 | } hdmi; |
---|
65 | 71 | |
---|
66 | 72 | struct { |
---|
.. | .. |
---|
81 | 87 | |
---|
82 | 88 | struct { |
---|
83 | 89 | void (*hpd)(struct nvkm_ior *, int head, bool present); |
---|
84 | | - void (*eld)(struct nvkm_ior *, u8 *data, u8 size); |
---|
| 90 | + void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size); |
---|
| 91 | + void (*device_entry)(struct nvkm_ior *, int head); |
---|
85 | 92 | } hda; |
---|
86 | 93 | }; |
---|
87 | 94 | |
---|
.. | .. |
---|
138 | 145 | int gm200_sor_route_get(struct nvkm_outp *, int *); |
---|
139 | 146 | void gm200_sor_dp_drive(struct nvkm_ior *, int, int, int, int, int); |
---|
140 | 147 | |
---|
| 148 | +void gv100_sor_state(struct nvkm_ior *, struct nvkm_ior_state *); |
---|
| 149 | +void gv100_sor_dp_audio(struct nvkm_ior *, int, bool); |
---|
| 150 | +void gv100_sor_dp_audio_sym(struct nvkm_ior *, int, u16, u32); |
---|
| 151 | +void gv100_sor_dp_watermark(struct nvkm_ior *, int, u8); |
---|
| 152 | + |
---|
141 | 153 | void g84_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); |
---|
142 | 154 | void gt215_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); |
---|
143 | 155 | void gf119_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); |
---|
144 | 156 | void gk104_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); |
---|
145 | 157 | void gv100_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); |
---|
146 | 158 | |
---|
| 159 | +void gm200_hdmi_scdc(struct nvkm_ior *, u8); |
---|
| 160 | + |
---|
147 | 161 | void gt215_hda_hpd(struct nvkm_ior *, int, bool); |
---|
148 | | -void gt215_hda_eld(struct nvkm_ior *, u8 *, u8); |
---|
| 162 | +void gt215_hda_eld(struct nvkm_ior *, int, u8 *, u8); |
---|
149 | 163 | |
---|
150 | 164 | void gf119_hda_hpd(struct nvkm_ior *, int, bool); |
---|
151 | | -void gf119_hda_eld(struct nvkm_ior *, u8 *, u8); |
---|
| 165 | +void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8); |
---|
| 166 | +void gf119_hda_device_entry(struct nvkm_ior *, int); |
---|
| 167 | + |
---|
| 168 | +void gv100_hda_device_entry(struct nvkm_ior *, int); |
---|
152 | 169 | |
---|
153 | 170 | #define IOR_MSG(i,l,f,a...) do { \ |
---|
154 | 171 | struct nvkm_ior *_ior = (i); \ |
---|
.. | .. |
---|
184 | 201 | int gk104_sor_new(struct nvkm_disp *, int); |
---|
185 | 202 | int gm107_sor_new(struct nvkm_disp *, int); |
---|
186 | 203 | int gm200_sor_new(struct nvkm_disp *, int); |
---|
| 204 | +int gp100_sor_new(struct nvkm_disp *, int); |
---|
187 | 205 | |
---|
188 | 206 | int gv100_sor_cnt(struct nvkm_disp *, unsigned long *); |
---|
189 | 207 | int gv100_sor_new(struct nvkm_disp *, int); |
---|
| 208 | + |
---|
| 209 | +int tu102_sor_new(struct nvkm_disp *, int); |
---|
190 | 210 | #endif |
---|