Loading Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt +3 −0 Original line number Diff line number Diff line Loading @@ -303,6 +303,8 @@ Optional properties: - qcom,partial-update-roi-merge: Boolean indicates roi combination is need and function has been provided for dcs 2A/2B command. - qcom,dcs-cmd-by-left: Boolean to indicate that dcs command are sent through the left DSI controller only in a dual-dsi configuration - qcom,mdss-dsi-lp11-init: Boolean used to enable the DSI clocks and data lanes (low power 11) before issuing hardware reset line. - qcom,mdss-dsi-init-delay-us: Delay in microseconds(us) before performing any DSI activity in lp11 Loading Loading @@ -453,6 +455,7 @@ Example: qcom,mdss-tear-check-frame-rate = <6000>; qcom,mdss-dsi-reset-sequence = <1 2>, <0 10>, <1 10>; qcom,partial-update-enabled; qcom,dcs-cmd-by-left; qcom,mdss-dsi-lp11-init; qcom,mdss-dsi-init-delay-us = <100>; mdss-dsi-rx-eot-ignore; Loading drivers/video/msm/mdss/mdss_dsi_panel.c +10 −10 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ u32 mdss_dsi_panel_cmd_read(struct mdss_dsi_ctrl_pdata *ctrl, char cmd0, struct mdss_panel_info *pinfo; pinfo = &(ctrl->panel_data.panel_info); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) return -EINVAL; } Loading Loading @@ -142,7 +142,7 @@ static void mdss_dsi_panel_cmds_send(struct mdss_dsi_ctrl_pdata *ctrl, struct mdss_panel_info *pinfo; pinfo = &(ctrl->panel_data.panel_info); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) return; } Loading Loading @@ -174,7 +174,7 @@ static void mdss_dsi_panel_bklt_dcs(struct mdss_dsi_ctrl_pdata *ctrl, int level) struct mdss_panel_info *pinfo; pinfo = &(ctrl->panel_data.panel_info); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) return; } Loading Loading @@ -430,7 +430,7 @@ static int mdss_dsi_set_col_page_addr(struct mdss_panel_data *pdata) return 0; } if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (left_or_both && ctrl->ndx == DSI_CTRL_RIGHT) { /* 2A/2B sent by left already */ return 0; Loading @@ -456,7 +456,7 @@ static int mdss_dsi_set_col_page_addr(struct mdss_panel_data *pdata) cmdreq.rlen = 0; cmdreq.cb = NULL; if (pinfo->partial_update_dcs_cmd_by_left) if (pinfo->dcs_cmd_by_left) ctrl = mdss_dsi_get_ctrl_by_index(DSI_CTRL_LEFT); mdss_dsi_cmdlist_put(ctrl, &cmdreq); Loading Loading @@ -572,7 +572,7 @@ static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) goto end; } Loading Loading @@ -602,7 +602,7 @@ static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) goto end; } Loading Loading @@ -1063,13 +1063,13 @@ static int mdss_dsi_parse_panel_features(struct device_node *np, pinfo->partial_update_enabled); if (pinfo->partial_update_enabled) { ctrl->set_col_page_addr = mdss_dsi_set_col_page_addr; pinfo->partial_update_dcs_cmd_by_left = of_property_read_bool(np, "qcom,partial-update-dcs-cmd-by-left"); pinfo->partial_update_roi_merge = of_property_read_bool(np, "qcom,partial-update-roi-merge"); } pinfo->dcs_cmd_by_left = of_property_read_bool(np, "qcom,dcs-cmd-by-left"); } pinfo->ulps_feature_enabled = of_property_read_bool(np, Loading drivers/video/msm/mdss/mdss_panel.h +1 −1 Original line number Diff line number Diff line Loading @@ -376,7 +376,7 @@ struct mdss_panel_info { u32 cont_splash_enabled; u32 partial_update_enabled; u32 partial_update_dcs_cmd_by_left; u32 dcs_cmd_by_left; u32 partial_update_roi_merge; struct ion_handle *splash_ihdl; int panel_power_state; Loading Loading
Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt +3 −0 Original line number Diff line number Diff line Loading @@ -303,6 +303,8 @@ Optional properties: - qcom,partial-update-roi-merge: Boolean indicates roi combination is need and function has been provided for dcs 2A/2B command. - qcom,dcs-cmd-by-left: Boolean to indicate that dcs command are sent through the left DSI controller only in a dual-dsi configuration - qcom,mdss-dsi-lp11-init: Boolean used to enable the DSI clocks and data lanes (low power 11) before issuing hardware reset line. - qcom,mdss-dsi-init-delay-us: Delay in microseconds(us) before performing any DSI activity in lp11 Loading Loading @@ -453,6 +455,7 @@ Example: qcom,mdss-tear-check-frame-rate = <6000>; qcom,mdss-dsi-reset-sequence = <1 2>, <0 10>, <1 10>; qcom,partial-update-enabled; qcom,dcs-cmd-by-left; qcom,mdss-dsi-lp11-init; qcom,mdss-dsi-init-delay-us = <100>; mdss-dsi-rx-eot-ignore; Loading
drivers/video/msm/mdss/mdss_dsi_panel.c +10 −10 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ u32 mdss_dsi_panel_cmd_read(struct mdss_dsi_ctrl_pdata *ctrl, char cmd0, struct mdss_panel_info *pinfo; pinfo = &(ctrl->panel_data.panel_info); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) return -EINVAL; } Loading Loading @@ -142,7 +142,7 @@ static void mdss_dsi_panel_cmds_send(struct mdss_dsi_ctrl_pdata *ctrl, struct mdss_panel_info *pinfo; pinfo = &(ctrl->panel_data.panel_info); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) return; } Loading Loading @@ -174,7 +174,7 @@ static void mdss_dsi_panel_bklt_dcs(struct mdss_dsi_ctrl_pdata *ctrl, int level) struct mdss_panel_info *pinfo; pinfo = &(ctrl->panel_data.panel_info); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) return; } Loading Loading @@ -430,7 +430,7 @@ static int mdss_dsi_set_col_page_addr(struct mdss_panel_data *pdata) return 0; } if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (left_or_both && ctrl->ndx == DSI_CTRL_RIGHT) { /* 2A/2B sent by left already */ return 0; Loading @@ -456,7 +456,7 @@ static int mdss_dsi_set_col_page_addr(struct mdss_panel_data *pdata) cmdreq.rlen = 0; cmdreq.cb = NULL; if (pinfo->partial_update_dcs_cmd_by_left) if (pinfo->dcs_cmd_by_left) ctrl = mdss_dsi_get_ctrl_by_index(DSI_CTRL_LEFT); mdss_dsi_cmdlist_put(ctrl, &cmdreq); Loading Loading @@ -572,7 +572,7 @@ static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) goto end; } Loading Loading @@ -602,7 +602,7 @@ static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); if (pinfo->partial_update_dcs_cmd_by_left) { if (pinfo->dcs_cmd_by_left) { if (ctrl->ndx != DSI_CTRL_LEFT) goto end; } Loading Loading @@ -1063,13 +1063,13 @@ static int mdss_dsi_parse_panel_features(struct device_node *np, pinfo->partial_update_enabled); if (pinfo->partial_update_enabled) { ctrl->set_col_page_addr = mdss_dsi_set_col_page_addr; pinfo->partial_update_dcs_cmd_by_left = of_property_read_bool(np, "qcom,partial-update-dcs-cmd-by-left"); pinfo->partial_update_roi_merge = of_property_read_bool(np, "qcom,partial-update-roi-merge"); } pinfo->dcs_cmd_by_left = of_property_read_bool(np, "qcom,dcs-cmd-by-left"); } pinfo->ulps_feature_enabled = of_property_read_bool(np, Loading
drivers/video/msm/mdss/mdss_panel.h +1 −1 Original line number Diff line number Diff line Loading @@ -376,7 +376,7 @@ struct mdss_panel_info { u32 cont_splash_enabled; u32 partial_update_enabled; u32 partial_update_dcs_cmd_by_left; u32 dcs_cmd_by_left; u32 partial_update_roi_merge; struct ion_handle *splash_ihdl; int panel_power_state; Loading