hc
2024-03-26 e0728245c89800c2038c23308f2d88969d5b41c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/** @file
 
  Copyright (c) 2022 Rockchip Electronics Co. Ltd.
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
 
**/
 
 
#ifndef _ROCKCHIP_CRTC_PROTOCOL_H_
#define _ROCKCHIP_CRTC_PROTOCOL_H_
 
#include <Library/RockchipDisplayLib.h>
 
#define ROCKCHIP_CRTC_PROTOCOL_GUID   \
    {0xC128406A, 0x99D9, 0x11EC, {0x99, 0x27, 0xF4, 0x2A, 0x7D, 0xCB, 0x92, 0x5D}}
 
typedef struct _ROCKCHIP_CRTC_PROTOCOL ROCKCHIP_CRTC_PROTOCOL;
 
typedef struct {
  BOOLEAN                        Enable;
  UINT8                          BgOvlDly;
  UINT32                         PlaneMask;
  UINT32                         PrimaryPlane;
  INT32                          OutputType;
  INT32                          CursorPlane;
} VPS_CONFIG;
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_PREINIT) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_INIT) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_DEINIT) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_SET_PLANE) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_PREPARE) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_ENABLE) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_DISABLE) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
EFI_STATUS
(EFIAPI *ROCKCHIP_CRTC_UNPREPARE) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN OUT DISPLAY_STATE           *DisplayState
    );
 
typedef
VPS_CONFIG*
(EFIAPI *ROCKCHIP_CRTC_GET_VPS) (
    IN ROCKCHIP_CRTC_PROTOCOL      *This,
    IN UINT32                      VpsConfigModeID
    );
 
struct _ROCKCHIP_CRTC_PROTOCOL {
  VOID                           *Private;
  ROCKCHIP_CRTC_PREINIT          Preinit;
  ROCKCHIP_CRTC_INIT             Init;
  ROCKCHIP_CRTC_DEINIT           Deinit;
  ROCKCHIP_CRTC_SET_PLANE        SetPlane;
  ROCKCHIP_CRTC_PREPARE          Prepare;
  ROCKCHIP_CRTC_ENABLE           Enable;
  ROCKCHIP_CRTC_DISABLE          Disable;
  ROCKCHIP_CRTC_UNPREPARE        Unprepare;
  ROCKCHIP_CRTC_GET_VPS          GetVps;
  DRM_DISPLAY_MODE               ActiveMode;
  VPS_CONFIG                     *Vps;
  BOOLEAN                        HdmiHpd;
  BOOLEAN                        Active;
  BOOLEAN                        AssignPlane;
};
 
extern EFI_GUID gRockchipCrtcProtocolGuid;
 
#endif