Merge "msm: mdss: fix dma fifo read watermark to 15/16 full"
This commit is contained in:
commit
77e4349ae1
4 changed files with 30 additions and 2 deletions
|
@ -459,6 +459,9 @@ void mdss_dsi_host_init(struct mdss_panel_data *pdata)
|
|||
/* enable contention detection for receiving */
|
||||
mdss_dsi_lp_cd_rx(ctrl_pdata);
|
||||
|
||||
/* set DMA FIFO read watermark to 15/16 full */
|
||||
MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x50, 0x30);
|
||||
|
||||
wmb();
|
||||
}
|
||||
|
||||
|
|
|
@ -2544,6 +2544,11 @@ static int mdss_mdp_disable_autorefresh(struct mdss_mdp_ctl *ctl,
|
|||
|
||||
/* disable autorefresh */
|
||||
mdss_mdp_pingpong_write(pp_base, MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG, 0);
|
||||
|
||||
if (is_pingpong_split(ctl->mfd))
|
||||
mdss_mdp_pingpong_write(mdata->slave_pingpong_base,
|
||||
MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG, 0);
|
||||
|
||||
ctx->autorefresh_state = MDP_AUTOREFRESH_OFF;
|
||||
ctx->autorefresh_frame_cnt = 0;
|
||||
|
||||
|
@ -2561,6 +2566,9 @@ static int mdss_mdp_disable_autorefresh(struct mdss_mdp_ctl *ctl,
|
|||
static void __mdss_mdp_kickoff(struct mdss_mdp_ctl *ctl,
|
||||
struct mdss_mdp_cmd_ctx *ctx)
|
||||
{
|
||||
struct mdss_data_type *mdata = mdss_mdp_get_mdata();
|
||||
bool is_pp_split = is_pingpong_split(ctl->mfd);
|
||||
|
||||
MDSS_XLOG(ctx->autorefresh_state);
|
||||
|
||||
if ((ctx->autorefresh_state == MDP_AUTOREFRESH_ON_REQUESTED) ||
|
||||
|
@ -2573,8 +2581,14 @@ static void __mdss_mdp_kickoff(struct mdss_mdp_ctl *ctl,
|
|||
mdss_mdp_pingpong_write(ctl->mixer_left->pingpong_base,
|
||||
MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG,
|
||||
BIT(31) | ctx->autorefresh_frame_cnt);
|
||||
|
||||
if (is_pp_split)
|
||||
mdss_mdp_pingpong_write(mdata->slave_pingpong_base,
|
||||
MDSS_MDP_REG_PP_AUTOREFRESH_CONFIG,
|
||||
BIT(31) | ctx->autorefresh_frame_cnt);
|
||||
|
||||
MDSS_XLOG(0x11, ctx->autorefresh_frame_cnt,
|
||||
ctx->autorefresh_state);
|
||||
ctx->autorefresh_state, is_pp_split);
|
||||
ctx->autorefresh_state = MDP_AUTOREFRESH_ON;
|
||||
|
||||
} else {
|
||||
|
|
|
@ -1062,7 +1062,6 @@ static struct sync_fence *__create_fence(struct msm_fb_data_type *mfd,
|
|||
goto end;
|
||||
}
|
||||
|
||||
sync_fence_install(sync_fence, *fence_fd);
|
||||
end:
|
||||
return sync_fence;
|
||||
}
|
||||
|
@ -1136,6 +1135,9 @@ static int __handle_buffer_fences(struct msm_fb_data_type *mfd,
|
|||
goto retire_fence_err;
|
||||
}
|
||||
|
||||
sync_fence_install(release_fence, commit->release_fence);
|
||||
sync_fence_install(retire_fence, commit->retire_fence);
|
||||
|
||||
mutex_unlock(&sync_pt_data->sync_mutex);
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -172,6 +172,7 @@ static int mdss_smmu_attach_v2(struct mdss_data_type *mdata)
|
|||
struct mdss_smmu_client *mdss_smmu;
|
||||
int i, rc = 0;
|
||||
|
||||
mutex_lock(&mdp_iommu_lock);
|
||||
for (i = 0; i < MDSS_IOMMU_MAX_DOMAIN; i++) {
|
||||
if (!mdss_smmu_is_valid_domain_type(mdata, i))
|
||||
continue;
|
||||
|
@ -203,9 +204,12 @@ static int mdss_smmu_attach_v2(struct mdss_data_type *mdata)
|
|||
}
|
||||
} else {
|
||||
pr_err("iommu device not attached for domain[%d]\n", i);
|
||||
mutex_unlock(&mdp_iommu_lock);
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&mdp_iommu_lock);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
|
@ -217,6 +221,8 @@ err:
|
|||
mdss_smmu->domain_attached = false;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&mdp_iommu_lock);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -231,6 +237,7 @@ static int mdss_smmu_detach_v2(struct mdss_data_type *mdata)
|
|||
struct mdss_smmu_client *mdss_smmu;
|
||||
int i;
|
||||
|
||||
mutex_lock(&mdp_iommu_lock);
|
||||
for (i = 0; i < MDSS_IOMMU_MAX_DOMAIN; i++) {
|
||||
if (!mdss_smmu_is_valid_domain_type(mdata, i))
|
||||
continue;
|
||||
|
@ -239,6 +246,8 @@ static int mdss_smmu_detach_v2(struct mdss_data_type *mdata)
|
|||
if (mdss_smmu && mdss_smmu->dev && !mdss_smmu->handoff_pending)
|
||||
mdss_smmu_enable_power(mdss_smmu, false);
|
||||
}
|
||||
mutex_unlock(&mdp_iommu_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue