1 /* SPDX-License-Identifier: MIT */
2 #ifndef __NVIF_OUTP_H__
3 #define __NVIF_OUTP_H__
4 #include <nvif/object.h>
5 #include <nvif/if0012.h>
6 struct nvif_disp;
7 
8 struct nvif_outp {
9 	struct nvif_object object;
10 
11 	struct {
12 		int id;
13 		int link;
14 	} or;
15 };
16 
17 int nvif_outp_ctor(struct nvif_disp *, const char *name, int id, struct nvif_outp *);
18 void nvif_outp_dtor(struct nvif_outp *);
19 int nvif_outp_load_detect(struct nvif_outp *, u32 loadval);
20 int nvif_outp_acquire_rgb_crt(struct nvif_outp *);
21 int nvif_outp_acquire_tmds(struct nvif_outp *, int head,
22 			   bool hdmi, u8 max_ac_packet, u8 rekey, u8 scdc, bool hda);
23 int nvif_outp_acquire_lvds(struct nvif_outp *, bool dual, bool bpc8);
24 int nvif_outp_acquire_dp(struct nvif_outp *, u8 dpcd[16],
25 			 int link_nr, int link_bw, bool hda, bool mst);
26 void nvif_outp_release(struct nvif_outp *);
27 int nvif_outp_infoframe(struct nvif_outp *, u8 type, struct nvif_outp_infoframe_v0 *, u32 size);
28 int nvif_outp_hda_eld(struct nvif_outp *, int head, void *data, u32 size);
29 int nvif_outp_dp_aux_pwr(struct nvif_outp *, bool enable);
30 int nvif_outp_dp_retrain(struct nvif_outp *);
31 int nvif_outp_dp_mst_vcpi(struct nvif_outp *, int head,
32 			  u8 start_slot, u8 num_slots, u16 pbn, u16 aligned_pbn);
33 #endif
34