Loading drivers/video/msm/mdss/mdp3.c +5 −0 Original line number Diff line number Diff line Loading @@ -1112,6 +1112,7 @@ static int mdp3_parse_dt(struct platform_device *pdev) { struct resource *res; struct property *prop = NULL; bool panic_ctrl; int rc; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mdp_phys"); Loading Loading @@ -1149,6 +1150,10 @@ static int mdp3_parse_dt(struct platform_device *pdev) prop = of_find_property(pdev->dev.of_node, "batfet-supply", NULL); mdp3_res->batfet_required = prop ? true : false; panic_ctrl = of_property_read_bool( pdev->dev.of_node, "qcom,mdss-has-panic-ctrl"); mdp3_res->dma[MDP3_DMA_P].has_panic_ctrl = panic_ctrl; return 0; } Loading drivers/video/msm/mdss/mdp3_dma.c +6 −0 Original line number Diff line number Diff line Loading @@ -894,6 +894,9 @@ static int mdp3_dma_start(struct mdp3_dma *dma, struct mdp3_intf *intf) init_completion(&dma->vsync_comp); spin_unlock_irqrestore(&dma->dma_lock, flag); if (dma->dma_sel == MDP3_DMA_P && dma->has_panic_ctrl) MDP3_REG_WRITE(MDP3_PANIC_ROBUST_CTRL, BIT(0)); mdp3_dma_callback_enable(dma, cb_type); pr_debug("mdp3_dma_start wait for vsync_comp in\n"); wait_for_completion_killable(&dma->vsync_comp); Loading @@ -913,6 +916,9 @@ static int mdp3_dma_stop(struct mdp3_dma *dma, struct mdp3_intf *intf) else return -EINVAL; if (dma->dma_sel == MDP3_DMA_P && dma->has_panic_ctrl) MDP3_REG_WRITE(MDP3_PANIC_ROBUST_CTRL, 0); if (dma->output_config.out_sel == MDP3_DMA_OUTPUT_SEL_DSI_VIDEO) display_status_bit |= BIT(11); Loading drivers/video/msm/mdss/mdp3_dma.h +1 −0 Original line number Diff line number Diff line Loading @@ -273,6 +273,7 @@ struct mdp3_dma { struct mdp3_dma_histogram_data histo_data; unsigned int vsync_status; bool update_src_cfg; bool has_panic_ctrl; int (*dma_config)(struct mdp3_dma *dma, struct mdp3_dma_source *source_config, Loading drivers/video/msm/mdss/mdp3_hwio.h +3 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ /*clock control*/ #define MDP3_REG_CGC_EN 0x0100 /*danger safe*/ #define MDP3_PANIC_ROBUST_CTRL 0x900A0 /*DMA_P*/ #define MDP3_REG_DMA_P_CONFIG 0x90000 #define MDP3_REG_DMA_P_SIZE 0x90004 Loading Loading
drivers/video/msm/mdss/mdp3.c +5 −0 Original line number Diff line number Diff line Loading @@ -1112,6 +1112,7 @@ static int mdp3_parse_dt(struct platform_device *pdev) { struct resource *res; struct property *prop = NULL; bool panic_ctrl; int rc; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mdp_phys"); Loading Loading @@ -1149,6 +1150,10 @@ static int mdp3_parse_dt(struct platform_device *pdev) prop = of_find_property(pdev->dev.of_node, "batfet-supply", NULL); mdp3_res->batfet_required = prop ? true : false; panic_ctrl = of_property_read_bool( pdev->dev.of_node, "qcom,mdss-has-panic-ctrl"); mdp3_res->dma[MDP3_DMA_P].has_panic_ctrl = panic_ctrl; return 0; } Loading
drivers/video/msm/mdss/mdp3_dma.c +6 −0 Original line number Diff line number Diff line Loading @@ -894,6 +894,9 @@ static int mdp3_dma_start(struct mdp3_dma *dma, struct mdp3_intf *intf) init_completion(&dma->vsync_comp); spin_unlock_irqrestore(&dma->dma_lock, flag); if (dma->dma_sel == MDP3_DMA_P && dma->has_panic_ctrl) MDP3_REG_WRITE(MDP3_PANIC_ROBUST_CTRL, BIT(0)); mdp3_dma_callback_enable(dma, cb_type); pr_debug("mdp3_dma_start wait for vsync_comp in\n"); wait_for_completion_killable(&dma->vsync_comp); Loading @@ -913,6 +916,9 @@ static int mdp3_dma_stop(struct mdp3_dma *dma, struct mdp3_intf *intf) else return -EINVAL; if (dma->dma_sel == MDP3_DMA_P && dma->has_panic_ctrl) MDP3_REG_WRITE(MDP3_PANIC_ROBUST_CTRL, 0); if (dma->output_config.out_sel == MDP3_DMA_OUTPUT_SEL_DSI_VIDEO) display_status_bit |= BIT(11); Loading
drivers/video/msm/mdss/mdp3_dma.h +1 −0 Original line number Diff line number Diff line Loading @@ -273,6 +273,7 @@ struct mdp3_dma { struct mdp3_dma_histogram_data histo_data; unsigned int vsync_status; bool update_src_cfg; bool has_panic_ctrl; int (*dma_config)(struct mdp3_dma *dma, struct mdp3_dma_source *source_config, Loading
drivers/video/msm/mdss/mdp3_hwio.h +3 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ /*clock control*/ #define MDP3_REG_CGC_EN 0x0100 /*danger safe*/ #define MDP3_PANIC_ROBUST_CTRL 0x900A0 /*DMA_P*/ #define MDP3_REG_DMA_P_CONFIG 0x90000 #define MDP3_REG_DMA_P_SIZE 0x90004 Loading