unplugged-kernel/drivers/misc/mediatek/ext_disp/mt6785/extd_utils.c

212 lines
4.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#include <linux/semaphore.h>
#include <linux/mutex.h>
#include <linux/time.h>
#include <linux/delay.h>
#include "extd_utils.h"
#include "extd_log.h"
static DEFINE_SEMAPHORE(extd_mutex);
int extd_mutex_init(struct mutex *m)
{
EXT_DISP_LOG("mutex init:\n");
return 0;
mutex_init(m);
return 0;
}
int extd_sw_mutex_lock(struct mutex *m)
{
if (down_interruptible(&extd_mutex)) {
pr_debug("DISP/ Can't get semaphore in %s()\n", __func__);
return -1;
}
return 0;
}
int extd_mutex_trylock(struct mutex *m)
{
int ret = 0;
/* ret = mutex_trylock(m); */
EXT_DISP_LOG("mutex: trylock\n");
return ret;
}
int extd_sw_mutex_unlock(struct mutex *m)
{
/* mutex_unlock(m); */
up(&extd_mutex);
/* EXT_DISP_LOG("mutex: unlock\n"); */
return 0;
}
int extd_msleep(unsigned int ms)
{
EXT_DISP_LOG("sleep %dms\n", ms);
msleep(ms);
return 0;
}
long int extd_get_time_us(void)
{
struct timeval t;
do_gettimeofday(&t);
return (t.tv_sec & 0xFFF) * 1000000 + t.tv_usec;
}
char *_extd_ioctl_spy(unsigned int cmd)
{
switch (cmd) {
case MTK_HDMI_AUDIO_VIDEO_ENABLE:
return "MTK_HDMI_AUDIO_VIDEO_ENABLE";
case MTK_HDMI_AUDIO_ENABLE:
return "MTK_HDMI_AUDIO_ENABLE";
case MTK_HDMI_VIDEO_ENABLE:
return "MTK_HDMI_VIDEO_ENABLE";
case MTK_HDMI_GET_CAPABILITY:
return "MTK_HDMI_GET_CAPABILITY";
case MTK_HDMI_GET_DEVICE_STATUS:
return "MTK_HDMI_GET_DEVICE_STATUS";
case MTK_HDMI_VIDEO_CONFIG:
return "MTK_HDMI_VIDEO_CONFIG";
case MTK_HDMI_AUDIO_CONFIG:
return "MTK_HDMI_AUDIO_CONFIG";
case MTK_HDMI_FORCE_FULLSCREEN_ON:
return "MTK_HDMI_FORCE_FULLSCREEN_ON";
case MTK_HDMI_FORCE_FULLSCREEN_OFF:
return "MTK_HDMI_FORCE_FULLSCREEN_OFF";
case MTK_HDMI_IPO_POWEROFF:
return "MTK_HDMI_IPO_POWEROFF";
case MTK_HDMI_IPO_POWERON:
return "MTK_HDMI_IPO_POWERON";
case MTK_HDMI_POWER_ENABLE:
return "MTK_HDMI_POWER_ENABLE";
case MTK_HDMI_PORTRAIT_ENABLE:
return "MTK_HDMI_PORTRAIT_ENABLE";
case MTK_HDMI_FORCE_OPEN:
return "MTK_HDMI_FORCE_OPEN";
case MTK_HDMI_FORCE_CLOSE:
return "MTK_HDMI_FORCE_CLOSE";
case MTK_HDMI_IS_FORCE_AWAKE:
return "MTK_HDMI_IS_FORCE_AWAKE";
case MTK_HDMI_POST_VIDEO_BUFFER:
return "MTK_HDMI_POST_VIDEO_BUFFER";
case MTK_HDMI_FACTORY_MODE_ENABLE:
return "MTK_HDMI_FACTORY_MODE_ENABLE";
case MTK_HDMI_WRITE_DEV:
return "MTK_HDMI_WRITE_DEV";
case MTK_HDMI_READ_DEV:
return "MTK_HDMI_READ_DEV";
case MTK_HDMI_ENABLE_LOG:
return "MTK_HDMI_ENABLE_LOG";
case MTK_HDMI_CHECK_EDID:
return "MTK_HDMI_CHECK_EDID";
case MTK_HDMI_INFOFRAME_SETTING:
return "MTK_HDMI_INFOFRAME_SETTING";
case MTK_HDMI_ENABLE_HDCP:
return "MTK_HDMI_ENABLE_HDCP";
case MTK_HDMI_STATUS:
return "MTK_HDMI_STATUS";
case MTK_HDMI_HDCP_KEY:
return "MTK_HDMI_HDCP_KEY";
case MTK_HDMI_GET_EDID:
return "MTK_HDMI_GET_EDID";
case MTK_HDMI_SETLA:
return "MTK_HDMI_SETLA";
case MTK_HDMI_GET_CECCMD:
return "MTK_HDMI_GET_CECCMD";
case MTK_HDMI_SET_CECCMD:
return "MTK_HDMI_SET_CECCMD";
case MTK_HDMI_CEC_ENABLE:
return "MTK_HDMI_CEC_ENABLE";
case MTK_HDMI_GET_CECADDR:
return "MTK_HDMI_GET_CECADDR";
case MTK_HDMI_CECRX_MODE:
return "MTK_HDMI_CECRX_MODE";
case MTK_HDMI_SENDSLTDATA:
return "MTK_HDMI_SENDSLTDATA";
case MTK_HDMI_GET_SLTDATA:
return "MTK_HDMI_GET_SLTDATA";
case MTK_HDMI_COLOR_DEEP:
return "MTK_HDMI_COLOR_DEEP";
case MTK_HDMI_GET_DEV_INFO:
return "MTK_HDMI_GET_DEV_INFO";
case MTK_HDMI_PREPARE_BUFFER:
return "MTK_HDMI_PREPARE_BUFFER";
case MTK_HDMI_FACTORY_GET_STATUS:
return "MTK_HDMI_FACTORY_GET_STATUS";
case MTK_HDMI_FACTORY_DPI_TEST:
return "MTK_HDMI_FACTORY_DPI_TEST";
case MTK_HDMI_SCREEN_CAPTURE:
return "MTK_HDMI_SCREEN_CAPTURE";
case MTK_HDMI_FACTORY_CHIP_INIT:
return "MTK_HDMI_FACTORY_CHIP_INIT";
case MTK_HDMI_FACTORY_JUDGE_CALLBACK:
return "MTK_HDMI_FACTORY_JUDGE_CALLBACK";
case MTK_HDMI_FACTORY_START_DPI_AND_CONFIG:
return "MTK_HDMI_FACTORY_START_DPI_AND_CONFIG";
case MTK_HDMI_FACTORY_DPI_STOP_AND_POWER_OFF:
return "MTK_HDMI_FACTORY_DPI_STOP_AND_POWER_OFF";
case MTK_HDMI_AUDIO_SETTING:
return "MTK_HDMI_AUDIO_SETTING";
default:
return "unknown ioctl command";
}
}