@@ -582,7 +582,7 @@ void dpe_interrupt_unmask(struct dss_crtc *acrtc)
writel(unmask, dss_base + GLB_CPU_PDP_INT_MSK);
unmask = ~0;
- unmask &= ~(BIT_VSYNC | BIT_VACTIVE0_END | BIT_LDI_UNFLOW);
+ unmask &= ~(BIT_VSYNC | BIT_LDI_UNFLOW);
writel(unmask, dss_base + DSS_LDI0_OFFSET + LDI_CPU_ITF_INT_MSK);
}
@@ -440,11 +440,6 @@ static irqreturn_t dss_irq_handler(int irq, void *data)
isr_s1 &= ~(readl(dss_base + GLB_CPU_PDP_INT_MSK));
isr_s2 &= ~(readl(dss_base + DSS_LDI0_OFFSET + LDI_CPU_ITF_INT_MSK));
- if (isr_s2 & BIT_VACTIVE0_END) {
- ctx->vactive0_end_flag++;
- wake_up_interruptible_all(&ctx->vactive0_end_wq);
- }
-
if (isr_s2 & BIT_VSYNC) {
ctx->vsync_timestamp = ktime_get();
drm_crtc_handle_vblank(crtc);
@@ -822,40 +822,6 @@ void hisifb_mctl_sw_clr(struct dss_crtc *acrtc)
DRM_INFO("-.\n");
}
-static int hisi_dss_wait_for_complete(struct dss_crtc *acrtc)
-{
- int ret = 0;
- u32 times = 0;
- u32 prev_vactive0_end = 0;
- struct dss_hw_ctx *ctx = acrtc->ctx;
-
- prev_vactive0_end = ctx->vactive0_end_flag;
-
-REDO:
- ret = wait_event_interruptible_timeout(ctx->vactive0_end_wq,
- (prev_vactive0_end != ctx->vactive0_end_flag),
- msecs_to_jiffies(300));
- if (ret == -ERESTARTSYS) {
- if (times < 50) {
- times++;
- mdelay(10);
- goto REDO;
- }
- }
-
- if (ret <= 0) {
- disable_ldi(acrtc);
- hisifb_mctl_sw_clr(acrtc);
- DRM_ERROR("wait_for vactive0_end_flag timeout! ret=%d.\n", ret);
-
- ret = -ETIMEDOUT;
- } else {
- ret = 0;
- }
-
- return ret;
-}
-
void hisi_fb_pan_display(struct drm_plane *plane)
{
struct drm_plane_state *state = plane->state;
@@ -932,7 +898,6 @@ void hisi_fb_pan_display(struct drm_plane *plane)
hisi_dss_unflow_handler(ctx, true);
enable_ldi(acrtc);
- hisi_dss_wait_for_complete(acrtc);
}
void hisi_dss_online_play(struct kirin_fbdev *fbdev, struct drm_plane *plane,
@@ -1001,5 +966,4 @@ void hisi_dss_online_play(struct kirin_fbdev *fbdev, struct drm_plane *plane,
hisi_dss_unflow_handler(ctx, true);
enable_ldi(acrtc);
- hisi_dss_wait_for_complete(acrtc);
}