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: Padmanabhan Komanduru <pkomandu@codeaurora.org> Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
This commit is contained in:
parent
3c115aaa2f
commit
d84d76e2e3
4 changed files with 9 additions and 1 deletions
|
@ -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>;
|
||||
|
|
|
@ -3166,6 +3166,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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1178,7 +1178,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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue