diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index 3f3a717b75..47699509cd 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -356,7 +356,8 @@ static int dsi_panel_power_off(struct dsi_panel *panel) if (gpio_is_valid(panel->reset_config.disp_en_gpio)) gpio_set_value(panel->reset_config.disp_en_gpio, 0); - if (gpio_is_valid(panel->reset_config.reset_gpio)) + if (gpio_is_valid(panel->reset_config.reset_gpio) && + !panel->reset_gpio_always_on) gpio_set_value(panel->reset_config.reset_gpio, 0); if (gpio_is_valid(panel->reset_config.lcd_mode_sel_gpio)) @@ -1949,6 +1950,9 @@ static int dsi_panel_parse_misc_features(struct dsi_panel *panel) panel->lp11_init = utils->read_bool(utils->data, "qcom,mdss-dsi-lp11-init"); + panel->reset_gpio_always_on = utils->read_bool(utils->data, + "qcom,platform-reset-gpio-always-on"); + panel->spr_info.enable = false; panel->spr_info.pack_type = MSM_DISPLAY_SPR_TYPE_MAX; @@ -1970,7 +1974,6 @@ static int dsi_panel_parse_misc_features(struct dsi_panel *panel) panel->spr_info.enable ? msm_spr_pack_type_str[panel->spr_info.pack_type] : "none"); - return 0; } diff --git a/msm/dsi/dsi_panel.h b/msm/dsi/dsi_panel.h index 2c88f960df..959f63519c 100644 --- a/msm/dsi/dsi_panel.h +++ b/msm/dsi/dsi_panel.h @@ -226,6 +226,7 @@ struct dsi_panel { bool ulps_feature_enabled; bool ulps_suspend_enabled; bool allow_phy_power_off; + bool reset_gpio_always_on; atomic_t esd_recovery_pending; bool panel_initialized;