Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36c1a831 authored by Xuguang Yang's avatar Xuguang Yang Committed by Daniel Jacob Chittoor
Browse files

[FP4-306] iris pt lightup, set iris abyp when power off charging

parent 57ba177a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -8103,9 +8103,6 @@ int dsi_display_enable(struct dsi_display *display)
	if (display->is_cont_splash_enabled) {

		dsi_display_config_ctrl_for_cont_splash(display);
#if defined(CONFIG_PXLW_IRIS)
		//iris_send_cont_splash(IRIS_CONT_SPLASH_KERNEL);
#endif
		rc = dsi_display_splash_res_cleanup(display);
		if (rc) {
			DSI_ERR("Continuous splash res cleanup failed, rc=%d\n",
@@ -8114,6 +8111,9 @@ int dsi_display_enable(struct dsi_display *display)
		}

		display->panel->panel_initialized = true;
#if defined(CONFIG_PXLW_IRIS)
    iris_send_cont_splash(IRIS_CONT_SPLASH_VIDEO_BYPASS);
#endif
		DSI_DEBUG("cont splash enabled, display enable not required\n");
		return 0;
	}
+28 −10
Original line number Diff line number Diff line
@@ -1795,7 +1795,7 @@ int iris_parse_param(struct device_node *np, struct dsi_panel *panel)

	pcfg->dsirecover_check_method = CHECK_WRITE_AND_READ; //CHECK_WRITE_AND_READ;
	pcfg->dsirecover_check_path = PATH_I2C; //PATH_I2C;
	pcfg->pq_update_is_dsi_hs = 1;
	pcfg->pq_update_is_dsi_hs = 0; //1;

	rc = _iris_parse_color_temp_range(lightup_node, pcfg);
	if (rc) {
@@ -1964,7 +1964,14 @@ int iris_parse_param(struct device_node *np, struct dsi_panel *panel)

	INIT_WORK(&pcfg->cont_splash_work, __iris_cont_splash_work_handler);

  if (strnstr(saved_command_line, "androidboot.mode=", strlen(saved_command_line)) != NULL) {
          IRIS_LOGI("%s(%d), saved_command_line: %s", __func__, __LINE__, saved_command_line);
          pcfg->iris_isolate_status = 1;
	pcfg->valid = PARAM_NONE;
  } else {
          pcfg->iris_isolate_status = 0;
	pcfg->valid = PARAM_PARSED;
  }
	IRIS_LOGI("%s(%d), exit.", __func__, __LINE__);

	return 0;
@@ -3071,6 +3078,9 @@ int iris_lightup(struct dsi_panel *panel, struct dsi_panel_cmd_set *on_cmds)
		iris_get_abyp_mode_blocking() == IRIS_PT_MODE ? "PT" : "ABYP",
		pcfg->cur_timing);

 if (pcfg->iris_isolate_status == 1) {
    return rc;
 }
	ktime0 = ktime_get();
	iris_set_pinctrl_state(true);
	_iris_pre_lightup(panel);
@@ -3196,6 +3206,8 @@ int iris_enable(struct dsi_panel *panel, struct dsi_panel_cmd_set *on_cmds)

int iris_disable(struct dsi_panel *panel, struct dsi_panel_cmd_set *off_cmds)
{
	struct iris_cfg *pcfg = iris_get_cfg();
	pcfg->pq_update_is_dsi_hs = 1;
	return iris_lightoff(panel, off_cmds);
}

@@ -3406,6 +3418,12 @@ void iris_send_cont_splash(uint32_t type)
	if (iris_get_abyp_mode_blocking() == IRIS_ABYP_MODE)
		return;

  if (pcfg->iris_isolate_status == 1) {
    pcfg->dsirecover_check_method = CHECK_NONE;
    pcfg->lp_ctrl.esd_ctrl = 0;
    return;
  }

	mutex_lock(&pcfg->panel->panel_lock);
	_iris_send_cont_splash_pkt(type);
	pcfg->valid = FULL_LIGHTUP;
+1 −0
Original line number Diff line number Diff line
@@ -212,6 +212,7 @@ struct iris_cfg {
	bool dport_is_disable;
	uint32_t frame_kickoff_count[3]; /*0: kick count, 1: dport kick off count, 2: esd kick off count*/
	uint8_t cont_splash_status;
  uint8_t iris_isolate_status; /* will isolate iris when in recovery/power off charging/... modes*/
};

struct iris_data {
+4 −0
Original line number Diff line number Diff line
@@ -109,6 +109,10 @@ static int32_t _iris_request_firmware(const struct firmware **fw,
		return -EINVAL;
	}
 
  if (pcfg->iris_isolate_status == 1) {
    return -EINVAL;
  }

	rc = request_firmware(fw, name, dev);
	if (rc) {
		IRIS_LOGE("%s(), failed to request firmware: %s, rc: %d",