Loading Documentation/devicetree/bindings/fb/mdss-mdp.txt +6 −0 Original line number Diff line number Diff line Loading @@ -446,6 +446,11 @@ Fudge Factors: Fudge factors are used to boost demand for - qcom,max-pipe-width: This value specifies the maximum MDP SSPP width the device supports. If not specified, a default value of 2048 will be applied. - qcom,mdss-slave-pingpong-off: Offset address for the extra TE block which needs to be programmed when pingpong split feature is enabled. Offset is calculated from the "mdp_phys" register value. Mandatory when qcom,mdss-has-dst-split is enabled. Optional subnodes: Child nodes representing the frame buffer virtual devices. Loading Loading @@ -623,6 +628,7 @@ Example: qcom,mdss-intf-off = <0x00021100 0x00021300 0x00021500 0x00021700>; qcom,mdss-ppb-off = <0x0000420>; qcom,mdss-slave-pingpong-off = <0x00073000> /* buffer parameters to calculate prefill bandwidth */ qcom,mdss-prefill-outstanding-buffer-bytes = <1024>; Loading drivers/video/msm/mdss/mdss.h +2 −0 Original line number Diff line number Diff line Loading @@ -230,8 +230,10 @@ struct mdss_data_type { u32 max_target_zorder; u8 ncursor_pipes; u32 max_cursor_size; u32 nppb; struct mdss_mdp_ppb *ppb; char __iomem *slave_pingpong_base; struct mdss_mdp_mixer *mixer_intf; struct mdss_mdp_mixer *mixer_wb; Loading drivers/video/msm/mdss/mdss_mdp.c +13 −1 Original line number Diff line number Diff line Loading @@ -2624,7 +2624,7 @@ static void mdss_mdp_parse_vbif_qos(struct platform_device *pdev) static int mdss_mdp_parse_dt_misc(struct platform_device *pdev) { struct mdss_data_type *mdata = platform_get_drvdata(pdev); u32 data; u32 data, slave_pingpong_off; const char *wfd_data; int rc; struct property *prop = NULL; Loading Loading @@ -2688,6 +2688,18 @@ static int mdss_mdp_parse_dt_misc(struct platform_device *pdev) mdata->has_pingpong_split = of_property_read_bool(pdev->dev.of_node, "qcom,mdss-has-dst-split"); if (mdata->has_pingpong_split) { rc = of_property_read_u32(pdev->dev.of_node, "qcom,mdss-slave-pingpong-off", &slave_pingpong_off); if (rc) { pr_err("Error in device tree: slave pingpong offset\n"); return rc; } mdata->slave_pingpong_base = mdata->mdss_io.base + slave_pingpong_off; } /* * 2x factor on AB because bus driver will divide by 2 * due to 2x ports to BIMC Loading drivers/video/msm/mdss/mdss_mdp.h +4 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,9 @@ #define CURSOR_PIPE_LEFT 0 #define CURSOR_PIPE_RIGHT 1 #define MASTER_CTX 0 #define SLAVE_CTX 1 /* * Recommendation is to have different ot depending on the fps * and resolution, but since current SW doesn't support different Loading Loading @@ -288,6 +291,7 @@ struct mdss_mdp_ctl { struct blocking_notifier_head notifier_head; void *priv_data; void *intf_ctx[2]; u32 wb_type; bool prg_fet; }; Loading drivers/video/msm/mdss/mdss_mdp_ctl.c +6 −0 Original line number Diff line number Diff line Loading @@ -2269,6 +2269,12 @@ static void mdss_mdp_ctl_split_display_enable(int enable, lower |= BIT(4); else lower |= BIT(8); /* * Enable SMART_PANEL_FREE_RUN if ping pong split * is enabled. */ if (is_pingpong_split(main_ctl->mfd)) lower |= BIT(2); upper = lower; } else { /* interface controlling sw trigger (video mode) */ Loading Loading
Documentation/devicetree/bindings/fb/mdss-mdp.txt +6 −0 Original line number Diff line number Diff line Loading @@ -446,6 +446,11 @@ Fudge Factors: Fudge factors are used to boost demand for - qcom,max-pipe-width: This value specifies the maximum MDP SSPP width the device supports. If not specified, a default value of 2048 will be applied. - qcom,mdss-slave-pingpong-off: Offset address for the extra TE block which needs to be programmed when pingpong split feature is enabled. Offset is calculated from the "mdp_phys" register value. Mandatory when qcom,mdss-has-dst-split is enabled. Optional subnodes: Child nodes representing the frame buffer virtual devices. Loading Loading @@ -623,6 +628,7 @@ Example: qcom,mdss-intf-off = <0x00021100 0x00021300 0x00021500 0x00021700>; qcom,mdss-ppb-off = <0x0000420>; qcom,mdss-slave-pingpong-off = <0x00073000> /* buffer parameters to calculate prefill bandwidth */ qcom,mdss-prefill-outstanding-buffer-bytes = <1024>; Loading
drivers/video/msm/mdss/mdss.h +2 −0 Original line number Diff line number Diff line Loading @@ -230,8 +230,10 @@ struct mdss_data_type { u32 max_target_zorder; u8 ncursor_pipes; u32 max_cursor_size; u32 nppb; struct mdss_mdp_ppb *ppb; char __iomem *slave_pingpong_base; struct mdss_mdp_mixer *mixer_intf; struct mdss_mdp_mixer *mixer_wb; Loading
drivers/video/msm/mdss/mdss_mdp.c +13 −1 Original line number Diff line number Diff line Loading @@ -2624,7 +2624,7 @@ static void mdss_mdp_parse_vbif_qos(struct platform_device *pdev) static int mdss_mdp_parse_dt_misc(struct platform_device *pdev) { struct mdss_data_type *mdata = platform_get_drvdata(pdev); u32 data; u32 data, slave_pingpong_off; const char *wfd_data; int rc; struct property *prop = NULL; Loading Loading @@ -2688,6 +2688,18 @@ static int mdss_mdp_parse_dt_misc(struct platform_device *pdev) mdata->has_pingpong_split = of_property_read_bool(pdev->dev.of_node, "qcom,mdss-has-dst-split"); if (mdata->has_pingpong_split) { rc = of_property_read_u32(pdev->dev.of_node, "qcom,mdss-slave-pingpong-off", &slave_pingpong_off); if (rc) { pr_err("Error in device tree: slave pingpong offset\n"); return rc; } mdata->slave_pingpong_base = mdata->mdss_io.base + slave_pingpong_off; } /* * 2x factor on AB because bus driver will divide by 2 * due to 2x ports to BIMC Loading
drivers/video/msm/mdss/mdss_mdp.h +4 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,9 @@ #define CURSOR_PIPE_LEFT 0 #define CURSOR_PIPE_RIGHT 1 #define MASTER_CTX 0 #define SLAVE_CTX 1 /* * Recommendation is to have different ot depending on the fps * and resolution, but since current SW doesn't support different Loading Loading @@ -288,6 +291,7 @@ struct mdss_mdp_ctl { struct blocking_notifier_head notifier_head; void *priv_data; void *intf_ctx[2]; u32 wb_type; bool prg_fet; }; Loading
drivers/video/msm/mdss/mdss_mdp_ctl.c +6 −0 Original line number Diff line number Diff line Loading @@ -2269,6 +2269,12 @@ static void mdss_mdp_ctl_split_display_enable(int enable, lower |= BIT(4); else lower |= BIT(8); /* * Enable SMART_PANEL_FREE_RUN if ping pong split * is enabled. */ if (is_pingpong_split(main_ctl->mfd)) lower |= BIT(2); upper = lower; } else { /* interface controlling sw trigger (video mode) */ Loading