Merge "disp: msm: dsi: skip panel read for simulation panels"

This commit is contained in:
qctecmdr
2021-05-16 21:28:57 -07:00
committed by Gerrit - the friendly Code Review server

View File

@@ -63,6 +63,14 @@ bool is_skip_op_required(struct dsi_display *display)
return (display->is_cont_splash_enabled || display->trusted_vm_env); return (display->is_cont_splash_enabled || display->trusted_vm_env);
} }
static bool is_sim_panel(struct dsi_display *display)
{
if (!display || !display->panel)
return false;
return display->panel->te_using_watchdog_timer;
}
static void dsi_display_mask_ctrl_error_interrupts(struct dsi_display *display, static void dsi_display_mask_ctrl_error_interrupts(struct dsi_display *display,
u32 mask, bool enable) u32 mask, bool enable)
{ {
@@ -966,9 +974,7 @@ int dsi_display_check_status(struct drm_connector *connector, void *display,
status_mode = panel->esd_config.status_mode; status_mode = panel->esd_config.status_mode;
if ((status_mode == ESD_MODE_SW_SIM_SUCCESS) || if ((status_mode == ESD_MODE_SW_SIM_SUCCESS) || is_sim_panel(display))
(dsi_display->sw_te_using_wd) ||
(dsi_display->panel->te_using_watchdog_timer))
goto release_panel_lock; goto release_panel_lock;
if (status_mode == ESD_MODE_SW_SIM_FAILURE) { if (status_mode == ESD_MODE_SW_SIM_FAILURE) {
@@ -1246,6 +1252,12 @@ int dsi_display_cmd_receive(void *display, const char *cmd_buf,
cmd.msg.flags |= MIPI_DSI_MSG_UNICAST_COMMAND; cmd.msg.flags |= MIPI_DSI_MSG_UNICAST_COMMAND;
mutex_lock(&dsi_display->display_lock); mutex_lock(&dsi_display->display_lock);
if (is_sim_panel(display)) {
DSI_DEBUG("Simulation panel doesn't support read commands\n");
goto end;
}
rc = dsi_display_ctrl_get_host_init_state(dsi_display, &state); rc = dsi_display_ctrl_get_host_init_state(dsi_display, &state);
if (rc || !state) { if (rc || !state) {
DSI_ERR("[DSI] Invalid host state = %d rc = %d\n", DSI_ERR("[DSI] Invalid host state = %d rc = %d\n",
@@ -4122,7 +4134,7 @@ error:
static bool dsi_display_validate_panel_resources(struct dsi_display *display) static bool dsi_display_validate_panel_resources(struct dsi_display *display)
{ {
if (!display->panel->te_using_watchdog_timer) { if (!is_sim_panel(display)) {
if (!gpio_is_valid(display->panel->reset_config.reset_gpio)) { if (!gpio_is_valid(display->panel->reset_config.reset_gpio)) {
DSI_ERR("invalid reset gpio for the panel\n"); DSI_ERR("invalid reset gpio for the panel\n");
return false; return false;
@@ -6633,9 +6645,7 @@ int dsi_display_get_info(struct drm_connector *connector,
info->capabilities |= MSM_DISPLAY_CAP_CMD_MODE; info->capabilities |= MSM_DISPLAY_CAP_CMD_MODE;
if (display->panel->panel_mode_switch_enabled) if (display->panel->panel_mode_switch_enabled)
info->capabilities |= MSM_DISPLAY_CAP_VID_MODE; info->capabilities |= MSM_DISPLAY_CAP_VID_MODE;
info->is_te_using_watchdog_timer = info->is_te_using_watchdog_timer = is_sim_panel(display);
display->panel->te_using_watchdog_timer |
display->sw_te_using_wd;
break; break;
default: default:
DSI_ERR("unknwown dsi panel mode %d\n", DSI_ERR("unknwown dsi panel mode %d\n",
@@ -6643,8 +6653,7 @@ int dsi_display_get_info(struct drm_connector *connector,
break; break;
} }
if (display->panel->esd_config.esd_enabled && if (display->panel->esd_config.esd_enabled && !is_sim_panel(display))
!display->sw_te_using_wd)
info->capabilities |= MSM_DISPLAY_ESD_ENABLED; info->capabilities |= MSM_DISPLAY_ESD_ENABLED;
info->te_source = display->te_source; info->te_source = display->te_source;