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

Commit 706a1e5e authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: mdss: Advertize hdr support on msm8996"

parents 020cdfae 7e15a00b
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
@@ -326,6 +326,28 @@ Optional properties:
					2A/2B command.
					2A/2B command.
- qcom,dcs-cmd-by-left:			Boolean to indicate that dcs command are sent
- qcom,dcs-cmd-by-left:			Boolean to indicate that dcs command are sent
					through the left DSI controller only in a dual-dsi configuration
					through the left DSI controller only in a dual-dsi configuration
- qcom,mdss-dsi-panel-hdr-enabled:	Boolean to indicate HDR support in panel.
- qcom,mdss-dsi-panel-hdr-color-primaries:
					Array of 8 unsigned integers denoting chromaticity of panel.These
					values are specified in nits units. The value range is 0 through 50000.
					To obtain real chromacity, these values should be divided by factor of
					50000. The structure of array is defined in below order
						value 1: x value of white chromaticity of display panel
						value 2: y value of white chromaticity of display panel
						value 3: x value of red chromaticity of display panel
						value 4: y value of red chromaticity of display panel
						value 5: x value of green chromaticity of display panel
						value 6: y value of green chromaticity of display panel
						value 7: x value of blue chromaticity of display panel
						value 8: y value of blue chromaticity of display panel
- qcom,mdss-dsi-panel-peak-brightness:	Maximum brightness supported by panel.In absence of maximum value
					typical value becomes peak brightness. Value is specified in nits units.
					To obtail real peak brightness, this value should be divided by factor of
					10000.
- qcom,mdss-dsi-panel-blackness-level:	Blackness level supported by panel. Blackness level is defined as
					ratio of peak brightness to contrast. Value is specified in nits units.
					To obtail real blackness level, this value should be divided by factor of
					10000.
- qcom,mdss-dsi-lp11-init:		Boolean used to enable the DSI clocks and data lanes (low power 11)
- qcom,mdss-dsi-lp11-init:		Boolean used to enable the DSI clocks and data lanes (low power 11)
					before issuing hardware reset line.
					before issuing hardware reset line.
- qcom,mdss-dsi-init-delay-us:		Delay in microseconds(us) before performing any DSI activity in lp11
- qcom,mdss-dsi-init-delay-us:		Delay in microseconds(us) before performing any DSI activity in lp11
+6 −2
Original line number Original line Diff line number Diff line
/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * it under the terms of the GNU General Public License version 2 and
@@ -64,7 +64,11 @@
		qcom,mdss-dsi-panel-status-check-mode = "bta_check";
		qcom,mdss-dsi-panel-status-check-mode = "bta_check";
		qcom,mdss-dsi-tx-eot-append;
		qcom,mdss-dsi-tx-eot-append;
		qcom,esd-check-enabled;
		qcom,esd-check-enabled;

		qcom,mdss-dsi-panel-hdr-enabled;
		qcom,mdss-dsi-panel-hdr-color-primaries = <14880 15935 32435
			16555 14945 30910 7790 3415>;
		qcom,mdss-dsi-panel-peak-brightness = <5643000>;
		qcom,mdss-dsi-panel-blackness-level = <6134>;
		qcom,config-select = <&dsi_dual_sharp_video_config0>;
		qcom,config-select = <&dsi_dual_sharp_video_config0>;


		dsi_dual_sharp_video_config0: config0 {
		dsi_dual_sharp_video_config0: config0 {
+1 −0
Original line number Original line Diff line number Diff line
@@ -161,6 +161,7 @@ enum mdss_hw_quirk {
	MDSS_QUIRK_FMT_PACK_PATTERN,
	MDSS_QUIRK_FMT_PACK_PATTERN,
	MDSS_QUIRK_NEED_SECURE_MAP,
	MDSS_QUIRK_NEED_SECURE_MAP,
	MDSS_QUIRK_SRC_SPLIT_ALWAYS,
	MDSS_QUIRK_SRC_SPLIT_ALWAYS,
	MDSS_QUIRK_HDR_SUPPORT_ENABLED,
	MDSS_QUIRK_MAX,
	MDSS_QUIRK_MAX,
};
};


+55 −0
Original line number Original line Diff line number Diff line
@@ -1115,6 +1115,58 @@ void mdss_dsi_panel_dsc_pps_send(struct mdss_dsi_ctrl_pdata *ctrl,
	mdss_dsi_panel_cmds_send(ctrl, &pcmds, CMD_REQ_COMMIT);
	mdss_dsi_panel_cmds_send(ctrl, &pcmds, CMD_REQ_COMMIT);
}
}


static int mdss_dsi_parse_hdr_settings(struct device_node *np,
		struct mdss_panel_info *pinfo)
{
	int rc = 0;
	struct mdss_panel_hdr_properties *hdr_prop;

	if (!np) {
		pr_err("%s: device node pointer is NULL\n", __func__);
		return -EINVAL;
	}

	if (!pinfo) {
		pr_err("%s: panel info is NULL\n", __func__);
		return -EINVAL;
	}

	hdr_prop = &pinfo->hdr_properties;
	hdr_prop->hdr_enabled = of_property_read_bool(np,
		"qcom,mdss-dsi-panel-hdr-enabled");

	if (hdr_prop->hdr_enabled) {
		rc = of_property_read_u32_array(np,
				"qcom,mdss-dsi-panel-hdr-color-primaries",
				hdr_prop->display_primaries,
				DISPLAY_PRIMARIES_COUNT);
		if (rc) {
			pr_info("%s:%d, Unable to read color primaries,rc:%u",
					__func__, __LINE__,
					hdr_prop->hdr_enabled = false);
		}

		rc = of_property_read_u32(np,
			"qcom,mdss-dsi-panel-peak-brightness",
			&(hdr_prop->peak_brightness));
		if (rc) {
			pr_info("%s:%d, Unable to read hdr brightness, rc:%u",
				__func__, __LINE__, rc);
			hdr_prop->hdr_enabled = false;
		}

		rc = of_property_read_u32(np,
			"qcom,mdss-dsi-panel-blackness-level",
			&(hdr_prop->blackness_level));
		if (rc) {
			pr_info("%s:%d, Unable to read hdr brightness, rc:%u",
				__func__, __LINE__, rc);
			hdr_prop->hdr_enabled = false;
		}
	}
	return 0;
}

static int mdss_dsi_parse_dsc_version(struct device_node *np,
static int mdss_dsi_parse_dsc_version(struct device_node *np,
		struct mdss_panel_timing *timing)
		struct mdss_panel_timing *timing)
{
{
@@ -2460,6 +2512,9 @@ static int mdss_panel_parse_dt(struct device_node *np,
		"qcom,mdss-dsi-lane-3-state");
		"qcom,mdss-dsi-lane-3-state");


	rc = mdss_panel_parse_display_timings(np, &ctrl_pdata->panel_data);
	rc = mdss_panel_parse_display_timings(np, &ctrl_pdata->panel_data);
	if (rc)
		return rc;
	rc = mdss_dsi_parse_hdr_settings(np, pinfo);
	if (rc)
	if (rc)
		return rc;
		return rc;


+19 −2
Original line number Original line Diff line number Diff line
@@ -572,7 +572,13 @@ static ssize_t mdss_fb_get_panel_info(struct device *dev,
			"min_w=%d\nmin_h=%d\nroi_merge=%d\ndyn_fps_en=%d\n"
			"min_w=%d\nmin_h=%d\nroi_merge=%d\ndyn_fps_en=%d\n"
			"min_fps=%d\nmax_fps=%d\npanel_name=%s\n"
			"min_fps=%d\nmax_fps=%d\npanel_name=%s\n"
			"primary_panel=%d\nis_pluggable=%d\ndisplay_id=%s\n"
			"primary_panel=%d\nis_pluggable=%d\ndisplay_id=%s\n"
			"is_cec_supported=%d\nis_pingpong_split=%d\n",
			"is_cec_supported=%d\nis_pingpong_split=%d\n"
			"is_hdr_enabled=%d\n"
			"peak_brightness=%d\nblackness_level=%d\n"
			"white_chromaticity_x=%d\nwhite_chromaticity_y=%d\n"
			"red_chromaticity_x=%d\nred_chromaticity_y=%d\n"
			"green_chromaticity_x=%d\ngreen_chromaticity_y=%d\n"
			"blue_chromaticity_x=%d\nblue_chromaticity_y=%d\n",
			pinfo->partial_update_enabled,
			pinfo->partial_update_enabled,
			pinfo->roi_alignment.xstart_pix_align,
			pinfo->roi_alignment.xstart_pix_align,
			pinfo->roi_alignment.width_pix_align,
			pinfo->roi_alignment.width_pix_align,
@@ -584,7 +590,18 @@ static ssize_t mdss_fb_get_panel_info(struct device *dev,
			pinfo->dynamic_fps, pinfo->min_fps, pinfo->max_fps,
			pinfo->dynamic_fps, pinfo->min_fps, pinfo->max_fps,
			pinfo->panel_name, pinfo->is_prim_panel,
			pinfo->panel_name, pinfo->is_prim_panel,
			pinfo->is_pluggable, pinfo->display_id,
			pinfo->is_pluggable, pinfo->display_id,
			pinfo->is_cec_supported, is_pingpong_split(mfd));
			pinfo->is_cec_supported, is_pingpong_split(mfd),
			pinfo->hdr_properties.hdr_enabled,
			pinfo->hdr_properties.peak_brightness,
			pinfo->hdr_properties.blackness_level,
			pinfo->hdr_properties.display_primaries[0],
			pinfo->hdr_properties.display_primaries[1],
			pinfo->hdr_properties.display_primaries[2],
			pinfo->hdr_properties.display_primaries[3],
			pinfo->hdr_properties.display_primaries[4],
			pinfo->hdr_properties.display_primaries[5],
			pinfo->hdr_properties.display_primaries[6],
			pinfo->hdr_properties.display_primaries[7]);


	return ret;
	return ret;
}
}
Loading