turnip: Update the msm_kgsl.h header with the sanitized 4.19 version

The current msm_kgsl.h header in the tree isn't sanitized and the kernel
specific macros will confuse a compiler. Copy in the sanitized version of
the header from the 4.19 kernel tree which also adds a few new API bits
that are currently unused but may be useful some day.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14651>
This commit is contained in:
Jordan Crouse 2022-01-21 18:26:12 +00:00 committed by Marge Bot
parent ab5176ec40
commit 3608bce137
1 changed files with 60 additions and 32 deletions

View File

@ -231,6 +231,7 @@ enum kgsl_user_mem_type {
#define KGSL_UBWC_1_0 1
#define KGSL_UBWC_2_0 2
#define KGSL_UBWC_3_0 3
#define KGSL_UBWC_4_0 4
/*
* Reset status values for context
@ -245,12 +246,6 @@ enum kgsl_ctx_reset_stat {
#define KGSL_CONVERT_TO_MBPS(val) \
(val*1000*1000U)
/* device id */
enum kgsl_deviceid {
KGSL_DEVICE_3D0 = 0x00000000,
KGSL_DEVICE_MAX
};
struct kgsl_devinfo {
unsigned int device_id;
@ -271,7 +266,7 @@ struct kgsl_devinfo {
/*
* struct kgsl_devmemstore - this structure defines the region of memory
* that can be mmap()ed from this driver. The timestamp fields are volatile
* that can be mmap()ed from this driver. The timestamp fields are __volatile__
* because they are written by the GPU
* @soptimestamp: Start of pipeline timestamp written by GPU before the
* commands in concern are processed
@ -287,13 +282,13 @@ struct kgsl_devinfo {
* @sbz5: Unused, kept for 8 byte alignment
*/
struct kgsl_devmemstore {
volatile unsigned int soptimestamp;
__volatile__ unsigned int soptimestamp;
unsigned int sbz;
volatile unsigned int eoptimestamp;
__volatile__ unsigned int eoptimestamp;
unsigned int sbz2;
volatile unsigned int preempted;
__volatile__ unsigned int preempted;
unsigned int sbz3;
volatile unsigned int ref_wait_ts;
__volatile__ unsigned int ref_wait_ts;
unsigned int sbz4;
unsigned int current_context;
unsigned int sbz5;
@ -337,8 +332,38 @@ enum kgsl_timestamp_type {
#define KGSL_PROP_SECURE_CTXT_SUPPORT 0x24
#define KGSL_PROP_SPEED_BIN 0x25
#define KGSL_PROP_GAMING_BIN 0x26
#define KGSL_PROP_QUERY_CAPABILITIES 0x27
#define KGSL_PROP_CONTEXT_PROPERTY 0x28
/*
* kgsl_capabilties_properties returns a list of supported properties.
* If the user passes 0 for 'count' the kernel will set it to the number of
* supported properties. The list is expected to be 'count * sizeof(uint32_t)'
* bytes long. The kernel will return the actual number of entries copied into
* list via 'count'.
*/
struct kgsl_capabilities_properties {
__u64 list;
__u32 count;
};
/*
* KGSL_QUERY_CAPS_PROPERTIES returns a list of the valid properties in the
* kernel. The subtype data should be struct kgsl_capabilities_properties
*/
#define KGSL_QUERY_CAPS_PROPERTIES 1
/*
* kgsl_capabilities allows the user to query kernel capabiilties. The 'data'
* type should be set appropriately for the querytype (see above). Pass 0 to
* 'size' and the kernel will set it to the expected size of 'data' that is
* appropriate for querytype (in bytes).
*/
struct kgsl_capabilities {
__u64 data;
__u64 size;
__u32 querytype;
};
struct kgsl_shadowprop {
unsigned long gpuaddr;
@ -432,7 +457,10 @@ struct kgsl_context_property_fault {
#define KGSL_PERFCOUNTER_GROUP_CP_PWR 0x21
#define KGSL_PERFCOUNTER_GROUP_GPMU_PWR 0x22
#define KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR 0x23
#define KGSL_PERFCOUNTER_GROUP_MAX 0x24
#define KGSL_PERFCOUNTER_GROUP_GLC 0x24
#define KGSL_PERFCOUNTER_GROUP_FCHE 0x25
#define KGSL_PERFCOUNTER_GROUP_MHUB 0x26
#define KGSL_PERFCOUNTER_GROUP_MAX 0x27
#define KGSL_PERFCOUNTER_NOT_USED 0xFFFFFFFF
#define KGSL_PERFCOUNTER_BROKEN 0xFFFFFFFE
@ -484,7 +512,7 @@ struct kgsl_cmdbatch_profiling_buffer {
*/
struct kgsl_device_getproperty {
unsigned int type;
void __user *value;
void *value;
size_t sizebytes;
};
@ -774,7 +802,7 @@ struct kgsl_timestamp_event {
int type; /* Type of event (see list below) */
unsigned int timestamp; /* Timestamp to trigger event on */
unsigned int context_id; /* Context for the timestamp */
void __user *priv; /* Pointer to the event specific blob */
void *priv; /* Pointer to the event specific blob */
size_t len; /* Size of the event specific blob */
};
@ -991,7 +1019,7 @@ struct kgsl_perfcounter_put {
struct kgsl_perfcounter_query {
unsigned int groupid;
/* Array to return the current countable for up to size counters */
unsigned int __user *countables;
unsigned int *countables;
unsigned int count;
unsigned int max_counters;
/* private: reserved for future use */
@ -1020,7 +1048,7 @@ struct kgsl_perfcounter_read_group {
};
struct kgsl_perfcounter_read {
struct kgsl_perfcounter_read_group __user *reads;
struct kgsl_perfcounter_read_group *reads;
unsigned int count;
/* private: reserved for future use */
unsigned int __pad[2]; /* For future binary compatibility */
@ -1040,7 +1068,7 @@ struct kgsl_perfcounter_read {
* size of the working set of memory to be managed.
*/
struct kgsl_gpumem_sync_cache_bulk {
unsigned int __user *id_list;
unsigned int *id_list;
unsigned int count;
unsigned int op;
/* private: reserved for future use */
@ -1080,7 +1108,7 @@ struct kgsl_cmd_syncpoint_fence {
*/
struct kgsl_cmd_syncpoint {
int type;
void __user *priv;
void *priv;
size_t size;
};
@ -1112,9 +1140,9 @@ struct kgsl_cmd_syncpoint {
struct kgsl_submit_commands {
unsigned int context_id;
unsigned int flags;
struct kgsl_ibdesc __user *cmdlist;
struct kgsl_ibdesc *cmdlist;
unsigned int numcmds;
struct kgsl_cmd_syncpoint __user *synclist;
struct kgsl_cmd_syncpoint *synclist;
unsigned int numsyncs;
unsigned int timestamp;
/* private: reserved for future use */
@ -1134,7 +1162,7 @@ struct kgsl_submit_commands {
struct kgsl_device_constraint {
unsigned int type;
unsigned int context_id;
void __user *data;
void *data;
size_t size;
};
@ -1282,7 +1310,7 @@ struct kgsl_gpuobj_alloc {
*/
struct kgsl_gpuobj_free {
uint64_t flags;
uint64_t __user priv;
uint64_t priv;
unsigned int id;
unsigned int type;
unsigned int len;
@ -1345,7 +1373,7 @@ struct kgsl_gpuobj_info {
* @id: Returns the ID of the new GPU object
*/
struct kgsl_gpuobj_import {
uint64_t __user priv;
uint64_t priv;
uint64_t priv_len;
uint64_t flags;
unsigned int type;
@ -1394,7 +1422,7 @@ struct kgsl_gpuobj_sync_obj {
*/
struct kgsl_gpuobj_sync {
uint64_t __user objs;
uint64_t objs;
unsigned int obj_len;
unsigned int count;
};
@ -1425,7 +1453,7 @@ struct kgsl_command_object {
* @type: type of sync point defined here
*/
struct kgsl_command_syncpoint {
uint64_t __user priv;
uint64_t priv;
uint64_t size;
unsigned int type;
};
@ -1447,13 +1475,13 @@ struct kgsl_command_syncpoint {
*/
struct kgsl_gpu_command {
uint64_t flags;
uint64_t __user cmdlist;
uint64_t cmdlist;
unsigned int cmdsize;
unsigned int numcmds;
uint64_t __user objlist;
uint64_t objlist;
unsigned int objsize;
unsigned int numobjs;
uint64_t __user synclist;
uint64_t synclist;
unsigned int syncsize;
unsigned int numsyncs;
unsigned int context_id;
@ -1481,7 +1509,7 @@ struct kgsl_gpu_command {
* returned back.
*/
struct kgsl_preemption_counters_query {
uint64_t __user counters;
uint64_t counters;
unsigned int size_user;
unsigned int size_priority_level;
unsigned int max_priority_level;
@ -1598,7 +1626,7 @@ struct kgsl_sparse_binding_object {
*
*/
struct kgsl_sparse_bind {
uint64_t __user list;
uint64_t list;
unsigned int id;
unsigned int size;
unsigned int count;
@ -1623,8 +1651,8 @@ struct kgsl_sparse_bind {
*/
struct kgsl_gpu_sparse_command {
uint64_t flags;
uint64_t __user sparselist;
uint64_t __user synclist;
uint64_t sparselist;
uint64_t synclist;
unsigned int sparsesize;
unsigned int numsparse;
unsigned int syncsize;