18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: MIT */
28c2ecf20Sopenharmony_ci#ifndef __NVIF_CL5070_H__
38c2ecf20Sopenharmony_ci#define __NVIF_CL5070_H__
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD                                                     0x00
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cistruct nv50_disp_mthd_v0 {
88c2ecf20Sopenharmony_ci	__u8  version;
98c2ecf20Sopenharmony_ci#define NV50_DISP_SCANOUTPOS                                               0x00
108c2ecf20Sopenharmony_ci	__u8  method;
118c2ecf20Sopenharmony_ci	__u8  head;
128c2ecf20Sopenharmony_ci	__u8  pad03[5];
138c2ecf20Sopenharmony_ci};
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistruct nv50_disp_scanoutpos_v0 {
168c2ecf20Sopenharmony_ci	__u8  version;
178c2ecf20Sopenharmony_ci	__u8  pad01[7];
188c2ecf20Sopenharmony_ci	__s64 time[2];
198c2ecf20Sopenharmony_ci	__u16 vblanks;
208c2ecf20Sopenharmony_ci	__u16 vblanke;
218c2ecf20Sopenharmony_ci	__u16 vtotal;
228c2ecf20Sopenharmony_ci	__u16 vline;
238c2ecf20Sopenharmony_ci	__u16 hblanks;
248c2ecf20Sopenharmony_ci	__u16 hblanke;
258c2ecf20Sopenharmony_ci	__u16 htotal;
268c2ecf20Sopenharmony_ci	__u16 hline;
278c2ecf20Sopenharmony_ci};
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_cistruct nv50_disp_mthd_v1 {
308c2ecf20Sopenharmony_ci	__u8  version;
318c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_ACQUIRE                                          0x01
328c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_RELEASE                                          0x02
338c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_DAC_LOAD                                         0x11
348c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_SOR_HDA_ELD                                      0x21
358c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_SOR_HDMI_PWR                                     0x22
368c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_SOR_LVDS_SCRIPT                                  0x23
378c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_SOR_DP_MST_LINK                                  0x25
388c2ecf20Sopenharmony_ci#define NV50_DISP_MTHD_V1_SOR_DP_MST_VCPI                                  0x26
398c2ecf20Sopenharmony_ci	__u8  method;
408c2ecf20Sopenharmony_ci	__u16 hasht;
418c2ecf20Sopenharmony_ci	__u16 hashm;
428c2ecf20Sopenharmony_ci	__u8  pad06[2];
438c2ecf20Sopenharmony_ci};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_cistruct nv50_disp_acquire_v0 {
468c2ecf20Sopenharmony_ci	__u8  version;
478c2ecf20Sopenharmony_ci	__u8  or;
488c2ecf20Sopenharmony_ci	__u8  link;
498c2ecf20Sopenharmony_ci	__u8  hda;
508c2ecf20Sopenharmony_ci	__u8  pad04[4];
518c2ecf20Sopenharmony_ci};
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_cistruct nv50_disp_dac_load_v0 {
548c2ecf20Sopenharmony_ci	__u8  version;
558c2ecf20Sopenharmony_ci	__u8  load;
568c2ecf20Sopenharmony_ci	__u8  pad02[2];
578c2ecf20Sopenharmony_ci	__u32 data;
588c2ecf20Sopenharmony_ci};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_cistruct nv50_disp_sor_hda_eld_v0 {
618c2ecf20Sopenharmony_ci	__u8  version;
628c2ecf20Sopenharmony_ci	__u8  pad01[7];
638c2ecf20Sopenharmony_ci	__u8  data[];
648c2ecf20Sopenharmony_ci};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_cistruct nv50_disp_sor_hdmi_pwr_v0 {
678c2ecf20Sopenharmony_ci	__u8  version;
688c2ecf20Sopenharmony_ci	__u8  state;
698c2ecf20Sopenharmony_ci	__u8  max_ac_packet;
708c2ecf20Sopenharmony_ci	__u8  rekey;
718c2ecf20Sopenharmony_ci	__u8  avi_infoframe_length;
728c2ecf20Sopenharmony_ci	__u8  vendor_infoframe_length;
738c2ecf20Sopenharmony_ci#define NV50_DISP_SOR_HDMI_PWR_V0_SCDC_SCRAMBLE (1 << 0)
748c2ecf20Sopenharmony_ci#define NV50_DISP_SOR_HDMI_PWR_V0_SCDC_DIV_BY_4 (1 << 1)
758c2ecf20Sopenharmony_ci	__u8  scdc;
768c2ecf20Sopenharmony_ci	__u8  pad07[1];
778c2ecf20Sopenharmony_ci};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_cistruct nv50_disp_sor_lvds_script_v0 {
808c2ecf20Sopenharmony_ci	__u8  version;
818c2ecf20Sopenharmony_ci	__u8  pad01[1];
828c2ecf20Sopenharmony_ci	__u16 script;
838c2ecf20Sopenharmony_ci	__u8  pad04[4];
848c2ecf20Sopenharmony_ci};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_cistruct nv50_disp_sor_dp_mst_link_v0 {
878c2ecf20Sopenharmony_ci	__u8  version;
888c2ecf20Sopenharmony_ci	__u8  state;
898c2ecf20Sopenharmony_ci	__u8  pad02[6];
908c2ecf20Sopenharmony_ci};
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_cistruct nv50_disp_sor_dp_mst_vcpi_v0 {
938c2ecf20Sopenharmony_ci	__u8  version;
948c2ecf20Sopenharmony_ci	__u8  pad01[1];
958c2ecf20Sopenharmony_ci	__u8  start_slot;
968c2ecf20Sopenharmony_ci	__u8  num_slots;
978c2ecf20Sopenharmony_ci	__u16 pbn;
988c2ecf20Sopenharmony_ci	__u16 aligned_pbn;
998c2ecf20Sopenharmony_ci};
1008c2ecf20Sopenharmony_ci#endif
101