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

Commit 2b244a01 authored by Siddhartha Agrawal's avatar Siddhartha Agrawal
Browse files

msm: mdss: add support to featurize NULL packet insertion



For DSI6G v1.4.0 and above, DSI controller has support to insert
NULL packets in the middle of pixel data or DMA packets to avoid
HS-LP-HS transitions. Add support to featurize this based on DT
property.

Crs-Fixed: 880973
Change-Id: I36acfe6d27a1d750a5af12c3d136df473abb4598
Signed-off-by: default avatarPadmanabhan Komanduru <pkomandu@codeaurora.org>
Signed-off-by: default avatarSiddhartha Agrawal <agrawals@codeaurora.org>
parent 88831b0a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ Optional properties:
					controller. These pin configurations are installed in the pinctrl
					device node. Refer to pinctrl-bindings.txt
- qcom,regulator-ldo-mode:		Boolean to enable ldo mode for the dsi phy regulator
- qcom,null-insertion-enabled:		Boolean to enable NULL packet insertion
					feature for DSI controller.
- qcom,dsi-irq-line:			Boolean specifies if DSI has a different irq line than mdp.
- qcom,lane-map:			Specifies the data lane swap configuration.
					"lane_map_0123" = <0 1 2 3> (default value)
@@ -222,6 +224,7 @@ Example:
			qcom,mmss-ulp-clamp-ctrl-offset = <0x20>;
			qcom,mmss-phyreset-ctrl-offset = <0x24>;
			qcom,regulator-ldo-mode;
			qcom,null-insertion-enabled;

			pinctrl-names = "mdss_default", "mdss_sleep";
			pinctrl-0 = <&mdss_dsi_active>;
+3 −0
Original line number Diff line number Diff line
@@ -3170,6 +3170,9 @@ static int mdss_dsi_parse_ctrl_params(struct platform_device *ctrl_pdev,
	struct mdss_panel_info *pinfo = &(ctrl_pdata->panel_data.panel_info);
	const char *data;

	ctrl_pdata->null_insert_enabled = of_property_read_bool(
		ctrl_pdev->dev.of_node, "qcom,null-insertion-enabled");

	data = of_get_property(ctrl_pdev->dev.of_node,
		"qcom,platform-strength-ctrl", &len);
	if (!data) {
+1 −0
Original line number Diff line number Diff line
@@ -459,6 +459,7 @@ struct mdss_dsi_ctrl_pdata {
	struct regulator *ibb; /* vreg handle */
	struct mutex clk_lane_mutex;

	bool null_insert_enabled;
	bool ulps;
	bool core_power;
	bool mmss_clamp;
+2 −1
Original line number Diff line number Diff line
@@ -1174,7 +1174,8 @@ static void mdss_dsi_mode_setup(struct mdss_panel_data *pdata)
		}

		/* DSI_COMMAND_MODE_NULL_INSERTION_CTRL */
		if (ctrl_pdata->shared_data->hw_rev >= MDSS_DSI_HW_REV_104) {
		if ((ctrl_pdata->shared_data->hw_rev >= MDSS_DSI_HW_REV_104)
			&& ctrl_pdata->null_insert_enabled) {
			data = (mipi->vc << 1); /* Virtual channel ID */
			data |= 0 << 16; /* Word count of the NULL packet */
			data |= 0x1; /* Enable Null insertion */