Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1483257
| From | Tomasz Figa <tfiga@chromium.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 1/8] drm/rockchip: Clear interrupt status bits before enabling |
| Date | 2016-09-14 15:00 +0200 |
| Message-ID | <shhXc-ZP-31@gated-at.bofh.it> (permalink) |
| References | <shhXb-ZP-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The enable register only masks the raw status bits to signal CPU interrupt only for enabled interrupts. The status bits are activated regardless of the enable register. This means that we might have an old interrupt event queued, which we are not interested in. To avoid getting a spurious interrupt signalled, we have to clear the old bit before we update the enable register. Signed-off-by: Tomasz Figa <tfiga@chromium.org> --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 209167b..7e811cf 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -414,6 +414,7 @@ static void vop_dsp_hold_valid_irq_enable(struct vop *vop) spin_lock_irqsave(&vop->irq_lock, flags); + VOP_INTR_SET_TYPE(vop, clear, DSP_HOLD_VALID_INTR, 1); VOP_INTR_SET_TYPE(vop, enable, DSP_HOLD_VALID_INTR, 1); spin_unlock_irqrestore(&vop->irq_lock, flags); @@ -479,6 +480,7 @@ static void vop_line_flag_irq_enable(struct vop *vop, int line_num) spin_lock_irqsave(&vop->irq_lock, flags); VOP_CTRL_SET(vop, line_flag_num[0], line_num); + VOP_INTR_SET_TYPE(vop, clear, LINE_FLAG_INTR, 1); VOP_INTR_SET_TYPE(vop, enable, LINE_FLAG_INTR, 1); spin_unlock_irqrestore(&vop->irq_lock, flags); @@ -921,6 +923,7 @@ static int vop_crtc_enable_vblank(struct drm_crtc *crtc) spin_lock_irqsave(&vop->irq_lock, flags); + VOP_INTR_SET_TYPE(vop, clear, FS_INTR, 1); VOP_INTR_SET_TYPE(vop, enable, FS_INTR, 1); spin_unlock_irqrestore(&vop->irq_lock, flags); -- 2.8.0.rc3.226.g39d4020
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/8] drm/rockchip: Flip wait clean-up Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 8/8] drm/rockchip: Kill vop_plane_state Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 3/8] drm/rockchip: Avoid race with vblank count increment Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 2/8] drm/rockchip: Get rid of some unnecessary code Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
Re: [PATCH 2/8] drm/rockchip: Get rid of some unnecessary code Mark yao <mark.yao@rock-chips.com> - 2016-09-18 04:00 +0200
Re: [PATCH 2/8] drm/rockchip: Get rid of some unnecessary code Tomasz Figa <tfiga@chromium.org> - 2016-09-18 06:10 +0200
Re: [PATCH 2/8] drm/rockchip: Get rid of some unnecessary code Mark yao <mark.yao@rock-chips.com> - 2016-09-20 03:40 +0200
[PATCH 6/8] drm/rockchip: Do not enable vblank without event Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 5/8] drm/rockchip: Replace custom wait_for_vblanks with helper Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 7/8] drm/rockchip: Always signal event in next vblank after cfg_done Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 1/8] drm/rockchip: Clear interrupt status bits before enabling Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
[PATCH 4/8] drm/rockchip: Unreference framebuffers from flip work Tomasz Figa <tfiga@chromium.org> - 2016-09-14 15:00 +0200
Re: [PATCH 0/8] drm/rockchip: Flip wait clean-up Sean Paul <seanpaul@chromium.org> - 2016-09-15 16:10 +0200
csiph-web