mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
Merge "synx : Add snapshot for global synx driver support"
This commit is contained in:
commit
bf7822ca66
2 changed files with 185 additions and 0 deletions
|
|
@ -2,3 +2,4 @@
|
|||
|
||||
header-y += radio-iris.h
|
||||
header-y += radio-iris-commands.h
|
||||
header-y += synx.h
|
||||
|
|
|
|||
184
include/uapi/media/synx.h
Normal file
184
include/uapi/media/synx.h
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef __UAPI_SYNX_H__
|
||||
#define __UAPI_SYNX_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/* Size of opaque payload sent to kernel for safekeeping until signal time */
|
||||
#define SYNX_USER_PAYLOAD_SIZE 4
|
||||
|
||||
#define SYNX_STATE_INVALID 0
|
||||
#define SYNX_STATE_ACTIVE 1
|
||||
#define SYNX_STATE_SIGNALED_SUCCESS 2
|
||||
#define SYNX_STATE_SIGNALED_ERROR 3
|
||||
|
||||
#define SYNX_MAX_WAITING_SYNX 16
|
||||
|
||||
#define SYNX_CALLBACK_RESULT_SUCCESS 2
|
||||
#define SYNX_CALLBACK_RESULT_FAILED 3
|
||||
#define SYNX_CALLBACK_RESULT_CANCELED 4
|
||||
|
||||
/**
|
||||
* type of external sync object
|
||||
*
|
||||
* SYNX_TYPE_CSL : Object is a CSL sync object
|
||||
*/
|
||||
#define SYNX_TYPE_CSL 0
|
||||
#define SYNX_MAX_BIND_TYPES 1
|
||||
/**
|
||||
* struct synx_info - Sync object creation information
|
||||
*
|
||||
* @name : Optional string representation of the synx object
|
||||
* @synx_obj : Sync object returned after creation in kernel
|
||||
*/
|
||||
struct synx_info {
|
||||
char name[64];
|
||||
__s32 synx_obj;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_userpayload_info - Payload info from user space
|
||||
*
|
||||
* @synx_obj: Sync object for which payload has to be registered for
|
||||
* @reserved: Reserved
|
||||
* @payload: Pointer to user payload
|
||||
*/
|
||||
struct synx_userpayload_info {
|
||||
__s32 synx_obj;
|
||||
__u32 reserved;
|
||||
__u64 payload[SYNX_USER_PAYLOAD_SIZE];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_signal - Sync object signaling struct
|
||||
*
|
||||
* @synx_obj : Sync object to be signaled
|
||||
* @synx_state : State of the synx object to which it should be signaled
|
||||
*/
|
||||
struct synx_signal {
|
||||
__s32 synx_obj;
|
||||
__u32 synx_state;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_merge - Merge information for synx objects
|
||||
*
|
||||
* @synx_objs : Pointer to synx object array to merge
|
||||
* @num_objs : Number of objects in the array
|
||||
* @merged : Merged synx object
|
||||
*/
|
||||
struct synx_merge {
|
||||
__u64 synx_objs;
|
||||
__u32 num_objs;
|
||||
__s32 merged;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_wait - Sync object wait information
|
||||
*
|
||||
* @synx_obj : Sync object to wait on
|
||||
* @reserved : Reserved
|
||||
* @timeout_ms : Timeout in milliseconds
|
||||
*/
|
||||
struct synx_wait {
|
||||
__s32 synx_obj;
|
||||
__u32 reserved;
|
||||
__u64 timeout_ms;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_external_desc - info of external sync object
|
||||
*
|
||||
* @type : Synx type
|
||||
* @reserved : Reserved
|
||||
* @id : Sync object id
|
||||
*
|
||||
*/
|
||||
struct synx_external_desc {
|
||||
__u32 type;
|
||||
__u32 reserved;
|
||||
__s32 id[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_bind - info for binding two synx objects
|
||||
*
|
||||
* @synx_obj : Synx object
|
||||
* @Reserved : Reserved
|
||||
* @ext_sync_desc : External synx to bind to
|
||||
*
|
||||
*/
|
||||
struct synx_bind {
|
||||
__s32 synx_obj;
|
||||
__u32 reserved;
|
||||
struct synx_external_desc ext_sync_desc;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_addrefcount - info for refcount increment
|
||||
*
|
||||
* @synx_obj : Synx object
|
||||
* @count : Count to increment
|
||||
*
|
||||
*/
|
||||
struct synx_addrefcount {
|
||||
__s32 synx_obj;
|
||||
__u32 count;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_id_info - info for import and export of a synx object
|
||||
*
|
||||
* @synx_obj : Synx object to be exported
|
||||
* @secure_key : Secure key created in export and used in import
|
||||
* @new_synx_obj : Synx object created in import
|
||||
*
|
||||
*/
|
||||
struct synx_id_info {
|
||||
__s32 synx_obj;
|
||||
__u32 secure_key;
|
||||
__s32 new_synx_obj;
|
||||
__u32 padding;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct synx_private_ioctl_arg - Sync driver ioctl argument
|
||||
*
|
||||
* @id : IOCTL command id
|
||||
* @size : Size of command payload
|
||||
* @result : Result of command execution
|
||||
* @reserved : Reserved
|
||||
* @ioctl_ptr : Pointer to user data
|
||||
*/
|
||||
struct synx_private_ioctl_arg {
|
||||
__u32 id;
|
||||
__u32 size;
|
||||
__u32 result;
|
||||
__u32 reserved;
|
||||
__u64 ioctl_ptr;
|
||||
};
|
||||
|
||||
#define SYNX_PRIVATE_MAGIC_NUM 's'
|
||||
|
||||
#define SYNX_PRIVATE_IOCTL_CMD \
|
||||
_IOWR(SYNX_PRIVATE_MAGIC_NUM, 130, struct synx_private_ioctl_arg)
|
||||
|
||||
#define SYNX_CREATE 0
|
||||
#define SYNX_RELEASE 1
|
||||
#define SYNX_SIGNAL 2
|
||||
#define SYNX_MERGE 3
|
||||
#define SYNX_REGISTER_PAYLOAD 4
|
||||
#define SYNX_DEREGISTER_PAYLOAD 5
|
||||
#define SYNX_WAIT 6
|
||||
#define SYNX_BIND 7
|
||||
#define SYNX_ADDREFCOUNT 8
|
||||
#define SYNX_GETSTATUS 9
|
||||
#define SYNX_IMPORT 10
|
||||
#define SYNX_EXPORT 11
|
||||
|
||||
#endif /* __UAPI_SYNX_H__ */
|
||||
Loading…
Reference in a new issue