/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef _PSB_DRM_H_ #define _PSB_DRM_H_ #if defined(__linux__) && !defined(__KERNEL__) #include <stdbool.h> /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #include <stdint.h> #include <linux/types.h> #include "drm_mode.h" #endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_PACKAGE_VERSION "5.6.0.1202" #define DRM_PSB_SAREA_MAJOR 0 #define DRM_PSB_SAREA_MINOR 2 #define PSB_FIXED_SHIFT 16 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_NUM_PIPE 3 #define DRM_PSB_MEM_MMU TTM_PL_PRIV1 #define DRM_PSB_FLAG_MEM_MMU TTM_PL_FLAG_PRIV1 #define TTM_PL_CI TTM_PL_PRIV0 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define TTM_PL_FLAG_CI TTM_PL_FLAG_PRIV0 #define TTM_PL_RAR TTM_PL_PRIV2 #define TTM_PL_FLAG_RAR TTM_PL_FLAG_PRIV2 #define TTM_PL_IMR TTM_PL_PRIV2 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define TTM_PL_FLAG_IMR TTM_PL_FLAG_PRIV2 #define DRM_PSB_MEM_MMU_TILING TTM_PL_PRIV3 #define DRM_PSB_FLAG_MEM_MMU_TILING TTM_PL_FLAG_PRIV3 typedef enum { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ DRM_CMD_SUCCESS, DRM_CMD_FAILED, DRM_CMD_HANG } drm_cmd_status_t; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_scanout { uint32_t buffer_id; uint32_t rotation; uint32_t stride; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t depth; uint32_t width; uint32_t height; int32_t transform[3][3]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; #define DRM_PSB_SAREA_OWNERS 16 #define DRM_PSB_SAREA_OWNER_2D 0 #define DRM_PSB_SAREA_OWNER_3D 1 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_SAREA_SCANOUTS 3 struct drm_psb_sarea { uint32_t major; uint32_t minor; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t ctx_owners[DRM_PSB_SAREA_OWNERS]; uint32_t num_scanouts; struct drm_psb_scanout scanouts[DRM_PSB_SAREA_SCANOUTS]; int planeA_x; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ int planeA_y; int planeA_w; int planeA_h; int planeB_x; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ int planeB_y; int planeB_w; int planeB_h; uint32_t num_active_scanouts; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; #define PSB_RELOC_MAGIC 0x67676767 #define PSB_RELOC_SHIFT_MASK 0x0000FFFF #define PSB_RELOC_SHIFT_SHIFT 0 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_RELOC_ALSHIFT_MASK 0xFFFF0000 #define PSB_RELOC_ALSHIFT_SHIFT 16 #define PSB_RELOC_OP_OFFSET 0 struct drm_psb_reloc { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t reloc_op; uint32_t where; uint32_t buffer; uint32_t mask; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t shift; uint32_t pre_add; uint32_t background; uint32_t dst_buffer; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t arg0; uint32_t arg1; }; #define PSB_GPU_ACCESS_READ (1ULL << 32) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_GPU_ACCESS_WRITE (1ULL << 33) #define PSB_GPU_ACCESS_MASK (PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE) #define PSB_BO_FLAG_COMMAND (1ULL << 52) #define PSB_ENGINE_2D 2 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_ENGINE_DECODE 0 #define PSB_ENGINE_VIDEO 0 #define LNC_ENGINE_ENCODE 1 #ifdef MERRIFIELD /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_NUM_ENGINES 7 #else #define PSB_NUM_ENGINES 2 #endif /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define VSP_ENGINE_VPP 6 #define _PSB_FENCE_EXE_SHIFT 0 #define _PSB_FENCE_FEEDBACK_SHIFT 4 #define _PSB_FENCE_TYPE_EXE (1 << _PSB_FENCE_EXE_SHIFT) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define _PSB_FENCE_TYPE_FEEDBACK (1 << _PSB_FENCE_FEEDBACK_SHIFT) #define PSB_FEEDBACK_OP_VISTEST (1 << 0) struct drm_psb_extension_rep { int32_t exists; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t driver_ioctl_offset; uint32_t sarea_offset; uint32_t major; uint32_t minor; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pl; }; #define DRM_PSB_EXT_NAME_LEN 128 union drm_psb_extension_arg { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ char extension[DRM_PSB_EXT_NAME_LEN]; struct drm_psb_extension_rep rep; }; #define PSB_NOT_FENCE (1 << 0) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_MEM_CLFLUSH (1 << 1) struct psb_validate_req { uint64_t set_flags; uint64_t clear_flags; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint64_t next; uint64_t presumed_gpu_offset; uint32_t buffer_handle; uint32_t presumed_flags; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pad64; uint32_t unfence_flag; }; struct psb_validate_rep { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint64_t gpu_offset; uint32_t placement; uint32_t fence_type_mask; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_USE_PRESUMED (1 << 0) struct psb_validate_arg { uint64_t handled; uint64_t ret; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ union { struct psb_validate_req req; struct psb_validate_rep rep; } d; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; #define DRM_PSB_FENCE_NO_USER (1 << 0) struct psb_ttm_fence_rep { uint32_t handle; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t fence_class; uint32_t fence_type; uint32_t signaled_types; uint32_t error; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; typedef struct drm_psb_cmdbuf_arg { uint64_t buffer_list; uint64_t fence_arg; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cmdbuf_handle; uint32_t cmdbuf_offset; uint32_t cmdbuf_size; uint32_t reloc_handle; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t reloc_offset; uint32_t num_relocs; uint32_t fence_flags; uint32_t engine; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } drm_psb_cmdbuf_arg_t; typedef struct drm_psb_pageflip_arg { uint32_t flip_offset; uint32_t stride; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } drm_psb_pageflip_arg_t; typedef enum { LNC_VIDEO_DEVICE_INFO, LNC_VIDEO_GETPARAM_IMR_INFO, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ LNC_VIDEO_GETPARAM_CI_INFO, LNC_VIDEO_FRAME_SKIP, IMG_VIDEO_DECODE_STATUS, IMG_VIDEO_NEW_CONTEXT, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ IMG_VIDEO_RM_CONTEXT, IMG_VIDEO_UPDATE_CONTEXT, IMG_VIDEO_MB_ERROR, IMG_VIDEO_SET_DISPLAYING_FRAME, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ IMG_VIDEO_GET_DISPLAYING_FRAME, IMG_VIDEO_GET_HDMI_STATE, IMG_VIDEO_SET_HDMI_STATE, PNW_VIDEO_QUERY_ENTRY, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ IMG_DISPLAY_SET_WIDI_EXT_STATE, IMG_VIDEO_IED_STATE } lnc_getparam_key_t; struct drm_lnc_video_getparam_arg { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint64_t key; uint64_t arg; uint64_t value; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_video_displaying_frameinfo { uint32_t buf_handle; uint32_t width; uint32_t height; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t size; uint32_t format; uint32_t luma_stride; uint32_t chroma_u_stride; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t chroma_v_stride; uint32_t luma_offset; uint32_t chroma_u_offset; uint32_t chroma_v_offset; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t reserved; }; struct drm_psb_vistest { uint32_t vt[8]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; struct drm_psb_sizes_arg { uint32_t ta_mem_size; uint32_t mmu_size; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pds_size; uint32_t rastgeom_size; uint32_t tt_size; uint32_t vram_size; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; struct drm_psb_hist_status_arg { uint32_t buf[32]; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_dpst_lut_arg { uint8_t lut[256]; int output_id; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct mrst_timing_info { uint16_t pixel_clock; uint8_t hactive_lo; uint8_t hblank_lo; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t hblank_hi:4; uint8_t hactive_hi:4; uint8_t vactive_lo; uint8_t vblank_lo; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t vblank_hi:4; uint8_t vactive_hi:4; uint8_t hsync_offset_lo; uint8_t hsync_pulse_width_lo; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t vsync_pulse_width_lo:4; uint8_t vsync_offset_lo:4; uint8_t vsync_pulse_width_hi:2; uint8_t vsync_offset_hi:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t hsync_pulse_width_hi:2; uint8_t hsync_offset_hi:2; uint8_t width_mm_lo; uint8_t height_mm_lo; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t height_mm_hi:4; uint8_t width_mm_hi:4; uint8_t hborder; uint8_t vborder; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t unknown0:1; uint8_t hsync_positive:1; uint8_t vsync_positive:1; uint8_t separate_sync:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t stereo:1; uint8_t unknown6:1; uint8_t interlaced:1; } __attribute__((packed)); /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct gct_r10_timing_info { uint16_t pixel_clock; uint32_t hactive_lo:8; uint32_t hactive_hi:4; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t hblank_lo:8; uint32_t hblank_hi:4; uint32_t hsync_offset_lo:8; uint16_t hsync_offset_hi:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t hsync_pulse_width_lo:8; uint16_t hsync_pulse_width_hi:2; uint16_t hsync_positive:1; uint16_t rsvd_1:3; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t vactive_lo:8; uint16_t vactive_hi:4; uint16_t vblank_lo:8; uint16_t vblank_hi:4; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t vsync_offset_lo:4; uint16_t vsync_offset_hi:2; uint16_t vsync_pulse_width_lo:4; uint16_t vsync_pulse_width_hi:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t vsync_positive:1; uint16_t rsvd_2:3; } __attribute__((packed)); struct mrst_panel_descriptor_v1 { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t Panel_Port_Control; uint32_t Panel_Power_On_Sequencing; uint32_t Panel_Power_Off_Sequencing; uint32_t Panel_Power_Cycle_Delay_and_Reference_Divisor; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct mrst_timing_info DTD; uint16_t Panel_Backlight_Inverter_Descriptor; uint16_t Panel_MIPI_Display_Descriptor; } __attribute__((packed)); /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct mrst_panel_descriptor_v2 { uint32_t Panel_Port_Control; uint32_t Panel_Power_On_Sequencing; uint32_t Panel_Power_Off_Sequencing; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t Panel_Power_Cycle_Delay_and_Reference_Divisor; struct mrst_timing_info DTD; uint16_t Panel_Backlight_Inverter_Descriptor; uint8_t Panel_Initial_Brightness; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t Panel_MIPI_Display_Descriptor; } __attribute__((packed)); union mrst_panel_rx { struct { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t NumberOfLanes:2; uint16_t MaxLaneFreq:3; uint16_t SupportedVideoTransferMode:2; uint16_t HSClkBehavior:1; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t DuoDisplaySupport:1; uint16_t ECC_ChecksumCapabilities:1; uint16_t BidirectionalCommunication:1; uint16_t Rsvd:5; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } panelrx; uint16_t panel_receiver; } __attribute__((packed)); struct gct_ioctl_arg { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t bpi; uint8_t pt; struct mrst_timing_info DTD; uint32_t Panel_Port_Control; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t PP_On_Sequencing; uint32_t PP_Off_Sequencing; uint32_t PP_Cycle_Delay; uint16_t Panel_Backlight_Inverter_Descriptor; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t Panel_MIPI_Display_Descriptor; } __attribute__((packed)); struct gct_timing_desc_block { uint16_t clock; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t hactive:12; uint16_t hblank:12; uint16_t hsync_start:10; uint16_t hsync_end:10; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t hsync_polarity:1; uint16_t h_reversed:3; uint16_t vactive:12; uint16_t vblank:12; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t vsync_start:6; uint16_t vsync_end:6; uint16_t vsync_polarity:1; uint16_t v_reversed:3; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } __packed; struct gct_display_desc_block { uint8_t type:2; uint8_t pxiel_format:4; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t mode:2; uint8_t frame_rate:6; uint8_t reserved:2; } __attribute__((packed)); /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct gct_dsi_desc_block { uint8_t lane_count:2; uint8_t lane_frequency:3; uint8_t transfer_mode:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t hs_clock_behavior:1; uint8_t duo_display_support:1; uint8_t ecc_caps:1; uint8_t bdirect_support:1; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t reversed:5; } __packed; struct gct_bkl_desc_block { uint16_t frequency; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t max_brightness:7; uint8_t polarity:1; } __packed; struct gct_r20_clock_desc { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t pre_divisor:2; uint16_t divisor:9; uint8_t post_divisor:4; uint8_t pll_bypass:1; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t cck_clock_divisor:1; uint8_t reserved:7; } __packed; struct gct_r20_panel_info { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint16_t width; uint16_t height; } __packed; struct gct_r20_panel_mode { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t mode:1; uint16_t reserved:15; } __packed; struct gct_r20_dsi_desc { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t num_dsi_lanes:2; uint16_t reserved:14; } __packed; struct gct_r20_panel_desc { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t panel_name[16]; struct gct_timing_desc_block timing; struct gct_r20_clock_desc clock_desc; struct gct_r20_panel_info panel_info; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct gct_r20_panel_mode panel_mode; struct gct_r20_dsi_desc dsi_desc; uint32_t early_init_seq; uint32_t late_init_seq; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } __packed; struct gct_r11_panel_desc { uint8_t panel_name[16]; struct gct_timing_desc_block timing; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct gct_display_desc_block display; struct gct_dsi_desc_block dsi; struct gct_bkl_desc_block bkl; uint32_t early_init_seq; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t late_init_seq; } __packed; struct gct_r10_panel_desc { struct gct_timing_desc_block timing; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct gct_display_desc_block display; struct gct_dsi_desc_block dsi; struct gct_bkl_desc_block bkl; uint32_t early_init_seq; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t late_init_seq; uint8_t reversed[4]; } __packed; struct intel_mid_vbt { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ char signature[4]; uint8_t revision; uint8_t checksum; uint16_t size; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t num_of_panel_desc; uint8_t primary_panel_idx; uint8_t secondary_panel_idx; uint8_t splash_flag; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint8_t reserved[4]; void *panel_descs; } __packed; struct mrst_vbt { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ char Signature[4]; uint8_t Revision; uint8_t Size; uint8_t Checksum; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ void *mrst_gct; } __attribute__ ((packed)); struct mrst_gct_v1 { union { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct { uint8_t PanelType:4; uint8_t BootPanelIndex:2; uint8_t BootMIPI_DSI_RxIndex:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } PD; uint8_t PanelDescriptor; }; struct mrst_panel_descriptor_v1 panel[4]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ union mrst_panel_rx panelrx[4]; } __attribute__((packed)); struct mrst_gct_v2 { union { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct { uint8_t PanelType:4; uint8_t BootPanelIndex:2; uint8_t BootMIPI_DSI_RxIndex:2; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } PD; uint8_t PanelDescriptor; }; struct mrst_panel_descriptor_v2 panel[4]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ union mrst_panel_rx panelrx[4]; } __attribute__((packed)); #define PSB_DC_CRTC_SAVE 0x01 #define PSB_DC_CRTC_RESTORE 0x02 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define PSB_DC_OUTPUT_SAVE 0x04 #define PSB_DC_OUTPUT_RESTORE 0x08 #define PSB_DC_CRTC_MASK 0x03 #define PSB_DC_OUTPUT_MASK 0x0C /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_dc_state_arg { uint32_t flags; uint32_t obj_id; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_mode_operation_arg { uint32_t obj_id; uint16_t operation; struct drm_mode_modeinfo mode; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ void *data; }; struct drm_psb_stolen_memory_arg { uint32_t base; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t size; }; #define REGRWBITS_PFIT_CONTROLS (1 << 0) #define REGRWBITS_PFIT_AUTOSCALE_RATIOS (1 << 1) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define REGRWBITS_PFIT_PROGRAMMED_SCALE_RATIOS (1 << 2) #define REGRWBITS_PIPEASRC (1 << 3) #define REGRWBITS_PIPEBSRC (1 << 4) #define REGRWBITS_VTOTAL_A (1 << 5) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define REGRWBITS_VTOTAL_B (1 << 6) #define REGRWBITS_DSPACNTR (1 << 8) #define REGRWBITS_DSPBCNTR (1 << 9) #define REGRWBITS_DSPCCNTR (1 << 10) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define REGRWBITS_SPRITE_UPDATE (1 << 11) #define REGRWBITS_PIPEASTAT (1 << 12) #define REGRWBITS_INT_MASK (1 << 13) #define REGRWBITS_INT_ENABLE (1 << 14) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define REGRWBITS_DISPLAY_ALL (1 << 15) #define OV_REGRWBITS_OVADD (1 << 0) #define OV_REGRWBITS_OGAM_ALL (1 << 1) #define OVC_REGRWBITS_OVADD (1 << 2) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define OVC_REGRWBITS_OGAM_ALL (1 << 3) #define OV_REGRWBITS_WAIT_FLIP (1 << 4) #define OVC_REGRWBITS_WAIT_FLIP (1 << 5) #define OVSTATUS_REGRBIT_OVR_UPDT (1 << 6) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define SPRITE_UPDATE_SURFACE (0x00000001UL) #define SPRITE_UPDATE_CONTROL (0x00000002UL) #define SPRITE_UPDATE_POSITION (0x00000004UL) #define SPRITE_UPDATE_SIZE (0x00000008UL) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define SPRITE_UPDATE_WAIT_VBLANK (0X00000010UL) #define SPRITE_UPDATE_CONSTALPHA (0x00000020UL) #define SPRITE_UPDATE_ALL (0x0000003fUL) #define VSYNC_ENABLE (1 << 0) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define VSYNC_DISABLE (1 << 1) #define VSYNC_WAIT (1 << 2) #define GET_VSYNC_COUNT (1 << 3) struct intel_overlay_context { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t index; uint32_t pipe; uint32_t ovadd; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct intel_sprite_context { uint32_t update_mask; uint32_t index; uint32_t pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cntr; uint32_t linoff; uint32_t stride; uint32_t pos; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t size; uint32_t keyminval; uint32_t keymask; uint32_t surf; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t keymaxval; uint32_t tileoff; uint32_t contalpa; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define INTEL_SPRITE_PLANE_NUM 3 #define INTEL_OVERLAY_PLANE_NUM 2 #define INTEL_DISPLAY_PLANE_NUM 5 #define INTEL_MDFLD_SPRITE_PLANE_NUM 3 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define INTEL_MDFLD_OVERLAY_PLANE_NUM 2 #define INTEL_MDFLD_CURSOR_PLANE_NUM 3 #define INTEL_MDFLD_DISPLAY_PLANE_NUM 8 #define INTEL_MDFLD_DISPLAY_PIPE_NUM 3 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define INTEL_CTP_SPRITE_PLANE_NUM 2 #define INTEL_CTP_OVERLAY_PLANE_NUM 1 #define INTEL_CTP_CURSOR_PLANE_NUM 2 #define INTEL_CTP_DISPLAY_PLANE_NUM 5 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define INTEL_CTP_DISPLAY_PIPE_NUM 2 #define INVALID_INDEX 0xffffffff struct mdfld_plane_contexts { uint32_t active_primaries; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t active_sprites; uint32_t active_overlays; struct intel_sprite_context primary_contexts[INTEL_SPRITE_PLANE_NUM]; struct intel_sprite_context sprite_contexts[INTEL_SPRITE_PLANE_NUM]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct intel_overlay_context overlay_contexts[INTEL_OVERLAY_PLANE_NUM]; }; struct drm_psb_vsync_set_arg { uint32_t vsync_operation_mask; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct { uint32_t pipe; int vsync_pipe; int vsync_count; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint64_t timestamp; } vsync; }; struct drm_psb_dc_info { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pipe_count; uint32_t primary_plane_count; uint32_t sprite_plane_count; uint32_t overlay_plane_count; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cursor_plane_count; }; struct drm_psb_register_rw_arg { uint32_t b_force_hw_on; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t display_read_mask; uint32_t display_write_mask; struct { uint32_t pfit_controls; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pfit_autoscale_ratios; uint32_t pfit_programmed_scale_ratios; uint32_t pipeasrc; uint32_t pipebsrc; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t vtotal_a; uint32_t vtotal_b; uint32_t dspcntr_a; uint32_t dspcntr_b; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pipestat_a; uint32_t int_mask; uint32_t int_enable; } display; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t overlay_read_mask; uint32_t overlay_write_mask; struct { uint32_t OVADD; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t OGAMC0; uint32_t OGAMC1; uint32_t OGAMC2; uint32_t OGAMC3; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t OGAMC4; uint32_t OGAMC5; uint32_t IEP_ENABLED; uint32_t IEP_BLE_MINMAX; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t IEP_BSSCC_CONTROL; uint32_t index; uint32_t b_wait_vblank; uint32_t b_wms; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t buffer_handle; } overlay; uint32_t vsync_operation_mask; struct { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t pipe; int vsync_pipe; int vsync_count; uint64_t timestamp; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } vsync; uint32_t sprite_enable_mask; uint32_t sprite_disable_mask; struct { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t dspa_control; uint32_t dspa_key_value; uint32_t dspa_key_mask; uint32_t dspc_control; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t dspc_stride; uint32_t dspc_position; uint32_t dspc_linear_offset; uint32_t dspc_size; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t dspc_surface; } sprite; uint32_t subpicture_enable_mask; uint32_t subpicture_disable_mask; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct { uint32_t CursorADDR; uint32_t xPos; uint32_t yPos; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t CursorSize; } cursor; uint32_t cursor_enable_mask; uint32_t cursor_disable_mask; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t plane_enable_mask; uint32_t plane_disable_mask; uint32_t get_plane_state_mask; struct { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t type; uint32_t index; uint32_t ctx; } plane; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; enum { PSB_DC_PLANE_ENABLED, PSB_DC_PLANE_DISABLED, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; enum { PSB_GTT_MAP_TYPE_MEMINFO = 0, PSB_GTT_MAP_TYPE_BCD, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ PSB_GTT_MAP_TYPE_BCD_INFO, PSB_GTT_MAP_TYPE_VIRTUAL, }; struct psb_gtt_mapping_arg { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t type; void *hKernelMemInfo; uint32_t offset_pages; uint32_t page_align; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t bcd_device_id; uint32_t bcd_buffer_id; uint32_t bcd_buffer_count; uint32_t bcd_buffer_stride; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t vaddr; uint32_t size; }; struct drm_psb_getpageaddrs_arg { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint64_t handle; uint64_t page_addrs; uint64_t gtt_offset; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define MAX_SLICES_PER_PICTURE 72 struct psb_msvdx_mb_region { uint32_t start; uint32_t end; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; typedef struct drm_psb_msvdx_decode_status { uint32_t num_region; struct psb_msvdx_mb_region mb_regions[MAX_SLICES_PER_PICTURE]; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } drm_psb_msvdx_decode_status_t; enum { IDLE_CTRL_ENABLE = 0, IDLE_CTRL_DISABLE, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ IDLE_CTRL_ENTER, IDLE_CTRL_EXIT }; struct drm_psb_idle_ctrl { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cmd; uint32_t value; }; #define DRM_PSB_KMS_OFF 0x00 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_KMS_ON 0x01 #define DRM_PSB_VT_LEAVE 0x02 #define DRM_PSB_VT_ENTER 0x03 #define DRM_PSB_EXTENSION 0x06 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_SIZES 0x07 #define DRM_PSB_FUSE_REG 0x08 #define DRM_PSB_VBT 0x09 #define DRM_PSB_DC_STATE 0x0A /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_ADB 0x0B #define DRM_PSB_MODE_OPERATION 0x0C #define DRM_PSB_STOLEN_MEMORY 0x0D #define DRM_PSB_REGISTER_RW 0x0E /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_GTT_MAP 0x0F #define DRM_PSB_GTT_UNMAP 0x10 #define DRM_PSB_GETPAGEADDRS 0x11 #define DRM_PVR_RESERVED1 0x12 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PVR_RESERVED2 0x13 #define DRM_PVR_RESERVED3 0x14 #define DRM_PVR_RESERVED4 0x15 #define DRM_PVR_RESERVED5 0x16 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_HIST_ENABLE 0x17 #define DRM_PSB_HIST_STATUS 0x18 #define DRM_PSB_UPDATE_GUARD 0x19 #define DRM_PSB_INIT_COMM 0x1A /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_DPST 0x1B #define DRM_PSB_GAMMA 0x1C #define DRM_PSB_DPST_BL 0x1D #define DRM_PVR_RESERVED6 0x1E /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_GET_PIPE_FROM_CRTC_ID 0x1F #define DRM_PSB_DPU_QUERY 0x20 #define DRM_PSB_DPU_DSR_ON 0x21 #define DRM_PSB_DPU_DSR_OFF 0x22 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_HDMI_FB_CMD 0x23 #define DRM_PSB_QUERY_HDCP 0x24 #define DRM_PSB_VALIDATE_HDCP_KSV 0x25 #define DRM_PSB_GET_HDCP_STATUS 0x26 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_ENABLE_HDCP 0x27 #define DRM_PSB_DISABLE_HDCP 0x28 #define DRM_PSB_GET_HDCP_LINK_STATUS 0x2b #define DRM_PSB_ENABLE_HDCP_REPEATER 0x2c /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_DISABLE_HDCP_REPEATER 0x2d #define DRM_PSB_HDCP_REPEATER_PRESENT 0x2e #define DRM_PSB_CSC_GAMMA_SETTING 0x29 #define DRM_PSB_SET_CSC 0x2a /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_ENABLE_IED_SESSION 0x30 #define DRM_PSB_DISABLE_IED_SESSION 0x31 #define DRM_PSB_VSYNC_SET 0x32 #define DRM_PSB_HDCP_DISPLAY_IED_OFF 0x33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_HDCP_DISPLAY_IED_ON 0x34 #define DRM_PSB_QUERY_HDCP_DISPLAY_IED_CAPS 0x35 #define DRM_PSB_DPST_LEVEL 0x36 #define DRM_PSB_GET_DC_INFO 0x37 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_PANEL_QUERY 0x38 #define DRM_PSB_IDLE_CTRL 0x39 #define DRM_PSB_HDMITEST 0x3A #define HT_READ 1 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define HT_WRITE 2 #define HT_FORCEON 4 typedef struct tagHDMITESTREGREADWRITE { unsigned int reg; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ unsigned int data; int mode; } drm_psb_hdmireg_t, *drm_psb_hdmireg_p; #define DRM_PSB_PANEL_ORIENTATION 0x3B /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_UPDATE_CURSOR_POS 0x3C #define DRM_OEM_RESERVED_START 0x40 #define DRM_OEM_RESERVED_END 0x4F #define DRM_PSB_TTM_START 0x50 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_TTM_END 0x5F #ifdef PDUMP #define DRM_PSB_CMDBUF (PVR_DRM_DBGDRV_CMD + 1) #else /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_CMDBUF (DRM_PSB_TTM_START) #endif #define DRM_PSB_SCENE_UNREF (DRM_PSB_CMDBUF + 1) #define DRM_PSB_PLACEMENT_OFFSET (DRM_PSB_SCENE_UNREF + 1) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_DSR_ENABLE 0xfffffffe #define DRM_PSB_DSR_DISABLE 0xffffffff struct drm_psb_csc_matrix { int pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ int64_t matrix[9]; }__attribute__((packed)); struct psb_drm_dpu_rect { int x, y; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ int width, height; }; struct drm_psb_drv_dsr_off_arg { int screen; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct psb_drm_dpu_rect damage_rect; }; struct drm_psb_dev_info_arg { uint32_t num_use_attribute_registers; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; #define DRM_PSB_DEVINFO 0x01 #define PSB_MODE_OPERATION_MODE_VALID 0x01 #define PSB_MODE_OPERATION_SET_DC_BASE 0x02 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_get_pipe_from_crtc_id_arg { uint32_t crtc_id; uint32_t pipe; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_DISP_SAVE_HDMI_FB_HANDLE 1 #define DRM_PSB_DISP_GET_HDMI_FB_HANDLE 2 #define DRM_PSB_DISP_INIT_HDMI_FLIP_CHAIN 1 #define DRM_PSB_DISP_QUEUE_BUFFER 2 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_DISP_DEQUEUE_BUFFER 3 #define DRM_PSB_DISP_PLANEB_DISABLE 4 #define DRM_PSB_DISP_PLANEB_ENABLE 5 #define DRM_PSB_HDMI_OSPM_ISLAND_DOWN 6 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define DRM_PSB_HDMI_NOTIFY_HOTPLUG_TO_AUDIO 7 typedef enum { GAMMA, CSC, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ GAMMA_INITIA, GAMMA_SETTING, GAMMA_REG_SETTING, CSC_INITIA, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ CSC_CHROME_SETTING, CSC_SETTING, CSC_REG_SETTING } setting_type; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef enum { GAMMA_05 = 1, GAMMA_20, GAMMA_05_20, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ GAMMA_20_05, GAMMA_10 } gamma_mode; #define CSC_REG_COUNT 6 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define CHROME_COUNT 16 #define CSC_COUNT 9 struct csc_setting { uint32_t pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ setting_type type; bool enable_state; uint32_t data_len; union { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ int csc_reg_data[CSC_REG_COUNT]; int chrome_data[CHROME_COUNT]; int64_t csc_data[CSC_COUNT]; } data; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; #define GAMMA_10_BIT_TABLE_COUNT 129 struct gamma_setting { uint32_t pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ setting_type type; bool enable_state; gamma_mode initia_mode; uint32_t data_len; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t gamma_tableX100[GAMMA_10_BIT_TABLE_COUNT]; }; struct drm_psb_csc_gamma_setting { setting_type type; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ union { struct csc_setting csc_data; struct gamma_setting gamma_data; } data; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }__attribute__((packed)); struct drm_psb_buffer_data { void *h_buffer; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_flip_chain_data { void **h_buffer_array; unsigned int size; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_disp_ctrl { uint32_t cmd; union { uint32_t data; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_buffer_data buf_data; struct drm_psb_flip_chain_data flip_chain_data; } u; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define S3D_MIPIA_DISPLAY 0 #define S3D_HDMI_DISPLAY 1 #define S3D_MIPIC_DISPLAY 2 #define S3D_WIDI_DISPLAY 0xFF /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct drm_psb_s3d_query { uint32_t s3d_display_type; uint32_t is_s3d_supported; uint32_t s3d_format; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t mode_resolution_x; uint32_t mode_resolution_y; uint32_t mode_refresh_rate; uint32_t is_interleaving; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ }; struct drm_psb_s3d_premodeset { uint32_t s3d_buffer_format; }; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef enum intel_dc_plane_types { DC_UNKNOWN_PLANE = 0, DC_SPRITE_PLANE = 1, DC_OVERLAY_PLANE, /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ DC_PRIMARY_PLANE, DC_CURSOR_PLANE, DC_PLANE_MAX, } DC_MRFLD_PLANE_TYPE; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define SPRITE_UPDATE_SURFACE (0x00000001UL) #define SPRITE_UPDATE_CONTROL (0x00000002UL) #define SPRITE_UPDATE_POSITION (0x00000004UL) #define SPRITE_UPDATE_SIZE (0x00000008UL) /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define SPRITE_UPDATE_WAIT_VBLANK (0X00000010UL) #define SPRITE_UPDATE_CONSTALPHA (0x00000020UL) #define SPRITE_UPDATE_ALL (0x0000003fUL) #define MRFLD_PRIMARY_COUNT 3 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef struct intel_dc_overlay_ctx { uint32_t index; uint32_t pipe; uint32_t ovadd; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } DC_MRFLD_OVERLAY_CONTEXT; typedef struct intel_dc_cursor_ctx { uint32_t index; uint32_t pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cntr; uint32_t surf; uint32_t pos; } DC_MRFLD_CURSOR_CONTEXT; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef struct intel_dc_sprite_ctx { uint32_t update_mask; uint32_t index; uint32_t pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cntr; uint32_t linoff; uint32_t stride; uint32_t pos; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t size; uint32_t keyminval; uint32_t keymask; uint32_t surf; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t keymaxval; uint32_t tileoff; uint32_t contalpa; } DC_MRFLD_SPRITE_CONTEXT; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef struct intel_dc_primary_ctx { uint32_t update_mask; uint32_t index; uint32_t pipe; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t cntr; uint32_t linoff; uint32_t stride; uint32_t pos; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t size; uint32_t keyminval; uint32_t keymask; uint32_t surf; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ uint32_t keymaxval; uint32_t tileoff; uint32_t contalpa; } DC_MRFLD_PRIMARY_CONTEXT; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef struct intel_dc_plane_zorder { uint32_t forceBottom[3]; uint32_t abovePrimary; } DC_MRFLD_DC_PLANE_ZORDER; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ typedef struct intel_dc_plane_ctx { enum intel_dc_plane_types type; struct intel_dc_plane_zorder zorder; union { /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ struct intel_dc_overlay_ctx ov_ctx; struct intel_dc_sprite_ctx sp_ctx; struct intel_dc_primary_ctx prim_ctx; struct intel_dc_cursor_ctx cs_ctx; /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ } ctx; } DC_MRFLD_SURF_CUSTOM; #endif