NV services: Difference between revisions
No edit summary |
|||
Line 718: | Line 718: | ||
struct { | struct { | ||
__in u32 fence_id; | __in u32 fence_id; | ||
__in u32 | __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 | u32 id; | ||
u32 | u32 thresh; | ||
}; | }; | ||
Line 1,715: | Line 1,760: | ||
struct fence { | struct fence { | ||
u32 id; | |||
u32 thresh; | |||
}; | }; | ||