Loading drivers/video/msm/mdss/mdss.h +1 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,7 @@ enum mdss_hw_quirk { enum mdss_hw_capabilities { MDSS_CAPS_YUV_CONFIG, MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED, MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, MDSS_CAPS_MAX, }; Loading drivers/video/msm/mdss/mdss_mdp.c +4 −0 Original line number Diff line number Diff line Loading @@ -1203,6 +1203,8 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata) set_bit(MDSS_CAPS_YUV_CONFIG, mdata->mdss_caps_map); set_bit(MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED, mdata->mdss_caps_map); set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, mdata->mdss_caps_map); mdss_mdp_init_default_prefill_factors(mdata); break; case MDSS_MDP_HW_REV_105: Loading @@ -1211,6 +1213,8 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata) mdata->max_target_zorder = 7; /* excluding base layer */ mdata->max_cursor_size = 128; set_bit(MDSS_QOS_OTLIM, mdata->mdss_qos_map); set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, mdata->mdss_caps_map); break; case MDSS_MDP_HW_REV_110: mdss_set_quirk(mdata, MDSS_QUIRK_BWCPANIC); Loading drivers/video/msm/mdss/mdss_mdp_intf_video.c +3 −1 Original line number Diff line number Diff line Loading @@ -706,7 +706,9 @@ static void mdss_mdp_video_underrun_intr_done(void *arg) pr_debug("display underrun detected for ctl=%d count=%d\n", ctl->num, ctl->underrun_cnt); if (ctl->opmode & MDSS_MDP_CTL_OP_PACK_3D_ENABLE) if (!test_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, ctl->mdata->mdss_caps_map) && (ctl->opmode & MDSS_MDP_CTL_OP_PACK_3D_ENABLE)) schedule_work(&ctl->recover_work); } Loading Loading
drivers/video/msm/mdss/mdss.h +1 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,7 @@ enum mdss_hw_quirk { enum mdss_hw_capabilities { MDSS_CAPS_YUV_CONFIG, MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED, MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, MDSS_CAPS_MAX, }; Loading
drivers/video/msm/mdss/mdss_mdp.c +4 −0 Original line number Diff line number Diff line Loading @@ -1203,6 +1203,8 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata) set_bit(MDSS_CAPS_YUV_CONFIG, mdata->mdss_caps_map); set_bit(MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED, mdata->mdss_caps_map); set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, mdata->mdss_caps_map); mdss_mdp_init_default_prefill_factors(mdata); break; case MDSS_MDP_HW_REV_105: Loading @@ -1211,6 +1213,8 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata) mdata->max_target_zorder = 7; /* excluding base layer */ mdata->max_cursor_size = 128; set_bit(MDSS_QOS_OTLIM, mdata->mdss_qos_map); set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, mdata->mdss_caps_map); break; case MDSS_MDP_HW_REV_110: mdss_set_quirk(mdata, MDSS_QUIRK_BWCPANIC); Loading
drivers/video/msm/mdss/mdss_mdp_intf_video.c +3 −1 Original line number Diff line number Diff line Loading @@ -706,7 +706,9 @@ static void mdss_mdp_video_underrun_intr_done(void *arg) pr_debug("display underrun detected for ctl=%d count=%d\n", ctl->num, ctl->underrun_cnt); if (ctl->opmode & MDSS_MDP_CTL_OP_PACK_3D_ENABLE) if (!test_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED, ctl->mdata->mdss_caps_map) && (ctl->opmode & MDSS_MDP_CTL_OP_PACK_3D_ENABLE)) schedule_work(&ctl->recover_work); } Loading