kernel_samsung_a34x-permissive/drivers/gpu/drm/mediatek/mtk_drm_arr.h

77 lines
2.2 KiB
C
Raw Normal View History

/* 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