Merge tag 'char-misc-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH: "Here is the big set of char/misc and other driver patches for 5.5-rc1 Loads of different things in here, this feels like the catch-all of driver subsystems these days. Full details are in the shortlog, but nothing major overall, just lots of driver updates and additions. All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (198 commits) char: Fix Kconfig indentation, continued habanalabs: add more protection of device during reset habanalabs: flush EQ workers in hard reset habanalabs: make the reset code more consistent habanalabs: expose reset counters via existing INFO IOCTL habanalabs: make code more concise habanalabs: use defines for F/W files habanalabs: remove prints on successful device initialization habanalabs: remove unnecessary checks habanalabs: invalidate MMU cache only once habanalabs: skip VA block list update in reset flow habanalabs: optimize MMU unmap habanalabs: prevent read/write from/to the device during hard reset habanalabs: split MMU properties to PCI/DRAM habanalabs: re-factor MMU masks and documentation habanalabs: type specific MMU cache invalidation habanalabs: re-factor memory module code habanalabs: export uapi defines to user-space habanalabs: don't print error when queues are full habanalabs: increase max jobs number to 512 ...
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
#define FASTRPC_IOCTL_INVOKE _IOWR('R', 3, struct fastrpc_invoke)
|
||||
#define FASTRPC_IOCTL_INIT_ATTACH _IO('R', 4)
|
||||
#define FASTRPC_IOCTL_INIT_CREATE _IOWR('R', 5, struct fastrpc_init_create)
|
||||
#define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap)
|
||||
#define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap)
|
||||
|
||||
struct fastrpc_invoke_args {
|
||||
__u64 ptr;
|
||||
@@ -38,4 +40,17 @@ struct fastrpc_alloc_dma_buf {
|
||||
__u64 size; /* size */
|
||||
};
|
||||
|
||||
struct fastrpc_req_mmap {
|
||||
__s32 fd;
|
||||
__u32 flags; /* flags for dsp to map with */
|
||||
__u64 vaddrin; /* optional virtual address */
|
||||
__u64 size; /* size */
|
||||
__u64 vaddrout; /* dsp virtual address */
|
||||
};
|
||||
|
||||
struct fastrpc_req_munmap {
|
||||
__u64 vaddrout; /* address to unmap */
|
||||
__u64 size; /* size */
|
||||
};
|
||||
|
||||
#endif /* __QCOM_FASTRPC_H__ */
|
||||
|
||||
@@ -88,13 +88,19 @@ enum hl_device_status {
|
||||
* internal engine.
|
||||
* HL_INFO_DEVICE_STATUS - Retrieve the device's status. This opcode doesn't
|
||||
* require an open context.
|
||||
* HL_INFO_DEVICE_UTILIZATION - Retrieve the total utilization of the device
|
||||
* over the last period specified by the user.
|
||||
* The period can be between 100ms to 1s, in
|
||||
* resolution of 100ms. The return value is a
|
||||
* percentage of the utilization rate.
|
||||
* HL_INFO_DEVICE_UTILIZATION - Retrieve the total utilization of the device
|
||||
* over the last period specified by the user.
|
||||
* The period can be between 100ms to 1s, in
|
||||
* resolution of 100ms. The return value is a
|
||||
* percentage of the utilization rate.
|
||||
* HL_INFO_HW_EVENTS_AGGREGATE - Receive an array describing how many times each
|
||||
* event occurred since the driver was loaded.
|
||||
* HL_INFO_CLK_RATE - Retrieve the current and maximum clock rate
|
||||
* of the device in MHz. The maximum clock rate is
|
||||
* configurable via sysfs parameter
|
||||
* HL_INFO_RESET_COUNT - Retrieve the counts of the soft and hard reset
|
||||
* operations performed on the device since the last
|
||||
* time the driver was loaded.
|
||||
*/
|
||||
#define HL_INFO_HW_IP_INFO 0
|
||||
#define HL_INFO_HW_EVENTS 1
|
||||
@@ -103,8 +109,11 @@ enum hl_device_status {
|
||||
#define HL_INFO_DEVICE_STATUS 4
|
||||
#define HL_INFO_DEVICE_UTILIZATION 6
|
||||
#define HL_INFO_HW_EVENTS_AGGREGATE 7
|
||||
#define HL_INFO_CLK_RATE 8
|
||||
#define HL_INFO_RESET_COUNT 9
|
||||
|
||||
#define HL_INFO_VERSION_MAX_LEN 128
|
||||
#define HL_INFO_CARD_NAME_MAX_LEN 16
|
||||
|
||||
struct hl_info_hw_ip_info {
|
||||
__u64 sram_base_address;
|
||||
@@ -123,6 +132,7 @@ struct hl_info_hw_ip_info {
|
||||
__u8 dram_enabled;
|
||||
__u8 pad[2];
|
||||
__u8 armcp_version[HL_INFO_VERSION_MAX_LEN];
|
||||
__u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
|
||||
};
|
||||
|
||||
struct hl_info_dram_usage {
|
||||
@@ -149,6 +159,16 @@ struct hl_info_device_utilization {
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct hl_info_clk_rate {
|
||||
__u32 cur_clk_rate_mhz;
|
||||
__u32 max_clk_rate_mhz;
|
||||
};
|
||||
|
||||
struct hl_info_reset_count {
|
||||
__u32 hard_reset_cnt;
|
||||
__u32 soft_reset_cnt;
|
||||
};
|
||||
|
||||
struct hl_info_args {
|
||||
/* Location of relevant struct in userspace */
|
||||
__u64 return_pointer;
|
||||
@@ -181,13 +201,15 @@ struct hl_info_args {
|
||||
/* Opcode to destroy previously created command buffer */
|
||||
#define HL_CB_OP_DESTROY 1
|
||||
|
||||
#define HL_MAX_CB_SIZE 0x200000 /* 2MB */
|
||||
|
||||
struct hl_cb_in {
|
||||
/* Handle of CB or 0 if we want to create one */
|
||||
__u64 cb_handle;
|
||||
/* HL_CB_OP_* */
|
||||
__u32 op;
|
||||
/* Size of CB. Maximum size is 2MB. The minimum size that will be
|
||||
* allocated, regardless of this parameter's value, is PAGE_SIZE
|
||||
/* Size of CB. Maximum size is HL_MAX_CB_SIZE. The minimum size that
|
||||
* will be allocated, regardless of this parameter's value, is PAGE_SIZE
|
||||
*/
|
||||
__u32 cb_size;
|
||||
/* Context ID - Currently not in use */
|
||||
@@ -233,6 +255,8 @@ struct hl_cs_chunk {
|
||||
|
||||
#define HL_CS_STATUS_SUCCESS 0
|
||||
|
||||
#define HL_MAX_JOBS_PER_CS 512
|
||||
|
||||
struct hl_cs_in {
|
||||
/* this holds address of array of hl_cs_chunk for restore phase */
|
||||
__u64 chunks_restore;
|
||||
@@ -242,9 +266,13 @@ struct hl_cs_in {
|
||||
* Currently not in use
|
||||
*/
|
||||
__u64 chunks_store;
|
||||
/* Number of chunks in restore phase array */
|
||||
/* Number of chunks in restore phase array. Maximum number is
|
||||
* HL_MAX_JOBS_PER_CS
|
||||
*/
|
||||
__u32 num_chunks_restore;
|
||||
/* Number of chunks in execution array */
|
||||
/* Number of chunks in execution array. Maximum number is
|
||||
* HL_MAX_JOBS_PER_CS
|
||||
*/
|
||||
__u32 num_chunks_execute;
|
||||
/* Number of chunks in restore phase array - Currently not in use */
|
||||
__u32 num_chunks_store;
|
||||
@@ -589,7 +617,7 @@ struct hl_debug_args {
|
||||
*
|
||||
* The user can call this IOCTL with a handle it received from the CS IOCTL
|
||||
* to wait until the handle's CS has finished executing. The user will wait
|
||||
* inside the kernel until the CS has finished or until the user-requeusted
|
||||
* inside the kernel until the CS has finished or until the user-requested
|
||||
* timeout has expired.
|
||||
*
|
||||
* The return value of the IOCTL is a standard Linux error code. The possible
|
||||
|
||||
Reference in New Issue
Block a user