disp: msm: use connector properties to expose and set panel mode

Expose panel mode from kernel to SDM with SDE connector property
CONNECTOR_PROP_MODE_INFO and set panel mode from SDM to kernel
with SDE connector property CONNECTOR_PROP_SET_PANEL_MODE for
avoiding private change in upstream code in QGKI kernel.

Change-Id: I0629dad9399967cc1118ac02ce30597076ca367d
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
此提交包含在:
Lei Chen
2020-09-22 11:11:30 +08:00
父節點 53cc166889
當前提交 ab3f86f918
共有 16 個檔案被更改,包括 267 行新增185 行删除

查看文件

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/
#ifndef _DSI_DEFS_H_
@@ -59,9 +59,9 @@ enum dsi_pixel_format {
* @DSI_OP_MODE_MAX:
*/
enum dsi_op_mode {
DSI_OP_VIDEO_MODE = 0,
DSI_OP_CMD_MODE,
DSI_OP_MODE_MAX
DSI_OP_VIDEO_MODE = BIT(0),
DSI_OP_CMD_MODE = BIT(1),
DSI_OP_MODE_MAX = BIT(2),
};
/**
@@ -72,10 +72,12 @@ enum dsi_op_mode {
* @DSI_MODE_FLAG_DMS: Seamless transition is dynamic mode switch
* @DSI_MODE_FLAG_VRR: Seamless transition is DynamicFPS.
* New timing values are sent from DAL.
* @DSI_MODE_FLAG_POMS:
* Seamless transition is dynamic panel operating mode switch
* @DSI_MODE_FLAG_DYN_CLK: Seamless transition is dynamic clock change
* @DSI_MODE_FLAG_DMS_FPS: Seamless fps only transition in Dynamic Mode Switch
* @DSI_MODE_FLAG_POMS_TO_VID:
* Seamless transition is dynamic panel operating mode switch to video
* @DSI_MODE_FLAG_POMS_TO_CMD:
* Seamless transition is dynamic panel operating mode switch to cmd
*/
enum dsi_mode_flags {
DSI_MODE_FLAG_SEAMLESS = BIT(0),
@@ -83,9 +85,10 @@ enum dsi_mode_flags {
DSI_MODE_FLAG_VBLANK_PRE_MODESET = BIT(2),
DSI_MODE_FLAG_DMS = BIT(3),
DSI_MODE_FLAG_VRR = BIT(4),
DSI_MODE_FLAG_POMS = BIT(5),
DSI_MODE_FLAG_DYN_CLK = BIT(6),
DSI_MODE_FLAG_DMS_FPS = BIT(7),
DSI_MODE_FLAG_DYN_CLK = BIT(5),
DSI_MODE_FLAG_DMS_FPS = BIT(6),
DSI_MODE_FLAG_POMS_TO_VID = BIT(7),
DSI_MODE_FLAG_POMS_TO_CMD = BIT(8)
};
/**
@@ -629,7 +632,7 @@ struct dsi_display_mode_priv_info {
* @timing: Timing parameters for the panel.
* @pixel_clk_khz: Pixel clock in Khz.
* @dsi_mode_flags: Flags to signal other drm components via private flags
* @panel_mode: Panel mode
* @panel_mode_caps: panel mode capabilities.
* @is_preferred: Is mode preferred
* @priv_info: Mode private info
*/
@@ -637,7 +640,7 @@ struct dsi_display_mode {
struct dsi_mode_info timing;
u32 pixel_clk_khz;
u32 dsi_mode_flags;
enum dsi_op_mode panel_mode;
u32 panel_mode_caps;
bool is_preferred;
struct dsi_display_mode_priv_info *priv_info;
};