124 lines
2.5 KiB
C
124 lines
2.5 KiB
C
|
/* SPDX-License-Identifier: MIT */
|
||
|
#ifndef __NVIF_IF0012_H__
|
||
|
#define __NVIF_IF0012_H__
|
||
|
|
||
|
#include <drm/display/drm_dp.h>
|
||
|
|
||
|
union nvif_outp_args {
|
||
|
struct nvif_outp_v0 {
|
||
|
__u8 version;
|
||
|
__u8 id; /* DCB device index. */
|
||
|
__u8 pad02[6];
|
||
|
} v0;
|
||
|
};
|
||
|
|
||
|
#define NVIF_OUTP_V0_LOAD_DETECT 0x00
|
||
|
#define NVIF_OUTP_V0_ACQUIRE 0x01
|
||
|
#define NVIF_OUTP_V0_RELEASE 0x02
|
||
|
#define NVIF_OUTP_V0_INFOFRAME 0x03
|
||
|
#define NVIF_OUTP_V0_HDA_ELD 0x04
|
||
|
#define NVIF_OUTP_V0_DP_AUX_PWR 0x05
|
||
|
#define NVIF_OUTP_V0_DP_RETRAIN 0x06
|
||
|
#define NVIF_OUTP_V0_DP_MST_VCPI 0x07
|
||
|
|
||
|
union nvif_outp_load_detect_args {
|
||
|
struct nvif_outp_load_detect_v0 {
|
||
|
__u8 version;
|
||
|
__u8 load;
|
||
|
__u8 pad02[2];
|
||
|
__u32 data; /*TODO: move vbios loadval parsing into nvkm */
|
||
|
} v0;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_acquire_args {
|
||
|
struct nvif_outp_acquire_v0 {
|
||
|
__u8 version;
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_RGB_CRT 0x00
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_TV 0x01
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_TMDS 0x02
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_LVDS 0x03
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_DP 0x04
|
||
|
__u8 proto;
|
||
|
__u8 or;
|
||
|
__u8 link;
|
||
|
__u8 pad04[4];
|
||
|
union {
|
||
|
struct {
|
||
|
__u8 head;
|
||
|
__u8 hdmi;
|
||
|
__u8 hdmi_max_ac_packet;
|
||
|
__u8 hdmi_rekey;
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_TMDS_HDMI_SCDC_SCRAMBLE (1 << 0)
|
||
|
#define NVIF_OUTP_ACQUIRE_V0_TMDS_HDMI_SCDC_DIV_BY_4 (1 << 1)
|
||
|
__u8 hdmi_scdc;
|
||
|
__u8 hdmi_hda;
|
||
|
__u8 pad06[2];
|
||
|
} tmds;
|
||
|
struct {
|
||
|
__u8 dual;
|
||
|
__u8 bpc8;
|
||
|
__u8 pad02[6];
|
||
|
} lvds;
|
||
|
struct {
|
||
|
__u8 link_nr; /* 0 = highest possible. */
|
||
|
__u8 link_bw; /* 0 = highest possible, DP BW code otherwise. */
|
||
|
__u8 hda;
|
||
|
__u8 mst;
|
||
|
__u8 pad04[4];
|
||
|
__u8 dpcd[DP_RECEIVER_CAP_SIZE];
|
||
|
} dp;
|
||
|
};
|
||
|
} v0;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_release_args {
|
||
|
struct nvif_outp_release_vn {
|
||
|
} vn;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_infoframe_args {
|
||
|
struct nvif_outp_infoframe_v0 {
|
||
|
__u8 version;
|
||
|
#define NVIF_OUTP_INFOFRAME_V0_AVI 0
|
||
|
#define NVIF_OUTP_INFOFRAME_V0_VSI 1
|
||
|
__u8 type;
|
||
|
__u8 head;
|
||
|
__u8 pad03[5];
|
||
|
__u8 data[];
|
||
|
} v0;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_hda_eld_args {
|
||
|
struct nvif_outp_hda_eld_v0 {
|
||
|
__u8 version;
|
||
|
__u8 head;
|
||
|
__u8 pad02[6];
|
||
|
__u8 data[];
|
||
|
} v0;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_dp_aux_pwr_args {
|
||
|
struct nvif_outp_dp_aux_pwr_v0 {
|
||
|
__u8 version;
|
||
|
__u8 state;
|
||
|
__u8 pad02[6];
|
||
|
} v0;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_dp_retrain_args {
|
||
|
struct nvif_outp_dp_retrain_vn {
|
||
|
} vn;
|
||
|
};
|
||
|
|
||
|
union nvif_outp_dp_mst_vcpi_args {
|
||
|
struct nvif_outp_dp_mst_vcpi_v0 {
|
||
|
__u8 version;
|
||
|
__u8 head;
|
||
|
__u8 start_slot;
|
||
|
__u8 num_slots;
|
||
|
__u16 pbn;
|
||
|
__u16 aligned_pbn;
|
||
|
} v0;
|
||
|
};
|
||
|
#endif
|