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;
};
};