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

Commit ca87f25e authored by Rohith Palakurthi's avatar Rohith Palakurthi
Browse files

Merge remote-tracking branch 'quic/dev/msm-4.14-display' into msm-4.14



* quic/dev/msm-4.14-display:
  drm/msm/dp: check for dsc resources before enabling dsc
  ARM: dts: msm: add new backlight for secondary panel for SM8150 CDP
  drm/msm/dsi-staging: add new backlight type for secondary panel
  drm/msm/dp: remove session lock from HDCP status update
  drm/msm/dp: program mainlink levels before link training
  ARM: dts: msm: add panel jitter setting for sw43404 amoled cmd panel

Change-Id: Ia10bfd97d10ffdf5bf7f5e1bfb262b393e700d56
Signed-off-by: default avatarRohith Palakurthi <prohit@codeaurora.org>
parents ce01c38c 1d8b3d68
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -173,6 +173,14 @@ Optional properties:
					"bl_ctrl_pwm" = Backlight controlled by PWM gpio.
					"bl_ctrl_wled" = Backlight controlled by WLED.
					"bl_ctrl_dcs" = Backlight controlled by DCS commands.
					"bl_ctrl_external" = Backlight controlled by externally
					other: Unknown backlight control. (default)
- qcom,mdss-dsi-sec-bl-pmic-control-type: A string that specifies the implementation of backlight
					  control for secondary panel.
					  "bl_ctrl_pwm" = Backlight controlled by PWM gpio.
                                          "bl_ctrl_wled" = Backlight controlled by WLED.
                                          "bl_ctrl_dcs" = Backlight controlled by DCS commands.
                                          "bl_ctrl_external" = Backlight controlled by externally
                                          other: Unknown backlight control. (default)
- qcom,mdss-dsi-bl-pwm-pmi:		Boolean to indicate that PWM control is through second pmic chip.
- qcom,mdss-dsi-bl-pmic-bank-select:	LPG channel for backlight.
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@
				qcom,mdss-dsi-h-right-border = <0>;
				qcom,mdss-dsi-v-top-border = <0>;
				qcom,mdss-dsi-v-bottom-border = <0>;
				qcom,mdss-dsi-panel-jitter = <0x1 0x1>;
				qcom,mdss-dsi-panel-jitter = <0x3 0x1>;
				qcom,mdss-dsi-on-command = [
				  39 01 00 00 00 00 03 b0 a5 00
				  07 01 00 00 00 00 02 01 00
+3 −0
Original line number Diff line number Diff line
@@ -227,6 +227,7 @@
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-sec-bl-pmic-control-type = "bl_ctrl_external";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
@@ -240,6 +241,7 @@
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-sec-bl-pmic-control-type = "bl_ctrl_external";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
@@ -253,6 +255,7 @@
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-sec-bl-pmic-control-type = "bl_ctrl_external";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
+0 −27
Original line number Diff line number Diff line
@@ -346,32 +346,6 @@ static void dp_audio_setup_acr(struct dp_audio_private *audio)
	catalog->config_acr(catalog);
}

static void dp_audio_safe_to_exit_level(struct dp_audio_private *audio)
{
	struct dp_catalog_audio *catalog = audio->catalog;
	u32 safe_to_exit_level = 0;

	switch (audio->dp_audio.lane_count) {
	case 1:
		safe_to_exit_level = 14;
		break;
	case 2:
		safe_to_exit_level = 8;
		break;
	case 4:
		safe_to_exit_level = 5;
		break;
	default:
		pr_debug("setting the default safe_to_exit_level = %u\n",
				safe_to_exit_level);
		safe_to_exit_level = 14;
		break;
	}

	catalog->data = safe_to_exit_level;
	catalog->safe_to_exit_level(catalog);
}

static void dp_audio_enable(struct dp_audio_private *audio, bool enable)
{
	struct dp_catalog_audio *catalog = audio->catalog;
@@ -432,7 +406,6 @@ static int dp_audio_info_setup(struct platform_device *pdev,

	dp_audio_setup_sdp(audio);
	dp_audio_setup_acr(audio);
	dp_audio_safe_to_exit_level(audio);
	dp_audio_enable(audio, true);

	mutex_unlock(&audio->ops_lock);
+41 −26
Original line number Diff line number Diff line
@@ -727,8 +727,6 @@ static void dp_catalog_ctrl_config_ctrl(struct dp_catalog_ctrl *ctrl, u8 ln_cnt)
	dp_write(catalog->exe_mode, io_data, DP_MAINLINK_CTRL, cfg);

	pr_debug("DP_MAINLINK_CTRL=0x%x\n", cfg);

	dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, 0xa08);
}

static void dp_catalog_panel_config_ctrl(struct dp_catalog_panel *panel,
@@ -1867,6 +1865,46 @@ static void dp_catalog_ctrl_update_rg(struct dp_catalog_ctrl *ctrl, u32 ch,
	dp_write(catalog->exe_mode, io_data, DP_DP0_RG + reg_off, rg);
}

static void dp_catalog_ctrl_mainlink_levels(struct dp_catalog_ctrl *ctrl,
		u8 lane_cnt)
{
	struct dp_catalog_private *catalog;
	struct dp_io_data *io_data;
	u32 mainlink_levels, safe_to_exit_level = 14;

	catalog = dp_catalog_get_priv(ctrl);

	io_data   = catalog->io.dp_link;

	switch (lane_cnt) {
	case 1:
		safe_to_exit_level = 14;
		break;
	case 2:
		safe_to_exit_level = 8;
		break;
	case 4:
		safe_to_exit_level = 5;
		break;
	default:
		pr_debug("setting the default safe_to_exit_level = %u\n",
				safe_to_exit_level);
		break;
	}

	mainlink_levels = dp_read(catalog->exe_mode, io_data,
					DP_MAINLINK_LEVELS);
	mainlink_levels &= 0xFE0;
	mainlink_levels |= safe_to_exit_level;

	pr_debug("mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n",
			mainlink_levels, safe_to_exit_level);

	dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS,
			mainlink_levels);
}


/* panel related catalog functions */
static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel)
{
@@ -2070,29 +2108,6 @@ static void dp_catalog_audio_config_acr(struct dp_catalog_audio *audio)
	dp_write(catalog->exe_mode, io_data, MMSS_DP_AUDIO_ACR_CTRL, acr_ctrl);
}

static void dp_catalog_audio_safe_to_exit_level(struct dp_catalog_audio *audio)
{
	struct dp_catalog_private *catalog;
	struct dp_io_data *io_data;
	u32 mainlink_levels, safe_to_exit_level;

	catalog = dp_catalog_get_priv(audio);

	io_data   = catalog->io.dp_link;
	safe_to_exit_level = audio->data;

	mainlink_levels = dp_read(catalog->exe_mode, io_data,
					DP_MAINLINK_LEVELS);
	mainlink_levels &= 0xFE0;
	mainlink_levels |= safe_to_exit_level;

	pr_debug("mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n",
			mainlink_levels, safe_to_exit_level);

	dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS,
			mainlink_levels);
}

static void dp_catalog_audio_enable(struct dp_catalog_audio *audio)
{
	struct dp_catalog_private *catalog;
@@ -2417,6 +2432,7 @@ struct dp_catalog *dp_catalog_get(struct device *dev, struct dp_parser *parser)
		.update_rg = dp_catalog_ctrl_update_rg,
		.channel_dealloc = dp_catalog_ctrl_channel_dealloc,
		.fec_config = dp_catalog_ctrl_fec_config,
		.mainlink_levels = dp_catalog_ctrl_mainlink_levels,
	};
	struct dp_catalog_audio audio = {
		.init       = dp_catalog_audio_init,
@@ -2425,7 +2441,6 @@ struct dp_catalog *dp_catalog_get(struct device *dev, struct dp_parser *parser)
		.config_sdp = dp_catalog_audio_config_sdp,
		.set_header = dp_catalog_audio_set_header,
		.get_header = dp_catalog_audio_get_header,
		.safe_to_exit_level = dp_catalog_audio_safe_to_exit_level,
	};
	struct dp_catalog_panel panel = {
		.timing_cfg = dp_catalog_panel_timing_cfg,
Loading