6db4831e98
Android 14
77 lines
2.2 KiB
C
77 lines
2.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2019 MediaTek Inc.
|
|
*/
|
|
|
|
#ifndef _MTK_DRM_ARR_H_
|
|
#define _MTK_DRM_ARR_H_
|
|
|
|
/*************************************************************************
|
|
* mtk_dsi_lfr_con records LFR Related parameters belows:
|
|
*
|
|
*[ 1- 0] lfr_mode: Low frame rate mode 0:Disable
|
|
*[ 3- 2] lfr_type: Low frame rate transmission type
|
|
*[ 4- 4] lfr_enable: Enables low frame rate
|
|
*[ 5- 5] lfr_update: Low frame rate update in dynamic mode
|
|
*[ 6- 6] lfr_vse_dis: Disables low frame rate VSE
|
|
*[ 8-13] lfr_skip_num: Low frame rate skip frame number
|
|
*
|
|
*--lfr_mode -- 0: Disable, 1:static mode, 2:Dynamic mode, 3:Both
|
|
*--lfr_type -- 0: LP mode, 1: Vsync, 2: Hsync, 3: Vsync + Hsync
|
|
*--lfr_enable -- 0: Disable, 1: Enable
|
|
*--lfr_update -- 0: No effect, 1: Update frame
|
|
*--lfr_vse_dis-- 0: Enable VSE packet, 1: Disable VSE packet
|
|
|
|
*************************************************************************/
|
|
enum LFR_MODE {
|
|
LFR_MODE_DISABLE = 0,
|
|
LFR_MODE_STATIC_MODE,
|
|
LFR_MODE_DYNAMIC_MODE,
|
|
LFR_MODE_BOTH_MODE,
|
|
LFR_MODE_NUM
|
|
};
|
|
|
|
enum LFR_TYPE {
|
|
LFR_TYPE_LP_MODE = 0,
|
|
LFR_TYPE_VSYNC_ONLY,
|
|
LFR_TYPE_HSYNC_ONLY,
|
|
LFR_TYPE_BOTH_MODE,
|
|
LFR_TYPE_NUM
|
|
};
|
|
|
|
struct mtk_dsi_lfr_con {
|
|
unsigned int lfr_mode;
|
|
unsigned int lfr_type;
|
|
unsigned int lfr_enable;
|
|
unsigned int lfr_update;
|
|
unsigned int lfr_vse_dis;
|
|
unsigned int lfr_skip_num;
|
|
unsigned int lfr_mask;
|
|
};
|
|
/*************************************************************************
|
|
* mtk_dsi_lfr_sta records LFR state and skip count:
|
|
*
|
|
*[ 5 - 0] lfr_skip_count: Low frame rate skip frame counter
|
|
*[ 8 - 8] lfr_skip_sta: Low frame rate skip frame status
|
|
|
|
*************************************************************************/
|
|
struct mtk_dsi_lfr_sta {
|
|
unsigned int lfr_skip_count;
|
|
unsigned int lfr_skip_sta;
|
|
};
|
|
|
|
/*DISP_OPT_ARR_PHASE_1
|
|
* register call back for fpsgo or other kernel modules
|
|
* who want't to monitor frame rate changing
|
|
*/
|
|
/*interface with fpsgo*/
|
|
typedef void (*FPS_CHG_CALLBACK)(unsigned int new_fps);
|
|
int drm_register_fps_chg_callback(
|
|
FPS_CHG_CALLBACK fps_chg_cb);
|
|
int drm_unregister_fps_chg_callback(
|
|
FPS_CHG_CALLBACK fps_chg_cb);
|
|
/*interface with primary_display*/
|
|
void drm_invoke_fps_chg_callbacks(unsigned int new_fps);
|
|
|
|
#endif
|