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 #include <drm/display/drm_dp.h> 7 struct nvif_disp; 8 9 struct nvif_outp { 10 struct nvif_object object; 11 12 struct { 13 int id; 14 int link; 15 } or; 16 }; 17 18 int nvif_outp_ctor(struct nvif_disp *, const char *name, int id, struct nvif_outp *); 19 void nvif_outp_dtor(struct nvif_outp *); 20 int nvif_outp_load_detect(struct nvif_outp *, u32 loadval); 21 int nvif_outp_acquire_rgb_crt(struct nvif_outp *); 22 int nvif_outp_acquire_tmds(struct nvif_outp *, int head, 23 bool hdmi, u8 max_ac_packet, u8 rekey, u8 scdc, bool hda); 24 int nvif_outp_acquire_lvds(struct nvif_outp *, bool dual, bool bpc8); 25 int nvif_outp_acquire_dp(struct nvif_outp *outp, u8 dpcd[DP_RECEIVER_CAP_SIZE], 26 int link_nr, int link_bw, bool hda, bool mst); 27 void nvif_outp_release(struct nvif_outp *); 28 int nvif_outp_infoframe(struct nvif_outp *, u8 type, struct nvif_outp_infoframe_v0 *, u32 size); 29 int nvif_outp_hda_eld(struct nvif_outp *, int head, void *data, u32 size); 30 int nvif_outp_dp_aux_pwr(struct nvif_outp *, bool enable); 31 int nvif_outp_dp_retrain(struct nvif_outp *); 32 int nvif_outp_dp_mst_vcpi(struct nvif_outp *, int head, 33 u8 start_slot, u8 num_slots, u16 pbn, u16 aligned_pbn); 34 #endif 35