Loading Documentation/devicetree/bindings/drm/msm/mdss-dsi-panel.txt +3 −0 Original line number Diff line number Diff line Loading @@ -532,6 +532,8 @@ Optional properties: display. The first set is indexed by the value 0. - qcom,mdss-dsi-ext-bridge-mode: External bridge chip is connected instead of panel. - qcom,mdss-dsi-dma-schedule-line: An integer value indicates the line number after vertical active region, at which command DMA needs to be triggered. Required properties for sub-nodes: None Optional properties: Loading Loading @@ -790,5 +792,6 @@ Example: qcom,display-topology = <1 1 1>, <2 2 1>; qcom,default-topology-index = <0>; qcom,mdss-dsi-dma-schedule-line = <5>; }; }; drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c +5 −0 Original line number Diff line number Diff line Loading @@ -1194,6 +1194,11 @@ static int dsi_message_tx(struct dsi_ctrl *dsi_ctrl, } kickoff: /* check if custom dma scheduling line needed */ if ((dsi_ctrl->host_config.panel_mode == DSI_OP_VIDEO_MODE) && (flags & DSI_CTRL_CMD_CUSTOM_DMA_SCHED)) line_no = dsi_ctrl->host_config.u.video_engine.dma_sched_line; timing = &(dsi_ctrl->host_config.video_timing); if (timing) line_no += timing->v_back_porch + timing->v_sync_width + Loading drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h +3 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ * @DSI_CTRL_CMD_LAST_COMMAND: Trigger the DMA cmd transfer if this is last * command in the batch. * @DSI_CTRL_CMD_NON_EMBEDDED_MODE:Transfer cmd packets in non embedded mode. * @DSI_CTRL_CMD_CUSTOM_DMA_SCHED: Use the dma scheduling line number defined in * display panel dtsi file instead of default. */ #define DSI_CTRL_CMD_READ 0x1 #define DSI_CTRL_CMD_BROADCAST 0x2 Loading @@ -47,6 +49,7 @@ #define DSI_CTRL_CMD_FETCH_MEMORY 0x20 #define DSI_CTRL_CMD_LAST_COMMAND 0x40 #define DSI_CTRL_CMD_NON_EMBEDDED_MODE 0x80 #define DSI_CTRL_CMD_CUSTOM_DMA_SCHED 0x100 /* DSI embedded mode fifo size * If the command is greater than 256 bytes it is sent in non-embedded mode. Loading drivers/gpu/drm/msm/dsi-staging/dsi_defs.h +3 −0 Original line number Diff line number Diff line Loading @@ -458,6 +458,8 @@ struct dsi_host_common_cfg { * @bllp_lp11_en: Enter low power stop mode (LP-11) during BLLP. * @traffic_mode: Traffic mode for video stream. * @vc_id: Virtual channel identifier. * @dma_sched_line: Line number, after vactive end, at which command dma * needs to be triggered. */ struct dsi_video_engine_cfg { bool last_line_interleave_en; Loading @@ -470,6 +472,7 @@ struct dsi_video_engine_cfg { bool force_clk_lane_hs; enum dsi_video_traffic_mode traffic_mode; u32 vc_id; u32 dma_sched_line; }; /** Loading drivers/gpu/drm/msm/dsi-staging/dsi_display.c +2 −1 Original line number Diff line number Diff line Loading @@ -643,7 +643,8 @@ static int dsi_display_read_status(struct dsi_display_ctrl *ctrl, lenp = config->status_valid_params ?: config->status_cmds_rlen; count = config->status_cmd.count; cmds = config->status_cmd.cmds; flags |= (DSI_CTRL_CMD_FETCH_MEMORY | DSI_CTRL_CMD_READ); flags |= (DSI_CTRL_CMD_FETCH_MEMORY | DSI_CTRL_CMD_READ | DSI_CTRL_CMD_CUSTOM_DMA_SCHED); for (i = 0; i < count; ++i) { memset(config->status_buf, 0x0, SZ_4K); Loading Loading
Documentation/devicetree/bindings/drm/msm/mdss-dsi-panel.txt +3 −0 Original line number Diff line number Diff line Loading @@ -532,6 +532,8 @@ Optional properties: display. The first set is indexed by the value 0. - qcom,mdss-dsi-ext-bridge-mode: External bridge chip is connected instead of panel. - qcom,mdss-dsi-dma-schedule-line: An integer value indicates the line number after vertical active region, at which command DMA needs to be triggered. Required properties for sub-nodes: None Optional properties: Loading Loading @@ -790,5 +792,6 @@ Example: qcom,display-topology = <1 1 1>, <2 2 1>; qcom,default-topology-index = <0>; qcom,mdss-dsi-dma-schedule-line = <5>; }; };
drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c +5 −0 Original line number Diff line number Diff line Loading @@ -1194,6 +1194,11 @@ static int dsi_message_tx(struct dsi_ctrl *dsi_ctrl, } kickoff: /* check if custom dma scheduling line needed */ if ((dsi_ctrl->host_config.panel_mode == DSI_OP_VIDEO_MODE) && (flags & DSI_CTRL_CMD_CUSTOM_DMA_SCHED)) line_no = dsi_ctrl->host_config.u.video_engine.dma_sched_line; timing = &(dsi_ctrl->host_config.video_timing); if (timing) line_no += timing->v_back_porch + timing->v_sync_width + Loading
drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h +3 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ * @DSI_CTRL_CMD_LAST_COMMAND: Trigger the DMA cmd transfer if this is last * command in the batch. * @DSI_CTRL_CMD_NON_EMBEDDED_MODE:Transfer cmd packets in non embedded mode. * @DSI_CTRL_CMD_CUSTOM_DMA_SCHED: Use the dma scheduling line number defined in * display panel dtsi file instead of default. */ #define DSI_CTRL_CMD_READ 0x1 #define DSI_CTRL_CMD_BROADCAST 0x2 Loading @@ -47,6 +49,7 @@ #define DSI_CTRL_CMD_FETCH_MEMORY 0x20 #define DSI_CTRL_CMD_LAST_COMMAND 0x40 #define DSI_CTRL_CMD_NON_EMBEDDED_MODE 0x80 #define DSI_CTRL_CMD_CUSTOM_DMA_SCHED 0x100 /* DSI embedded mode fifo size * If the command is greater than 256 bytes it is sent in non-embedded mode. Loading
drivers/gpu/drm/msm/dsi-staging/dsi_defs.h +3 −0 Original line number Diff line number Diff line Loading @@ -458,6 +458,8 @@ struct dsi_host_common_cfg { * @bllp_lp11_en: Enter low power stop mode (LP-11) during BLLP. * @traffic_mode: Traffic mode for video stream. * @vc_id: Virtual channel identifier. * @dma_sched_line: Line number, after vactive end, at which command dma * needs to be triggered. */ struct dsi_video_engine_cfg { bool last_line_interleave_en; Loading @@ -470,6 +472,7 @@ struct dsi_video_engine_cfg { bool force_clk_lane_hs; enum dsi_video_traffic_mode traffic_mode; u32 vc_id; u32 dma_sched_line; }; /** Loading
drivers/gpu/drm/msm/dsi-staging/dsi_display.c +2 −1 Original line number Diff line number Diff line Loading @@ -643,7 +643,8 @@ static int dsi_display_read_status(struct dsi_display_ctrl *ctrl, lenp = config->status_valid_params ?: config->status_cmds_rlen; count = config->status_cmd.count; cmds = config->status_cmd.cmds; flags |= (DSI_CTRL_CMD_FETCH_MEMORY | DSI_CTRL_CMD_READ); flags |= (DSI_CTRL_CMD_FETCH_MEMORY | DSI_CTRL_CMD_READ | DSI_CTRL_CMD_CUSTOM_DMA_SCHED); for (i = 0; i < count; ++i) { memset(config->status_buf, 0x0, SZ_4K); Loading