drm-uapi: Update headers from drm-next
Pull new updates from drm-next as of the following commit: commit f1b4a9217efd61d0b84c6dc404596c8519ff6f59 Merge: 400e91347e1d f3a36d469621 Author: Dave Airlie <airlied@redhat.com> Date: Tue Oct 22 15:04:00 2019 +1000 Merge tag 'du-next-20191016' of git://linuxtv.org/pinchartl/media into drm-next Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
@@ -13,8 +13,9 @@ $ make headers_install INSTALL_HDR_PATH=/path/to/install
|
|||||||
|
|
||||||
The last update was done at the following kernel commit :
|
The last update was done at the following kernel commit :
|
||||||
|
|
||||||
commit 54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c
|
commit f1b4a9217efd61d0b84c6dc404596c8519ff6f59
|
||||||
Author: Linus Torvalds <torvalds@linux-foundation.org>
|
Merge: 400e91347e1d f3a36d469621
|
||||||
Date: Mon Sep 30 10:35:40 2019 -0700
|
Author: Dave Airlie <airlied@redhat.com>
|
||||||
|
Date: Tue Oct 22 15:04:00 2019 +1000
|
||||||
|
|
||||||
Linux 5.4-rc1
|
Merge tag 'du-next-20191016' of git://linuxtv.org/pinchartl/media into drm-next
|
||||||
|
@@ -648,7 +648,21 @@ extern "C" {
|
|||||||
* Further information on the use of AFBC modifiers can be found in
|
* Further information on the use of AFBC modifiers can be found in
|
||||||
* Documentation/gpu/afbc.rst
|
* Documentation/gpu/afbc.rst
|
||||||
*/
|
*/
|
||||||
#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) fourcc_mod_code(ARM, __afbc_mode)
|
|
||||||
|
/*
|
||||||
|
* The top 4 bits (out of the 56 bits alloted for specifying vendor specific
|
||||||
|
* modifiers) denote the category for modifiers. Currently we have only two
|
||||||
|
* categories of modifiers ie AFBC and MISC. We can have a maximum of sixteen
|
||||||
|
* different categories.
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \
|
||||||
|
fourcc_mod_code(ARM, ((__u64)(__type) << 52) | ((__val) & 0x000fffffffffffffULL))
|
||||||
|
|
||||||
|
#define DRM_FORMAT_MOD_ARM_TYPE_AFBC 0x00
|
||||||
|
#define DRM_FORMAT_MOD_ARM_TYPE_MISC 0x01
|
||||||
|
|
||||||
|
#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) \
|
||||||
|
DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFBC, __afbc_mode)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AFBC superblock size
|
* AFBC superblock size
|
||||||
@@ -742,6 +756,16 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define AFBC_FORMAT_MOD_BCH (1ULL << 11)
|
#define AFBC_FORMAT_MOD_BCH (1ULL << 11)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Arm 16x16 Block U-Interleaved modifier
|
||||||
|
*
|
||||||
|
* This is used by Arm Mali Utgard and Midgard GPUs. It divides the image
|
||||||
|
* into 16x16 pixel blocks. Blocks are stored linearly in order, but pixels
|
||||||
|
* in the block are reordered.
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
|
||||||
|
DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allwinner tiled modifier
|
* Allwinner tiled modifier
|
||||||
*
|
*
|
||||||
|
@@ -611,6 +611,13 @@ typedef struct drm_i915_irq_wait {
|
|||||||
* See I915_EXEC_FENCE_OUT and I915_EXEC_FENCE_SUBMIT.
|
* See I915_EXEC_FENCE_OUT and I915_EXEC_FENCE_SUBMIT.
|
||||||
*/
|
*/
|
||||||
#define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
|
#define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Revision of the i915-perf uAPI. The value returned helps determine what
|
||||||
|
* i915-perf features are available. See drm_i915_perf_property_id.
|
||||||
|
*/
|
||||||
|
#define I915_PARAM_PERF_REVISION 54
|
||||||
|
|
||||||
/* Must be kept compact -- no holes and well documented */
|
/* Must be kept compact -- no holes and well documented */
|
||||||
|
|
||||||
typedef struct drm_i915_getparam {
|
typedef struct drm_i915_getparam {
|
||||||
@@ -1844,23 +1851,31 @@ enum drm_i915_perf_property_id {
|
|||||||
* Open the stream for a specific context handle (as used with
|
* Open the stream for a specific context handle (as used with
|
||||||
* execbuffer2). A stream opened for a specific context this way
|
* execbuffer2). A stream opened for a specific context this way
|
||||||
* won't typically require root privileges.
|
* won't typically require root privileges.
|
||||||
|
*
|
||||||
|
* This property is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
DRM_I915_PERF_PROP_CTX_HANDLE = 1,
|
DRM_I915_PERF_PROP_CTX_HANDLE = 1,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A value of 1 requests the inclusion of raw OA unit reports as
|
* A value of 1 requests the inclusion of raw OA unit reports as
|
||||||
* part of stream samples.
|
* part of stream samples.
|
||||||
|
*
|
||||||
|
* This property is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
DRM_I915_PERF_PROP_SAMPLE_OA,
|
DRM_I915_PERF_PROP_SAMPLE_OA,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The value specifies which set of OA unit metrics should be
|
* The value specifies which set of OA unit metrics should be
|
||||||
* be configured, defining the contents of any OA unit reports.
|
* be configured, defining the contents of any OA unit reports.
|
||||||
|
*
|
||||||
|
* This property is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
DRM_I915_PERF_PROP_OA_METRICS_SET,
|
DRM_I915_PERF_PROP_OA_METRICS_SET,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The value specifies the size and layout of OA unit reports.
|
* The value specifies the size and layout of OA unit reports.
|
||||||
|
*
|
||||||
|
* This property is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
DRM_I915_PERF_PROP_OA_FORMAT,
|
DRM_I915_PERF_PROP_OA_FORMAT,
|
||||||
|
|
||||||
@@ -1870,9 +1885,22 @@ enum drm_i915_perf_property_id {
|
|||||||
* from this exponent as follows:
|
* from this exponent as follows:
|
||||||
*
|
*
|
||||||
* 80ns * 2^(period_exponent + 1)
|
* 80ns * 2^(period_exponent + 1)
|
||||||
|
*
|
||||||
|
* This property is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
DRM_I915_PERF_PROP_OA_EXPONENT,
|
DRM_I915_PERF_PROP_OA_EXPONENT,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifying this property is only valid when specify a context to
|
||||||
|
* filter with DRM_I915_PERF_PROP_CTX_HANDLE. Specifying this property
|
||||||
|
* will hold preemption of the particular context we want to gather
|
||||||
|
* performance data about. The execbuf2 submissions must include a
|
||||||
|
* drm_i915_gem_execbuffer_ext_perf parameter for this to apply.
|
||||||
|
*
|
||||||
|
* This property is available in perf revision 3.
|
||||||
|
*/
|
||||||
|
DRM_I915_PERF_PROP_HOLD_PREEMPTION,
|
||||||
|
|
||||||
DRM_I915_PERF_PROP_MAX /* non-ABI */
|
DRM_I915_PERF_PROP_MAX /* non-ABI */
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1901,6 +1929,8 @@ struct drm_i915_perf_open_param {
|
|||||||
* to close and re-open a stream with the same configuration.
|
* to close and re-open a stream with the same configuration.
|
||||||
*
|
*
|
||||||
* It's undefined whether any pending data for the stream will be lost.
|
* It's undefined whether any pending data for the stream will be lost.
|
||||||
|
*
|
||||||
|
* This ioctl is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
#define I915_PERF_IOCTL_ENABLE _IO('i', 0x0)
|
#define I915_PERF_IOCTL_ENABLE _IO('i', 0x0)
|
||||||
|
|
||||||
@@ -1908,9 +1938,24 @@ struct drm_i915_perf_open_param {
|
|||||||
* Disable data capture for a stream.
|
* Disable data capture for a stream.
|
||||||
*
|
*
|
||||||
* It is an error to try and read a stream that is disabled.
|
* It is an error to try and read a stream that is disabled.
|
||||||
|
*
|
||||||
|
* This ioctl is available in perf revision 1.
|
||||||
*/
|
*/
|
||||||
#define I915_PERF_IOCTL_DISABLE _IO('i', 0x1)
|
#define I915_PERF_IOCTL_DISABLE _IO('i', 0x1)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change metrics_set captured by a stream.
|
||||||
|
*
|
||||||
|
* If the stream is bound to a specific context, the configuration change
|
||||||
|
* will performed __inline__ with that context such that it takes effect before
|
||||||
|
* the next execbuf submission.
|
||||||
|
*
|
||||||
|
* Returns the previously bound metrics set id, or a negative error code.
|
||||||
|
*
|
||||||
|
* This ioctl is available in perf revision 2.
|
||||||
|
*/
|
||||||
|
#define I915_PERF_IOCTL_CONFIG _IO('i', 0x2)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Common to all i915 perf records
|
* Common to all i915 perf records
|
||||||
*/
|
*/
|
||||||
@@ -1984,6 +2029,7 @@ struct drm_i915_query_item {
|
|||||||
__u64 query_id;
|
__u64 query_id;
|
||||||
#define DRM_I915_QUERY_TOPOLOGY_INFO 1
|
#define DRM_I915_QUERY_TOPOLOGY_INFO 1
|
||||||
#define DRM_I915_QUERY_ENGINE_INFO 2
|
#define DRM_I915_QUERY_ENGINE_INFO 2
|
||||||
|
#define DRM_I915_QUERY_PERF_CONFIG 3
|
||||||
/* Must be kept compact -- no holes and well documented */
|
/* Must be kept compact -- no holes and well documented */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1995,9 +2041,18 @@ struct drm_i915_query_item {
|
|||||||
__s32 length;
|
__s32 length;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unused for now. Must be cleared to zero.
|
* When query_id == DRM_I915_QUERY_TOPOLOGY_INFO, must be 0.
|
||||||
|
*
|
||||||
|
* When query_id == DRM_I915_QUERY_PERF_CONFIG, must be one of the
|
||||||
|
* following :
|
||||||
|
* - DRM_I915_QUERY_PERF_CONFIG_LIST
|
||||||
|
* - DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID
|
||||||
|
* - DRM_I915_QUERY_PERF_CONFIG_FOR_UUID
|
||||||
*/
|
*/
|
||||||
__u32 flags;
|
__u32 flags;
|
||||||
|
#define DRM_I915_QUERY_PERF_CONFIG_LIST 1
|
||||||
|
#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID 2
|
||||||
|
#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID 3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Data will be written at the location pointed by data_ptr when the
|
* Data will be written at the location pointed by data_ptr when the
|
||||||
@@ -2033,8 +2088,10 @@ struct drm_i915_query {
|
|||||||
* (data[X / 8] >> (X % 8)) & 1
|
* (data[X / 8] >> (X % 8)) & 1
|
||||||
*
|
*
|
||||||
* - the subslice mask for each slice with one bit per subslice telling
|
* - the subslice mask for each slice with one bit per subslice telling
|
||||||
* whether a subslice is available. The availability of subslice Y in slice
|
* whether a subslice is available. Gen12 has dual-subslices, which are
|
||||||
* X can be queried with the following formula :
|
* similar to two gen11 subslices. For gen12, this array represents dual-
|
||||||
|
* subslices. The availability of subslice Y in slice X can be queried
|
||||||
|
* with the following formula :
|
||||||
*
|
*
|
||||||
* (data[subslice_offset +
|
* (data[subslice_offset +
|
||||||
* X * subslice_stride +
|
* X * subslice_stride +
|
||||||
@@ -2123,6 +2180,56 @@ struct drm_i915_query_engine_info {
|
|||||||
struct drm_i915_engine_info engines[];
|
struct drm_i915_engine_info engines[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Data written by the kernel with query DRM_I915_QUERY_PERF_CONFIG.
|
||||||
|
*/
|
||||||
|
struct drm_i915_query_perf_config {
|
||||||
|
union {
|
||||||
|
/*
|
||||||
|
* When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_LIST, i915 sets
|
||||||
|
* this fields to the number of configurations available.
|
||||||
|
*/
|
||||||
|
__u64 n_configs;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When query_id == DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID,
|
||||||
|
* i915 will use the value in this field as configuration
|
||||||
|
* identifier to decide what data to write into config_ptr.
|
||||||
|
*/
|
||||||
|
__u64 config;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When query_id == DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID,
|
||||||
|
* i915 will use the value in this field as configuration
|
||||||
|
* identifier to decide what data to write into config_ptr.
|
||||||
|
*
|
||||||
|
* String formatted like "%08x-%04x-%04x-%04x-%012x"
|
||||||
|
*/
|
||||||
|
char uuid[36];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unused for now. Must be cleared to zero.
|
||||||
|
*/
|
||||||
|
__u32 flags;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_LIST, i915 will
|
||||||
|
* write an array of __u64 of configuration identifiers.
|
||||||
|
*
|
||||||
|
* When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_DATA, i915 will
|
||||||
|
* write a struct drm_i915_perf_oa_config. If the following fields of
|
||||||
|
* drm_i915_perf_oa_config are set not set to 0, i915 will write into
|
||||||
|
* the associated pointers the values of submitted when the
|
||||||
|
* configuration was created :
|
||||||
|
*
|
||||||
|
* - n_mux_regs
|
||||||
|
* - n_boolean_regs
|
||||||
|
* - n_flex_regs
|
||||||
|
*/
|
||||||
|
__u8 data[];
|
||||||
|
};
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -63,7 +63,7 @@ extern "C" {
|
|||||||
* flushed by the time the render done IRQ happens, which is the
|
* flushed by the time the render done IRQ happens, which is the
|
||||||
* trigger for out_sync. Any dirtying of cachelines by the job (only
|
* trigger for out_sync. Any dirtying of cachelines by the job (only
|
||||||
* possible using TMU writes) must be flushed by the caller using the
|
* possible using TMU writes) must be flushed by the caller using the
|
||||||
* CL's cache flush commands.
|
* DRM_V3D_SUBMIT_CL_FLUSH_CACHE_FLAG flag.
|
||||||
*/
|
*/
|
||||||
struct drm_v3d_submit_cl {
|
struct drm_v3d_submit_cl {
|
||||||
/* Pointer to the binner command list.
|
/* Pointer to the binner command list.
|
||||||
|
Reference in New Issue
Block a user