XenevaOS
Loading...
Searching...
No Matches
qaic_accel.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
2 *
3 * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
5 */
6
7#ifndef QAIC_ACCEL_H_
8#define QAIC_ACCEL_H_
9
10#include "drm.h"
11
12#if defined(__cplusplus)
13extern "C" {
14#endif
15
16/* The length(4K) includes len and count fields of qaic_manage_msg */
17#define QAIC_MANAGE_MAX_MSG_LENGTH SZ_4K
18
19/* semaphore flags */
20#define QAIC_SEM_INSYNCFENCE 2
21#define QAIC_SEM_OUTSYNCFENCE 1
22
23/* Semaphore commands */
24#define QAIC_SEM_NOP 0
25#define QAIC_SEM_INIT 1
26#define QAIC_SEM_INC 2
27#define QAIC_SEM_DEC 3
28#define QAIC_SEM_WAIT_EQUAL 4
29#define QAIC_SEM_WAIT_GT_EQ 5 /* Greater than or equal */
30#define QAIC_SEM_WAIT_GT_0 6 /* Greater than 0 */
31
32#define QAIC_TRANS_UNDEFINED 0
33#define QAIC_TRANS_PASSTHROUGH_FROM_USR 1
34#define QAIC_TRANS_PASSTHROUGH_TO_USR 2
35#define QAIC_TRANS_PASSTHROUGH_FROM_DEV 3
36#define QAIC_TRANS_PASSTHROUGH_TO_DEV 4
37#define QAIC_TRANS_DMA_XFER_FROM_USR 5
38#define QAIC_TRANS_DMA_XFER_TO_DEV 6
39#define QAIC_TRANS_ACTIVATE_FROM_USR 7
40#define QAIC_TRANS_ACTIVATE_FROM_DEV 8
41#define QAIC_TRANS_ACTIVATE_TO_DEV 9
42#define QAIC_TRANS_DEACTIVATE_FROM_USR 10
43#define QAIC_TRANS_DEACTIVATE_FROM_DEV 11
44#define QAIC_TRANS_STATUS_FROM_USR 12
45#define QAIC_TRANS_STATUS_TO_USR 13
46#define QAIC_TRANS_STATUS_FROM_DEV 14
47#define QAIC_TRANS_STATUS_TO_DEV 15
48#define QAIC_TRANS_TERMINATE_FROM_DEV 16
49#define QAIC_TRANS_TERMINATE_TO_DEV 17
50#define QAIC_TRANS_DMA_XFER_CONT 18
51#define QAIC_TRANS_VALIDATE_PARTITION_FROM_DEV 19
52#define QAIC_TRANS_VALIDATE_PARTITION_TO_DEV 20
53
63
74
91
107
121
133
141
157
169
181
193
211
238
254
264
274
288
298
308
322
334
344
364
374
375#define DRM_QAIC_MANAGE 0x00
376#define DRM_QAIC_CREATE_BO 0x01
377#define DRM_QAIC_MMAP_BO 0x02
378#define DRM_QAIC_ATTACH_SLICE_BO 0x03
379#define DRM_QAIC_EXECUTE_BO 0x04
380#define DRM_QAIC_PARTIAL_EXECUTE_BO 0x05
381#define DRM_QAIC_WAIT_BO 0x06
382#define DRM_QAIC_PERF_STATS_BO 0x07
383#define DRM_QAIC_DETACH_SLICE_BO 0x08
384
385#define DRM_IOCTL_QAIC_MANAGE DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MANAGE, struct qaic_manage_msg)
386#define DRM_IOCTL_QAIC_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_CREATE_BO, struct qaic_create_bo)
387#define DRM_IOCTL_QAIC_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MMAP_BO, struct qaic_mmap_bo)
388#define DRM_IOCTL_QAIC_ATTACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_ATTACH_SLICE_BO, struct qaic_attach_slice)
389#define DRM_IOCTL_QAIC_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_EXECUTE_BO, struct qaic_execute)
390#define DRM_IOCTL_QAIC_PARTIAL_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_PARTIAL_EXECUTE_BO, struct qaic_execute)
391#define DRM_IOCTL_QAIC_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_WAIT_BO, struct qaic_wait)
392#define DRM_IOCTL_QAIC_PERF_STATS_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_PERF_STATS_BO, struct qaic_perf_stats)
393#define DRM_IOCTL_QAIC_DETACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_DETACH_SLICE_BO, struct qaic_detach_slice)
394
395#if defined(__cplusplus)
396}
397#endif
398
399#endif /* QAIC_ACCEL_H_ */
uint32_t __u32
Definition drm.h:42
uint8_t __u8
Definition drm.h:38
uint16_t __u16
Definition drm.h:40
uint64_t __u64
Definition drm.h:44
Definition qaic_accel.h:226
__u32 db_data
Definition qaic_accel.h:234
struct qaic_sem sem1
Definition qaic_accel.h:229
__u64 size
Definition qaic_accel.h:227
struct qaic_sem sem2
Definition qaic_accel.h:230
struct qaic_sem sem3
Definition qaic_accel.h:231
__u32 db_len
Definition qaic_accel.h:235
__u64 db_addr
Definition qaic_accel.h:233
__u64 dev_addr
Definition qaic_accel.h:232
__u64 offset
Definition qaic_accel.h:236
struct qaic_sem sem0
Definition qaic_accel.h:228
Definition qaic_accel.h:247
__u32 dbc_id
Definition qaic_accel.h:249
__u64 size
Definition qaic_accel.h:252
__u32 dir
Definition qaic_accel.h:251
__u32 count
Definition qaic_accel.h:248
__u32 handle
Definition qaic_accel.h:250
Definition qaic_accel.h:260
__u64 data
Definition qaic_accel.h:262
struct qaic_attach_slice_hdr hdr
Definition qaic_accel.h:261
Definition qaic_accel.h:176
__u32 pad
Definition qaic_accel.h:179
__u64 size
Definition qaic_accel.h:177
__u32 handle
Definition qaic_accel.h:178
Definition qaic_accel.h:370
__u32 pad
Definition qaic_accel.h:372
__u32 handle
Definition qaic_accel.h:371
Definition qaic_accel.h:270
__u32 dir
Definition qaic_accel.h:272
__u32 handle
Definition qaic_accel.h:271
Definition qaic_accel.h:294
__u32 count
Definition qaic_accel.h:295
__u32 dbc_id
Definition qaic_accel.h:296
Definition qaic_accel.h:304
__u64 data
Definition qaic_accel.h:306
struct qaic_execute_hdr hdr
Definition qaic_accel.h:305
Definition qaic_accel.h:164
__u32 len
Definition qaic_accel.h:165
__u32 count
Definition qaic_accel.h:166
__u64 data
Definition qaic_accel.h:167
Definition qaic_accel.h:115
__u32 status
Definition qaic_accel.h:117
__u32 dbc_id
Definition qaic_accel.h:118
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:116
__u64 options
Definition qaic_accel.h:119
Definition qaic_accel.h:100
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:101
__u32 options
Definition qaic_accel.h:104
__u32 eventfd
Definition qaic_accel.h:103
__u32 queue_size
Definition qaic_accel.h:102
__u32 pad
Definition qaic_accel.h:105
Definition qaic_accel.h:128
__u32 dbc_id
Definition qaic_accel.h:130
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:129
__u32 pad
Definition qaic_accel.h:131
Definition qaic_accel.h:84
__u32 tag
Definition qaic_accel.h:86
__u32 pad
Definition qaic_accel.h:87
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:85
__u64 size
Definition qaic_accel.h:89
__u64 addr
Definition qaic_accel.h:88
Definition qaic_accel.h:59
__u32 len
Definition qaic_accel.h:61
__u32 type
Definition qaic_accel.h:60
Definition qaic_accel.h:70
__u8 data[]
Definition qaic_accel.h:72
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:71
Definition qaic_accel.h:150
__u32 status
Definition qaic_accel.h:154
__u64 status_flags
Definition qaic_accel.h:155
__u16 minor
Definition qaic_accel.h:153
__u16 major
Definition qaic_accel.h:152
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:151
Definition qaic_accel.h:138
struct qaic_manage_trans_hdr hdr
Definition qaic_accel.h:139
Definition qaic_accel.h:188
__u32 pad
Definition qaic_accel.h:190
__u32 handle
Definition qaic_accel.h:189
__u64 offset
Definition qaic_accel.h:191
Definition qaic_accel.h:283
__u64 resize
Definition qaic_accel.h:286
__u32 dir
Definition qaic_accel.h:285
__u32 handle
Definition qaic_accel.h:284
Definition qaic_accel.h:356
__u32 device_latency_us
Definition qaic_accel.h:361
__u32 submit_latency_us
Definition qaic_accel.h:360
__u32 handle
Definition qaic_accel.h:357
__u32 num_queue_element
Definition qaic_accel.h:359
__u32 pad
Definition qaic_accel.h:362
__u32 queue_level_before
Definition qaic_accel.h:358
Definition qaic_accel.h:329
__u16 count
Definition qaic_accel.h:330
__u16 pad
Definition qaic_accel.h:331
__u32 dbc_id
Definition qaic_accel.h:332
Definition qaic_accel.h:340
struct qaic_perf_stats_hdr hdr
Definition qaic_accel.h:341
__u64 data
Definition qaic_accel.h:342
Definition qaic_accel.h:203
__u16 pad
Definition qaic_accel.h:209
__u16 val
Definition qaic_accel.h:204
__u8 flags
Definition qaic_accel.h:208
__u8 presync
Definition qaic_accel.h:206
__u8 index
Definition qaic_accel.h:205
__u8 cmd
Definition qaic_accel.h:207
Definition qaic_accel.h:316
__u32 timeout
Definition qaic_accel.h:318
__u32 handle
Definition qaic_accel.h:317
__u32 pad
Definition qaic_accel.h:320
__u32 dbc_id
Definition qaic_accel.h:319