diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 3b710db45dc5..255ce9e0cca5 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -3341,7 +3341,7 @@ static ssize_t dsi_host_transfer(struct mipi_dsi_host *host, rc = dsi_ctrl_cmd_transfer(display->ctrl[ctrl_idx].ctrl, msg, &cmd_flags); - if (rc) { + if (rc < 0) { DSI_ERR("[%s] cmd transfer failed, rc=%d\n", display->name, rc); goto error_disable_cmd_engine; diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index cdfeb88e6873..b98447056ce3 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -379,7 +379,7 @@ static int dsi_panel_power_off(struct dsi_panel *panel) { int rc = 0; - if (panel->is_twm_en) { + if (panel->is_twm_en || panel->skip_panel_off) { DSI_DEBUG("TWM Enabled, skip panel power off\n"); return rc; } @@ -2085,6 +2085,9 @@ static int dsi_panel_parse_misc_features(struct dsi_panel *panel) panel->reset_gpio_always_on = utils->read_bool(utils->data, "qcom,platform-reset-gpio-always-on"); + panel->skip_panel_off = utils->read_bool(utils->data, + "qcom,skip-panel-power-off"); + panel->spr_info.enable = false; panel->spr_info.pack_type = MSM_DISPLAY_SPR_TYPE_MAX; diff --git a/msm/dsi/dsi_panel.h b/msm/dsi/dsi_panel.h index f3902274930b..3fc6baf9fd13 100644 --- a/msm/dsi/dsi_panel.h +++ b/msm/dsi/dsi_panel.h @@ -245,6 +245,7 @@ struct dsi_panel { atomic_t esd_recovery_pending; bool is_twm_en; + bool skip_panel_off; bool panel_initialized; bool te_using_watchdog_timer; struct dsi_qsync_capabilities qsync_caps; diff --git a/msm/dsi/dsi_pwr.c b/msm/dsi/dsi_pwr.c index 44bb745ad275..4dee0409d87c 100644 --- a/msm/dsi/dsi_pwr.c +++ b/msm/dsi/dsi_pwr.c @@ -68,7 +68,6 @@ static int dsi_pwr_parse_supply_node(struct dsi_parser_utils *utils, rc = utils->read_u32(node, "qcom,supply-ulp-load", &tmp); if (rc) { DSI_DEBUG("ulp-load not specified\n"); - rc = 0; } regs->vregs[i].ulp_load = (!rc ? tmp : regs->vregs[i].enable_load); diff --git a/msm/sde_dbg.c b/msm/sde_dbg.c index 4d6a5e22d813..ffa3ae346e18 100644 --- a/msm/sde_dbg.c +++ b/msm/sde_dbg.c @@ -999,8 +999,10 @@ static void _sde_dbg_dump_sde_dbg_bus(struct sde_dbg_sde_debug_bus *bus) bus->cmn.content_size = list_size / sizeof(u32); } +#ifdef CONFIG_QCOM_VA_MINIDUMP if (sde_mini_dump_add_region(bus->cmn.name, list_size, *dump_mem) < 0) pr_err("minidump add %s failed\n", bus->cmn.name); +#endif dump_addr = *dump_mem; SDE_DBG_LOG_DUMP_ADDR(bus->cmn.name, dump_addr, list_size, 0); @@ -1047,8 +1049,10 @@ static void _sde_dbg_dump_dsi_dbg_bus(struct sde_dbg_sde_debug_bus *bus) bus->cmn.content_size = list_size / sizeof(u32); } +#ifdef CONFIG_QCOM_VA_MINIDUMP if (sde_mini_dump_add_region(bus->cmn.name, list_size, *dump_mem) < 0) pr_err("minidump add %s failed\n", bus->cmn.name); +#endif dump_addr = *dump_mem; @@ -1098,10 +1102,12 @@ static void _sde_dump_array(struct sde_dbg_reg_base *blk_arr[], pr_err("Failed to allocate memory for reg_dump_addr size:%d\n", reg_dump_size); +#ifdef CONFIG_QCOM_VA_MINIDUMP if (dbg_base->reg_dump_addr && sde_mini_dump_add_region("reg_dump", reg_dump_size, dbg_base->reg_dump_addr) < 0) pr_err("minidump add regdump failed\n"); +#endif if (dump_all) sde_evtlog_dump_all(sde_dbg_base.evtlog); diff --git a/msm/sde_dbg_evtlog.c b/msm/sde_dbg_evtlog.c index 59c8440e413d..f62aaf4ad151 100644 --- a/msm/sde_dbg_evtlog.c +++ b/msm/sde_dbg_evtlog.c @@ -220,7 +220,7 @@ struct sde_dbg_evtlog *sde_evtlog_init(void) { struct sde_dbg_evtlog *evtlog; - evtlog = vzalloc(sizeof(*evtlog)); + evtlog = kzalloc(sizeof(*evtlog), GFP_KERNEL); if (!evtlog) return ERR_PTR(-ENOMEM); @@ -240,7 +240,7 @@ struct sde_dbg_reglog *sde_reglog_init(void) { struct sde_dbg_reglog *reglog; - reglog = vzalloc(sizeof(*reglog)); + reglog = kzalloc(sizeof(*reglog), GFP_KERNEL); if (!reglog) return ERR_PTR(-ENOMEM); @@ -351,7 +351,7 @@ void sde_evtlog_destroy(struct sde_dbg_evtlog *evtlog) list_del(&filter_node->list); kfree(filter_node); } - vfree(evtlog); + kfree(evtlog); } void sde_reglog_destroy(struct sde_dbg_reglog *reglog) @@ -359,5 +359,5 @@ void sde_reglog_destroy(struct sde_dbg_reglog *reglog) if (!reglog) return; - vfree(reglog); + kfree(reglog); }