On Wed, 4 Mar 2020 at 00:32, John Stultz <john.stultz@xxxxxxxxxx> wrote: > > This reverts commit ff57c6513820efe945b61863cf4a51b79f18b592. > > With the commit ff57c6513820 ("drm: kirin: Fix for hikey620 > display offset problem") we added support for handling LDI > overflows by resetting the hardware. > > However, its been observed that when we do hit the LDI overflow > condition, the irq seems to be screaming, and we do nothing but > stream: > [drm:ade_irq_handler [kirin_drm]] *ERROR* LDI underflow! > over and over to the screen > > I've tried a few appraoches to avoid this, but none has yet > been successful and the cure here is worse then the original > disease, so revert this for now. Sorry to hear that. Then it seems such underflow errors can't be recovered via reset. Anyway, for this patch Acked-by: Xinliang Liu <z.liuxinliang@xxxxxxxxxxxxx> And applied to drm-misc . -xinliang > > Cc: Xinliang Liu <xinliang.liu@xxxxxxxxxx> > Cc: Rongrong Zou <zourongrong@xxxxxxxxx> > Cc: Xinwei Kong <kong.kongxinwei@xxxxxxxxxxxxx> > Cc: Chen Feng <puck.chen@xxxxxxxxxxxxx> > Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: dri-devel <dri-devel@xxxxxxxxxxxxxxxxxxxxx> > Fixes: ff57c6513820 ("drm: kirin: Fix for hikey620 display offset problem") > Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx> > --- > .../gpu/drm/hisilicon/kirin/kirin_ade_reg.h | 1 - > .../gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 20 ------------------- > 2 files changed, 21 deletions(-) > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h b/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h > index 0da860200410..e2ac09894a6d 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h > @@ -83,7 +83,6 @@ > #define VSIZE_OFST 20 > #define LDI_INT_EN 0x741C > #define FRAME_END_INT_EN_OFST 1 > -#define UNDERFLOW_INT_EN_OFST 2 > #define LDI_CTRL 0x7420 > #define BPP_OFST 3 > #define DATA_GATE_EN BIT(2) > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c > index 73cd28a6ea07..86000127d4ee 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c > @@ -46,7 +46,6 @@ struct ade_hw_ctx { > struct clk *media_noc_clk; > struct clk *ade_pix_clk; > struct reset_control *reset; > - struct work_struct display_reset_wq; > bool power_on; > int irq; > > @@ -136,7 +135,6 @@ static void ade_init(struct ade_hw_ctx *ctx) > */ > ade_update_bits(base + ADE_CTRL, FRM_END_START_OFST, > FRM_END_START_MASK, REG_EFFECTIVE_IN_ADEEN_FRMEND); > - ade_update_bits(base + LDI_INT_EN, UNDERFLOW_INT_EN_OFST, MASK(1), 1); > } > > static bool ade_crtc_mode_fixup(struct drm_crtc *crtc, > @@ -304,17 +302,6 @@ static void ade_crtc_disable_vblank(struct drm_crtc *crtc) > MASK(1), 0); > } > > -static void drm_underflow_wq(struct work_struct *work) > -{ > - struct ade_hw_ctx *ctx = container_of(work, struct ade_hw_ctx, > - display_reset_wq); > - struct drm_device *drm_dev = ctx->crtc->dev; > - struct drm_atomic_state *state; > - > - state = drm_atomic_helper_suspend(drm_dev); > - drm_atomic_helper_resume(drm_dev, state); > -} > - > static irqreturn_t ade_irq_handler(int irq, void *data) > { > struct ade_hw_ctx *ctx = data; > @@ -331,12 +318,6 @@ static irqreturn_t ade_irq_handler(int irq, void *data) > MASK(1), 1); > drm_crtc_handle_vblank(crtc); > } > - if (status & BIT(UNDERFLOW_INT_EN_OFST)) { > - ade_update_bits(base + LDI_INT_CLR, UNDERFLOW_INT_EN_OFST, > - MASK(1), 1); > - DRM_ERROR("LDI underflow!"); > - schedule_work(&ctx->display_reset_wq); > - } > > return IRQ_HANDLED; > } > @@ -919,7 +900,6 @@ static void *ade_hw_ctx_alloc(struct platform_device *pdev, > if (ret) > return ERR_PTR(-EIO); > > - INIT_WORK(&ctx->display_reset_wq, drm_underflow_wq); > ctx->crtc = crtc; > > return ctx; > -- > 2.17.1 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel