On Thu, Dec 19, 2024 at 11:08 AM Jason-JH.Lin <jason-jh....@mediatek.com> wrote:
>
> 1. Add compatible name and iommus property to mediatek,gce-mailbox.yaml
>    for MT8196.
>
>    - The compatible name "mediatek,mt8196-gce-mailbox" is added to
>      ensure that the device tree can correctly identify and configure
>      the GCE mailbox for the MT8196 SoC.
>
>    - The iommus property is added to specify the IOMMU configuration
>      for the GCE mailbox, ensuring proper memory management and access
>      control.
>
> 2. Add the Global Command Engine (GCE) binding header to define the
>    abstrct symbol binding to the GCE hardware settings of GCE Thread
>    Priority, GCE Subsys ID and GCE Event for MT8196.
>
>    - GCE Thread Priority: Defined to configure the priority level for
>      each GCE hardware thread. This is necessary for proper scheduling
>      and execution of commands in the GCE.
>
>    - GCE Subsys ID: Defined to specify the subsystem ID for GCE clients.
>      This is used to correctly address and access different subsystems
>      within the GCE.
>
>    - GCE Event: Defined to specify the events that the GCE can handle.
>      These events are used by the driver to synchronize and manage
>      hardware operations.
>
>    Examples of the binding usage in the driver code:
>    1) GCE Thread Priority:
>    - Defined in the header file: `#define CMDQ_THR_PRIO_4 4`
>    - Used in the Device Tree: `mboxes = <&gce0 0 CMDQ_THR_PRIO_4>;`
>    - Parsed and used in the driver to set thread priority:
>      ```c
>      static struct mbox_chan *cmdq_xlate(struct mbox_controller *mbox,i
>                                          const struct of_phandle_args *sp)
>      {
>         thread->priority = sp->args[1];
>      }
>      // set GCE thread priority to the priority level 4 for GCE thread 0
>      writel(thread->priority, thread->base + CMDQ_THR_PRIORITY);
>      ```
>
>    2) GCE Subsys ID:
>    - Defined in the header file: `#define SUBSYS_1c00XXXX 3`
>    - Used in the Device Tree:
>         `mediatek,gce-client-reg = <&gce SUBSYS_1c00XXXX 0x0000 0x1000>;`
>    - Parsed and used in the driver to configure subsys ID:
>      ```c
>      int cmdq_dev_get_client_reg(struct device *dev,
>                                  struct cmdq_client_reg *client_reg,
>                                  int idx)
>      {
>         client_reg->subsys = (u8)spec.args[0];
>         client_reg->offset = (u16)spec.args[1];
>      }
>      // GCE write the value to the register 0x1c000000 + 0x0000 + offset
>      cmdq_pkt_write(cmdq_handle, client_reg->subsys,
>                     client_reg->offset + offset, value);
>      ```
>
>    3) GCE Event:
>    - Defined in the header file:
>         `#define CMDQ_EVENT_VDO0_DISP_STREAM_DONE_0 574`
>    - Used in the Device Tree:
>         `mediatek,gce-events = <CMDQ_EVENT_VDO0_DISP_STREAM_DONE_0>;`
>    - Parsed and used in the driver to handle events:
>      ```c
>      int mtk_crtc_create(struct drm_device *drm_dev,
>                          const unsigned int *path,
>                          unsigned int path_len, int priv_data_index,
>                          const struct mtk_drm_route *conn_routes,
>                          unsigned int num_conn_routes)
>      {
>         of_property_read_u32_index(priv->mutex_node,
>                                    "mediatek,gce-events", i,
>                                    &mtk_crtc->cmdq_event);
>      }
>      // GCE clear the STREAM_DONE event sent from DISP_MUTEX hardware
>      cmdq_pkt_clear_event(cmdq_handle, mtk_crtc->cmdq_event);
>      ```
>
> Signed-off-by: Jason-JH.Lin <jason-jh....@mediatek.com>
> ---
>  .../mailbox/mediatek,gce-mailbox.yaml         |    4 +
>  .../dt-bindings/mailbox/mediatek,mt8196-gce.h | 1415 +++++++++++++++++
>  2 files changed, 1419 insertions(+)
>  create mode 100644 include/dt-bindings/mailbox/mediatek,mt8196-gce.h
>
> diff --git 
> a/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml 
> b/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> index cef9d7601398..73d6db34d64a 100644
> --- a/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> +++ b/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> @@ -25,6 +25,7 @@ properties:
>            - mediatek,mt8188-gce
>            - mediatek,mt8192-gce
>            - mediatek,mt8195-gce
> +          - mediatek,mt8196-gce
>        - items:
>            - const: mediatek,mt6795-gce
>            - const: mediatek,mt8173-gce
> @@ -49,6 +50,9 @@ properties:
>      items:
>        - const: gce
>
> +  iommus:
> +    maxItems: 1
> +
>  required:
>    - compatible
>    - "#mbox-cells"
> diff --git a/include/dt-bindings/mailbox/mediatek,mt8196-gce.h 
> b/include/dt-bindings/mailbox/mediatek,mt8196-gce.h
> new file mode 100644
> index 000000000000..9e0700236033
> --- /dev/null
> +++ b/include/dt-bindings/mailbox/mediatek,mt8196-gce.h
> @@ -0,0 +1,1415 @@

1415 ?  90% seem unnecessary.

> +
> +/* GCE thread priority */
> +#define CMDQ_THR_PRIO_LOWEST   0
> +#define CMDQ_THR_PRIO_1                1
> +#define CMDQ_THR_PRIO_2                2
> +#define CMDQ_THR_PRIO_3                3
> +#define CMDQ_THR_PRIO_4                4
> +#define CMDQ_THR_PRIO_5                5
> +#define CMDQ_THR_PRIO_6                6
> +#define CMDQ_THR_PRIO_HIGHEST  7
>
 Only need to HIGHEST maybe


> +
> +/* GCE subsys table */
> +#define SUBSYS_1300XXXX                0
> +#define SUBSYS_1400XXXX                1
> +#define SUBSYS_1401XXXX                2
> +#define SUBSYS_1402XXXX                3
> +#define SUBSYS_1502XXXX                4
> +#define SUBSYS_1880XXXX                5
> +#define SUBSYS_1881XXXX                6
> +#define SUBSYS_1882XXXX                7
> +#define SUBSYS_1883XXXX                8
> +#define SUBSYS_1884XXXX                9
> +#define SUBSYS_1000XXXX                10
> +#define SUBSYS_1001XXXX                11
> +#define SUBSYS_1002XXXX                12
> +#define SUBSYS_1003XXXX                13
> +#define SUBSYS_1004XXXX                14
> +#define SUBSYS_1005XXXX                15
> +#define SUBSYS_1020XXXX                16
> +#define SUBSYS_1028XXXX                17
> +#define SUBSYS_1700XXXX                18
> +#define SUBSYS_1701XXXX                19
> +#define SUBSYS_1702XXXX                20
> +#define SUBSYS_1703XXXX                21
> +#define SUBSYS_1800XXXX                22
> +#define SUBSYS_1801XXXX                23
> +#define SUBSYS_1802XXXX                24
> +#define SUBSYS_1804XXXX                25
> +#define SUBSYS_1805XXXX                26
> +#define SUBSYS_1808XXXX                27
> +#define SUBSYS_180aXXXX                28
> +#define SUBSYS_180bXXXX                29
> +#define SUBSYS_NO_SUPPORT      99
> +
Keep only that you use now or plan in  the near future. But ok.

> +/* GCE-D hardware events */
> +#define CMDQ_EVENT_DISP0_STREAM_SOF0                                         
>   0
> +#define CMDQ_EVENT_DISP0_STREAM_SOF1                                         
>   1
> +#define CMDQ_EVENT_DISP0_STREAM_SOF2                                         
>   2
> +#define CMDQ_EVENT_DISP0_STREAM_SOF3                                         
>   3
> +#define CMDQ_EVENT_DISP0_STREAM_SOF4                                         
>   4
> +#define CMDQ_EVENT_DISP0_STREAM_SOF5                                         
>   5
> +#define CMDQ_EVENT_DISP0_STREAM_SOF6                                         
>   6
> +#define CMDQ_EVENT_DISP0_STREAM_SOF7                                         
>   7
> +#define CMDQ_EVENT_DISP0_STREAM_SOF8                                         
>   8
> +#define CMDQ_EVENT_DISP0_STREAM_SOF9                                         
>   9
> +#define CMDQ_EVENT_DISP0_STREAM_SOF10                                        
>   10
> +#define CMDQ_EVENT_DISP0_STREAM_SOF11                                        
>   11
> +#define CMDQ_EVENT_DISP0_STREAM_SOF12                                        
>   12
> +#define CMDQ_EVENT_DISP0_STREAM_SOF13                                        
>   13
> +#define CMDQ_EVENT_DISP0_STREAM_SOF14                                        
>   14
> +#define CMDQ_EVENT_DISP0_STREAM_SOF15                                        
>   15
>
 you mean
  #define CMDQ_EVENT_DISP0_STREAM_SOF(n)  n

> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL0                                     
>   16
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL1                                     
>   17
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL2                                     
>   18
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL3                                     
>   19
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL4                                     
>   20
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL5                                     
>   21
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL6                                     
>   22
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL7                                     
>   23
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL8                                     
>   24
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL9                                     
>   25
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL10                                    
>   26
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL11                                    
>   27
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL12                                    
>   28
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL13                                    
>   29
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL14                                    
>   30
> +#define CMDQ_EVENT_DISP0_FRAME_DONE_SEL15                                    
>   31

   #define CMDQ_EVENT_DISP0_FRAME_DONE_SEL(n)
            (16 + n)


> +#define CMDQ_EVENT_DISP0_DISP_WDMA0_TARGET_LINE_END_ENG_EVENT                
>   32
> +#define CMDQ_EVENT_DISP0_DISP_WDMA0_SW_RST_DONE_ENG_EVENT                    
>   33
> +#define CMDQ_EVENT_DISP0_DISP_POSTMASK1_RST_DONE_ENG_EVENT                   
>   34
> +#define CMDQ_EVENT_DISP0_DISP_POSTMASK0_RST_DONE_ENG_EVENT                   
>   35
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_TIMEOUT_ENG_EVENT                       
>   36
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT0                   
>   37
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT1                   
>   38
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT2                   
>   39
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT3                   
>   40
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT4                   
>   41
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT5                   
>   42
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT6                   
>   43
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT7                   
>   44
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT8                   
>   45
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT9                   
>   46
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT10                  
>   47
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT11                  
>   48
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT12                  
>   49
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT13                  
>   50
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT14                  
>   51
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_REG_UPDATE_ENG_EVENT15                  
>   52
> +#define CMDQ_EVENT_DISP0_DISP_MUTEX0_GET_RELEASE_ENG_EVENT                   
>   53
> +#define CMDQ_EVENT_DISP0_DISP_MDP_RDMA0_SW_RST_DONE_ENG_EVENT                
>   54
> +
 keep only the used ones and use

> +#define CMDQ_EVENT_DISP1_STREAM_SOF0                                         
>   55
> +#define CMDQ_EVENT_DISP1_STREAM_SOF1                                         
>   56
> +#define CMDQ_EVENT_DISP1_STREAM_SOF2                                         
>   57
> +#define CMDQ_EVENT_DISP1_STREAM_SOF3                                         
>   58
> +#define CMDQ_EVENT_DISP1_STREAM_SOF4                                         
>   59
> +#define CMDQ_EVENT_DISP1_STREAM_SOF5                                         
>   60
> +#define CMDQ_EVENT_DISP1_STREAM_SOF6                                         
>   61
> +#define CMDQ_EVENT_DISP1_STREAM_SOF7                                         
>   62
> +#define CMDQ_EVENT_DISP1_STREAM_SOF8                                         
>   63
> +#define CMDQ_EVENT_DISP1_STREAM_SOF9                                         
>   64
> +#define CMDQ_EVENT_DISP1_STREAM_SOF10                                        
>   65
> +#define CMDQ_EVENT_DISP1_STREAM_SOF11                                        
>   66
> +#define CMDQ_EVENT_DISP1_STREAM_SOF12                                        
>   67
> +#define CMDQ_EVENT_DISP1_STREAM_SOF13                                        
>   68
> +#define CMDQ_EVENT_DISP1_STREAM_SOF14                                        
>   69
> +#define CMDQ_EVENT_DISP1_STREAM_SOF15                                        
>   70
>
   (55 + n)

> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL0                                     
>   71
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL1                                     
>   72
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL2                                     
>   73
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL3                                     
>   74
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL4                                     
>   75
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL5                                     
>   76
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL6                                     
>   77
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL7                                     
>   78
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL8                                     
>   79
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL9                                     
>   80
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL10                                    
>   81
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL11                                    
>   82
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL12                                    
>   83
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL13                                    
>   84
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL14                                    
>   85
> +#define CMDQ_EVENT_DISP1_FRAME_DONE_SEL15                                    
>   86
>
   (71  + n)

> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT0                              
>           87
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT1                              
>           88
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT2                              
>           89
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT3                              
>           90
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT4                              
>           91
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT5                              
>           92
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT6                              
>           93
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT7                              
>           94
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT8                              
>           95
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT9                              
>           96
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT10                             
>   97
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT11                             
>   98
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT12                             
>   99
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT13                             
>   100
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT14                             
>   101
> +#define CMDQ_EVENT_DISP1_STREAM_DONE_ENG_EVENT15                             
>   102
>
  (87 + n)

> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT0                          
>   103
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT1                          
>   104
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT2                          
>   105
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT3                          
>   106
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT4                          
>   107
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT5                          
>   108
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT6                          
>   109
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT7                          
>   110
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT8                          
>   111
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT9                          
>   112
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT10                         
>   113
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT11                         
>   114
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT12                         
>   115
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT13                         
>   116
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT14                         
>   117
> +#define CMDQ_EVENT_DISP1_REG_UPDATE_DONE_ENG_EVENT15                         
>   118
>
  you know

> +#define CMDQ_EVENT_DISP1_OCIP_SUBSYS_SRAM_ISOINT_ENG_EVENT                   
>   119
> +#define CMDQ_EVENT_DISP1_DISP_WDMA4_TARGET_LINE_END_ENG_EVENT                
>   120
> +#define CMDQ_EVENT_DISP1_DISP_WDMA4_SW_RST_DONE_ENG_EVENT                    
>   121
> +#define CMDQ_EVENT_DISP1_DISP_WDMA3_TARGET_LINE_END_ENG_EVENT                
>   122
> +#define CMDQ_EVENT_DISP1_DISP_WDMA3_SW_RST_DONE_ENG_EVENT                    
>   123
> +#define CMDQ_EVENT_DISP1_DISP_WDMA2_TARGET_LINE_END_ENG_EVENT                
>   124
> +#define CMDQ_EVENT_DISP1_DISP_WDMA2_SW_RST_DONE_ENG_EVENT                    
>   125
> +#define CMDQ_EVENT_DISP1_DISP_WDMA1_TARGET_LINE_END_ENG_EVENT                
>   126
> +#define CMDQ_EVENT_DISP1_DISP_WDMA1_SW_RST_DONE_ENG_EVENT                    
>   127
> +#define CMDQ_EVENT_DISP1_DISP_MUTEX0_TIMEOUT_ENG_EVENT                       
>   128
> +#define CMDQ_EVENT_DISP1_DISP_MUTEX0_GET_RLZ_ENG_EVENT                       
>   129
> +#define CMDQ_EVENT_DISP1_DISP_MDP_RDMA1_SW_RST_DONE_ENG_EVENT                
>   130
> +#define CMDQ_EVENT_DISP1_DISP_GDMA0_SW_RST_DONE_ENG_EVENT                    
>   131
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_VSYNC_START_ENG_EVENT          
>   132
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_VSYNC_END_ENG_EVENT            
>   133
> +#define 
> CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_VRR_VFP_LAST_SAFE_BLANK_ENG_EVENT       
>  134
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_VFP_START_ENG_EVENT            
>   135
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_VFP_LAST_LINE_ENG_EVENT        
>   136
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_VDE_END_ENG_EVENT              
>           137
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_TRIGGER_LOOP_CLR_ENG_EVENT     
>   138
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_TARGET_LINE1_ENG_EVENT         
>   139
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_INT_TG_TARGET_LINE0_ENG_EVENT         
>   140
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_EXT_TG_VSYNC_START_ENG_EVENT          
>   141
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_EXT_TG_VSYNC_END_ENG_EVENT            
>   142
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_EXT_TG_VDE_START_ENG_EVENT            
>   143
> +#define CMDQ_EVENT_DISP1_DISP_DVO0_DVO_EXT_TG_VDE_END_ENG_EVENT              
>           144
>
  keep only the used ones

> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT0                                
>   145
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT1                                
>   146
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT2                                
>   147
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT3                                
>   148
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT4                                
>   149
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT5                                
>   150
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT6                                
>   151
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT7                                
>   152
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT8                                
>   153
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT9                                
>   154
> +#define CMDQ_EVENT_DISP1_DISP_DSI2_ENG_EVENT10                               
>   155
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT0                                
>   156
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT1                                
>   157
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT2                                
>   158
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT3                                
>   159
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT4                                
>   160
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT5                                
>   161
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT6                                
>   162
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT7                                
>   163
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT8                                
>   164
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT9                                
>   165
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT10                               
>   166
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT11                               
>   167
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT12                               
>   168
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT13                               
>   169
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT14                               
>   170
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT15                               
>   171
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT16                               
>   172
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT17                               
>   173
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT18                               
>   174
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT19                               
>   175
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT20                               
>   176
> +#define CMDQ_EVENT_DISP1_DISP_DSI1_ENG_EVENT21                               
>   177
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT0                                
>   178
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT1                                
>   179
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT2                                
>   180
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT3                                
>   181
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT4                                
>   182
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT5                                
>   183
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT6                                
>   184
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT7                                
>   185
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT8                                
>   186
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT9                                
>   187
> +#define CMDQ_EVENT_DISP1_DISP_DSI0_ENG_EVENT10                               
>   188
>

DSI2_ENG_EVENT(n)   (145 + n)
DSI1_ENG_EVENT(n)   (156 + n)
DSI0_ENG_EVENT(n)   (178 + n)

I am not going through the math exercises below but I believe you get the idea.

thanks

Reply via email to