| .. | .. |
|---|
| 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 |
|---|