mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
rk312x, mali_400_driver : support mali_so to get rk_ko_ver from mali_ko.
This commit is contained in:
@@ -41,6 +41,8 @@ extern "C" {
|
||||
#define MALI_IOC_WAIT_FOR_NOTIFICATION _IOWR(MALI_IOC_CORE_BASE, _MALI_UK_WAIT_FOR_NOTIFICATION, _mali_uk_wait_for_notification_s)
|
||||
#define MALI_IOC_GET_API_VERSION _IOWR(MALI_IOC_CORE_BASE, _MALI_UK_GET_API_VERSION, u32)
|
||||
#define MALI_IOC_GET_API_VERSION_V2 _IOWR(MALI_IOC_CORE_BASE, _MALI_UK_GET_API_VERSION, _mali_uk_get_api_version_v2_s)
|
||||
/* rk_ext. */
|
||||
#define MALI_IOC_GET_RK_KO_VERSION _IOWR(MALI_IOC_CORE_BASE, _MALI_GET_RK_KO_VERSION, _mali_rk_ko_version_s)
|
||||
#define MALI_IOC_POST_NOTIFICATION _IOWR(MALI_IOC_CORE_BASE, _MALI_UK_POST_NOTIFICATION, _mali_uk_post_notification_s)
|
||||
#define MALI_IOC_GET_USER_SETTING _IOWR(MALI_IOC_CORE_BASE, _MALI_UK_GET_USER_SETTING, _mali_uk_get_user_setting_s)
|
||||
#define MALI_IOC_GET_USER_SETTINGS _IOWR(MALI_IOC_CORE_BASE, _MALI_UK_GET_USER_SETTINGS, _mali_uk_get_user_settings_s)
|
||||
@@ -79,7 +81,10 @@ extern "C" {
|
||||
|
||||
#define MALI_IOC_VSYNC_EVENT_REPORT _IOW (MALI_IOC_VSYNC_BASE, _MALI_UK_VSYNC_EVENT_REPORT, _mali_uk_vsync_event_report_s)
|
||||
|
||||
/* rk_ext : 对 r5p0 集成之后, mali_so 不再使用下面的 ioctl, 而使用 MALI_IOC_GET_RK_KO_VERSION. */
|
||||
#if 0
|
||||
#define MALI_IOC_GET_MALI_VERSION_IN_RK30 _IOWR(MALI_IOC_CORE_BASE,_MALI_UK_GET_MALI_VERSION_IN_RK30,_mali_uk_get_mali_version_in_rk30_s *)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -81,8 +81,8 @@ typedef enum {
|
||||
_MALI_UK_TIMELINE_CREATE_SYNC_FENCE, /**< _mali_ukk_timeline_create_sync_fence() */
|
||||
_MALI_UK_SOFT_JOB_START, /**< _mali_ukk_soft_job_start() */
|
||||
_MALI_UK_SOFT_JOB_SIGNAL, /**< _mali_ukk_soft_job_signal() */
|
||||
_MALI_GET_RK_KO_VERSION, /* rk_ext */
|
||||
_MALI_UK_GET_MALI_VERSION_IN_RK30,
|
||||
|
||||
/** Memory functions */
|
||||
|
||||
_MALI_UK_INIT_MEM = 0, /**< _mali_ukk_init_mem() */
|
||||
@@ -685,6 +685,11 @@ typedef struct
|
||||
_mali_uk_api_version version; /**< [in,out] API version of user-side interface. */
|
||||
} _mali_uk_get_mali_version_in_rk30_s;
|
||||
|
||||
/* rk_ext : rk_ko_ver_t. */
|
||||
typedef struct {
|
||||
u64 ctx; /**< [in,out] user-kernel context (trashed on output) */
|
||||
_mali_uk_api_version version; /**< [in,out] API version of user-side interface. */
|
||||
} _mali_rk_ko_version_s;
|
||||
/** @} */ /* end group _mali_uk_getapiversion_s */
|
||||
|
||||
/** @defgroup _mali_uk_get_user_settings_s Get user space settings */
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
* Implementation of the Linux device driver entrypoints
|
||||
*/
|
||||
#include "../platform/rk30/custom_log.h"
|
||||
#include "../platform/rk30/rk_ext.h"
|
||||
|
||||
#include <linux/module.h> /* kernel module definitions */
|
||||
#include <linux/fs.h> /* file system operations */
|
||||
@@ -366,9 +367,6 @@ void mali_init_cpu_time_counters_on_all_cpus(int print_only)
|
||||
}
|
||||
#endif
|
||||
|
||||
/** rk_ext : version of rk_ext on mali_ko, aka. rk_ko_ver. */
|
||||
#define ROCKCHIP_VERSION (1)
|
||||
|
||||
int mali_module_init(void)
|
||||
{
|
||||
int err = 0;
|
||||
@@ -379,7 +377,7 @@ int mali_module_init(void)
|
||||
|
||||
I("arm_release_ver of this mali_ko is '%s', rk_ko_ver is '%d', built at '%s', on '%s'.",
|
||||
SVN_REV_STRING,
|
||||
ROCKCHIP_VERSION,
|
||||
RK_KO_VER,
|
||||
__TIME__,
|
||||
__DATE__);
|
||||
|
||||
@@ -762,10 +760,17 @@ static int mali_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
|
||||
err = post_notification_wrapper(session_data, (_mali_uk_post_notification_s __user *)arg);
|
||||
break;
|
||||
|
||||
/* rk_ext : 从对 r5p0-01rel0 集成开始, 不再使用. */
|
||||
#if 0
|
||||
case MALI_IOC_GET_MALI_VERSION_IN_RK30:
|
||||
err = get_mali_version_in_rk30_wrapper(session_data, (_mali_uk_get_mali_version_in_rk30_s __user *)arg);
|
||||
break;
|
||||
|
||||
#else
|
||||
case MALI_IOC_GET_RK_KO_VERSION:
|
||||
err = get_rk_ko_version_wrapper(session_data, (_mali_rk_ko_version_s __user *)arg);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MALI_IOC_GET_USER_SETTINGS:
|
||||
BUILD_BUG_ON(!IS_ALIGNED(sizeof(_mali_uk_get_user_settings_s), sizeof(u64)));
|
||||
err = get_user_settings_wrapper(session_data, (_mali_uk_get_user_settings_s __user *)arg);
|
||||
|
||||
@@ -55,6 +55,8 @@ int get_api_version_v2_wrapper(struct mali_session_data *session_data, _mali_uk_
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* rk_ext : 从对 r5p0-01rel0 集成开始, 不再使用. */
|
||||
#if 0
|
||||
#define mali400_in_rk30_version 0x01
|
||||
int get_mali_version_in_rk30_wrapper(struct mali_session_data *session_data, _mali_uk_get_mali_version_in_rk30_s __user *uargs)
|
||||
{
|
||||
@@ -65,6 +67,18 @@ int get_mali_version_in_rk30_wrapper(struct mali_session_data *session_data, _ma
|
||||
if (0 != put_user(kargs.version, &uargs->version)) return -EFAULT;
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#include "../platform/rk30/rk_ext.h"
|
||||
int get_rk_ko_version_wrapper(struct mali_session_data *session_data, _mali_rk_ko_version_s __user *uargs)
|
||||
{
|
||||
_mali_rk_ko_version_s kargs;
|
||||
MALI_CHECK_NON_NULL(uargs, -EINVAL);
|
||||
kargs.ctx = (uintptr_t)session_data;
|
||||
kargs.version = RK_KO_VER;
|
||||
if (0 != put_user(kargs.version, &uargs->version)) return -EFAULT;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int wait_for_notification_wrapper(struct mali_session_data *session_data, _mali_uk_wait_for_notification_s __user *uargs)
|
||||
{
|
||||
|
||||
@@ -29,7 +29,13 @@ int get_api_version_v2_wrapper(struct mali_session_data *session_data, _mali_uk_
|
||||
int get_user_settings_wrapper(struct mali_session_data *session_data, _mali_uk_get_user_settings_s __user *uargs);
|
||||
int post_notification_wrapper(struct mali_session_data *session_data, _mali_uk_post_notification_s __user *uargs);
|
||||
int request_high_priority_wrapper(struct mali_session_data *session_data, _mali_uk_request_high_priority_s __user *uargs);
|
||||
|
||||
/* rk_ext : 从对 r5p0-01rel0 集成开始, 不再使用. */
|
||||
#if 0
|
||||
int get_mali_version_in_rk30_wrapper(struct mali_session_data *session_data, _mali_uk_get_mali_version_in_rk30_s __user *uargs);
|
||||
#else
|
||||
int get_rk_ko_version_wrapper(struct mali_session_data *session_data, _mali_rk_ko_version_s __user *uargs);
|
||||
#endif
|
||||
|
||||
int mem_write_safe_wrapper(struct mali_session_data *session_data, _mali_uk_mem_write_safe_s __user *uargs);
|
||||
int mem_map_ext_wrapper(struct mali_session_data *session_data, _mali_uk_map_external_mem_s __user *argument);
|
||||
|
||||
61
drivers/gpu/arm/mali400/mali/platform/rk30/rk_ext.h
Executable file
61
drivers/gpu/arm/mali400/mali/platform/rk30/rk_ext.h
Executable file
@@ -0,0 +1,61 @@
|
||||
/* --------------------------------------------------------------------------------------------------------
|
||||
* File: rk_ext.h
|
||||
*
|
||||
* Desc: rk_ext_on_mali_ko 中的 通行定义等.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* Note:
|
||||
*
|
||||
* Author: ChenZhen
|
||||
*
|
||||
* Log:
|
||||
*
|
||||
* --------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __RK_EXT_H__
|
||||
#define __RK_EXT_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------------
|
||||
* Include Files
|
||||
* ---------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------------
|
||||
* Macros Definition
|
||||
* ---------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/** version of rk_ext on mali_ko, aka. rk_ko_ver. */
|
||||
#define RK_KO_VER (2)
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------------
|
||||
* Types and Structures Definition
|
||||
* ---------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------------
|
||||
* Global Functions' Prototype
|
||||
* ---------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------------
|
||||
* Inline Functions Implementation
|
||||
* ---------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __RK_EXT_H__ */
|
||||
|
||||
Reference in New Issue
Block a user