Changes

Jump to navigation Jump to search
1,031 bytes added ,  20:01, 28 January 2020
no edit summary
Line 718: Line 718:  
   struct {
 
   struct {
 
     __in u32 fence_id;
 
     __in u32 fence_id;
     __in u32 fence_value;
+
     __in u32 fence_thresh;
 
     __in u32 swap_interval;
 
     __in u32 swap_interval;
 
   };
 
   };
Line 1,390: Line 1,390:  
! Value || Size || Description
 
! Value || Size || Description
 
|-
 
|-
| 0xC0??0001 || Variable || NVHOST_IOCTL_CHANNEL_SUBMIT
+
| 0xC0??0001 || Variable || [[#NVHOST_IOCTL_CHANNEL_SUBMIT]]
 
|-
 
|-
 
| 0xC0080002 || 8 || [[#NVHOST_IOCTL_CHANNEL_GET_SYNCPOINT]]
 
| 0xC0080002 || 8 || [[#NVHOST_IOCTL_CHANNEL_GET_SYNCPOINT]]
Line 1,410: Line 1,410:  
| 0xC0080023</br>([1.0.0-7.0.1] 0xC0080014) || 8 || [[#NVHOST_IOCTL_CHANNEL_GET_CLK_RATE]]
 
| 0xC0080023</br>([1.0.0-7.0.1] 0xC0080014) || 8 || [[#NVHOST_IOCTL_CHANNEL_GET_CLK_RATE]]
 
|-
 
|-
| 0xC0??0024 || Variable || NVHOST_IOCTL_CHANNEL_SUBMIT_EX
+
| 0xC0??0024 || Variable || [[#NVHOST_IOCTL_CHANNEL_SUBMIT_EX]]
 
|-
 
|-
 
| 0xC0??0025 || Variable || [[#NVHOST_IOCTL_CHANNEL_MAP_CMD_BUFFER_EX]]
 
| 0xC0??0025 || Variable || [[#NVHOST_IOCTL_CHANNEL_MAP_CMD_BUFFER_EX]]
Line 1,470: Line 1,470:  
| 0x80084715 || 8 || [[#NVGPU_IOCTL_CHANNEL_GET_USER_DATA]]
 
| 0x80084715 || 8 || [[#NVGPU_IOCTL_CHANNEL_GET_USER_DATA]]
 
|}
 
|}
 +
 +
== NVHOST_IOCTL_CHANNEL_SUBMIT ===
 +
Submits data to the channel.
 +
 +
  struct cmdbuf {
 +
    u32 mem;
 +
    u32 offset;
 +
    u32 words;
 +
  };
 +
 
 +
  struct reloc {
 +
    u32 cmdbuf_mem;
 +
    u32 cmdbuf_offset;
 +
    u32 target;
 +
    u32 target_offset;
 +
  };
 +
 
 +
  struct reloc_shift {
 +
    u32 shift;
 +
  };
 +
 
 +
  struct syncpt_incr {
 +
    u32 syncpt_id;
 +
    u32 syncpt_incrs;
 +
  };
 +
 
 +
  struct fence {
 +
    u32 id;
 +
    u32 thresh;
 +
  };
 +
 
 +
  struct {
 +
    __in    u32 num_cmdbufs;
 +
    __in    u32 num_relocs;
 +
    __in    u32 num_syncpt_incrs;
 +
    __in    u32 num_fences;
 +
    __in    struct cmdbuf cmdbufs[];              // depends on num_cmdbufs
 +
    __in    struct reloc relocs[];                // depends on num_relocs
 +
    __in    struct reloc_shift reloc_shifts[];    // depends on num_relocs
 +
    __in    struct syncpt_incr syncpt_incrs[];    // depends on num_syncpt_incrs
 +
    __out  struct fence fences[];                // depends on num_fences
 +
  };
    
=== NVHOST_IOCTL_CHANNEL_GET_SYNCPOINT ===
 
=== NVHOST_IOCTL_CHANNEL_GET_SYNCPOINT ===
Line 1,552: Line 1,594:  
     __in    u32 module_id;
 
     __in    u32 module_id;
 
   };
 
   };
 +
 +
== NVHOST_IOCTL_CHANNEL_SUBMIT_EX ==
 +
Same as [[#NVHOST_IOCTL_CHANNEL_SUBMIT|NVHOST_IOCTL_CHANNEL_SUBMIT]].
    
=== NVHOST_IOCTL_CHANNEL_MAP_CMD_BUFFER_EX ===
 
=== NVHOST_IOCTL_CHANNEL_MAP_CMD_BUFFER_EX ===
Line 1,604: Line 1,649:     
   struct fence {
 
   struct fence {
     u32 syncpt_id;
+
     u32 id;
     u32 syncpt_value;
+
     u32 thresh;
 
   };
 
   };
 
    
 
    
Line 1,715: Line 1,760:     
  struct fence {
 
  struct fence {
  u32 syncpt_id;
+
    u32 id;
  u32 syncpt_value;
+
    u32 thresh;
 
  };
 
  };
 
   
 
   

Navigation menu