linux/drivers/gpu/drm/exynos
Joonyoung Shim 7c4c55845c drm/exynos: fix warning of vblank reference count
Prevented re-enabling the vblank interrupt by drm_vblank_off and
drm_vblank_get from mixer_wait_for_vblank returns error after
drm_vblank_off. We get below warnings without this error handling
because vblank reference count is mismatched by above sequence.

setting mode 1920x1080-60Hz@XR24 on connectors 16, crtc 13
[   19.900793] ------------[ cut here ]------------
[   19.903959] WARNING: CPU: 0 PID: 0 at drivers/gpu/drm/drm_irq.c:1072 exynos_drm_crtc_finish_pageflip+0xac/0xdc()
[   19.914076] Modules linked in:
[   19.917116] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.19.0-rc4-00040-g3d729789-dirty #46
[   19.925342] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   19.931437] [<c0014430>] (unwind_backtrace) from [<c001158c>] (show_stack+0x10/0x14)
[   19.939131] [<c001158c>] (show_stack) from [<c04cdd50>] (dump_stack+0x84/0xc4)
[   19.946329] [<c04cdd50>] (dump_stack) from [<c00226f4>] (warn_slowpath_common+0x80/0xb0)
[   19.954382] [<c00226f4>] (warn_slowpath_common) from [<c00227c0>] (warn_slowpath_null+0x1c/0x24)
[   19.963132] [<c00227c0>] (warn_slowpath_null) from [<c02c20cc>] (exynos_drm_crtc_finish_pageflip+0xac/0xdc)
[   19.972841] [<c02c20cc>] (exynos_drm_crtc_finish_pageflip) from [<c02cb7ec>] (mixer_irq_handler+0xdc/0x104)
[   19.982546] [<c02cb7ec>] (mixer_irq_handler) from [<c005c904>] (handle_irq_event_percpu+0x78/0x134)
[   19.991555] [<c005c904>] (handle_irq_event_percpu) from [<c005c9fc>] (handle_irq_event+0x3c/0x5c)
[   20.000395] [<c005c9fc>] (handle_irq_event) from [<c005f384>] (handle_fasteoi_irq+0xe0/0x1ac)
[   20.008885] [<c005f384>] (handle_fasteoi_irq) from [<c005bf88>] (generic_handle_irq+0x2c/0x3c)
[   20.017463] [<c005bf88>] (generic_handle_irq) from [<c005c254>] (__handle_domain_irq+0x7c/0xec)
[   20.026128] [<c005c254>] (__handle_domain_irq) from [<c0008698>] (gic_handle_irq+0x30/0x68)
[   20.034449] [<c0008698>] (gic_handle_irq) from [<c00120c0>] (__irq_svc+0x40/0x74)
[   20.041893] Exception stack(0xc06fff68 to 0xc06fffb0)
[   20.046923] ff60:                   00000000 00000000 000052f6 c001b460 c06fe000 c07064e8
[   20.055070] ff80: c04d743c c07392a2 c0739440 c06da340 ef7fca80 00000000 01000000 c06fffb0
[   20.063212] ffa0: c000f24c c000f250 60000013 ffffffff
[   20.068245] [<c00120c0>] (__irq_svc) from [<c000f250>] (arch_cpu_idle+0x38/0x3c)
[   20.075611] [<c000f250>] (arch_cpu_idle) from [<c0050948>] (cpu_startup_entry+0x108/0x16c)
[   20.083846] [<c0050948>] (cpu_startup_entry) from [<c06aec5c>] (start_kernel+0x3a0/0x3ac)
[   20.091980] ---[ end trace 2c76ee0500489d1b ]---

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2015-01-18 17:59:32 +09:00
..
exynos_dp_core.c drm/exynos/dp: stop using display->ctx pointer 2014-11-24 18:02:56 +09:00
exynos_dp_core.h drm/exynos/dp: embed display into private context 2014-11-24 18:02:56 +09:00
exynos_dp_reg.c drm/exynos: Fix checkpatch warning in exynos_dp_reg.c 2014-06-02 02:07:12 +09:00
exynos_dp_reg.h drm/exynos: Move dp driver from video/ to drm/ 2014-03-24 00:36:34 +09:00
exynos_drm_buf.c drm/exynos: fix return value check in lowlevel_buffer_allocate() 2013-09-16 21:57:08 +09:00
exynos_drm_buf.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_connector.c drm/exynos: use helpers 2014-07-18 14:24:34 +10:00
exynos_drm_connector.h drm/exynos: Remove dpms link between encoder/connector 2014-03-24 00:36:30 +09:00
exynos_drm_core.c drm/exynos: add component framework support 2014-06-02 02:07:04 +09:00
exynos_drm_crtc.c drm/exynos: enable vblank after DPMS on 2014-11-03 01:51:28 +09:00
exynos_drm_crtc.h drm/exynos: Replace repeated declarations by #include "exynos_drm_drv.h" 2014-11-24 18:02:51 +09:00
exynos_drm_dmabuf.c dma-buf: use reservation objects 2014-07-08 13:03:20 -07:00
exynos_drm_dmabuf.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_dpi.c drm/exynos/dpi: stop using display->ctx pointer 2014-11-24 18:02:56 +09:00
exynos_drm_drv.c drm/exynos: remove the redundant machine checking code 2015-01-12 02:03:38 +09:00
exynos_drm_drv.h drm/exynos: Fix exynos_dpi_remove() parameter 2014-11-25 11:58:41 +09:00
exynos_drm_dsi.c drm/exynos: dsi: set TE GPIO IRQ status as IRQ_NOAUTOEN 2014-11-24 18:02:54 +09:00
exynos_drm_encoder.c drm/exynos: Restrict plane loops to only operate on overlay planes (v2) 2014-04-01 20:11:18 -04:00
exynos_drm_encoder.h drm/exynos: remove extra declaration of struct exynos_drm_manager 2014-11-24 18:02:50 +09:00
exynos_drm_fb.c drm/exynos/fb: free exynos framebuffer on error 2014-09-20 00:56:14 +09:00
exynos_drm_fb.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fbdev.c drm/exynos/fbdev: fix fbdev gem object cleanup 2014-09-20 00:56:14 +09:00
exynos_drm_fbdev.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimc.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_fimc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimd.c drm/exynos: avoid leak if exynos_dpi_probe() fails 2014-11-25 11:58:43 +09:00
exynos_drm_g2d.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_g2d.h
exynos_drm_gem.c drm/exynos: use drm generic mmap interface 2014-09-20 01:00:13 +09:00
exynos_drm_gem.h drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
exynos_drm_gsc.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_gsc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_iommu.c arm: dma-mapping: remove order parameter from arm_iommu_create_mapping() 2014-02-28 11:55:18 +01:00
exynos_drm_iommu.h drm/exynos: remove uneeded declaration of struct dma_iommu_mapping 2014-11-24 18:02:50 +09:00
exynos_drm_ipp.c drm/exynos/ipp: fix error return code 2014-11-24 23:52:04 +09:00
exynos_drm_ipp.h drm/exynos/ipp: remove unused field in command node 2014-09-20 00:56:10 +09:00
exynos_drm_plane.c drm/exynos: switch to universal plane API 2014-09-20 01:17:53 +09:00
exynos_drm_plane.h drm/exynos: switch to universal plane API 2014-09-20 01:17:53 +09:00
exynos_drm_rotator.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_rotator.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_vidi.c drm/exynos: vidi: add component support 2014-11-25 11:58:37 +09:00
exynos_drm_vidi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmi.c drm/exynos: fix reset codes for memory mapped hdmi phy 2015-01-18 17:59:29 +09:00
exynos_mixer.c drm/exynos: fix warning of vblank reference count 2015-01-18 17:59:32 +09:00
exynos_mixer.h drm/exynos: Remove exynos_drm_hdmi shim 2014-03-24 00:36:32 +09:00
Kconfig drm/panel: Changes for v3.17-rc1 2014-08-07 19:51:52 +10:00
Makefile drm/exynos: add DSIM driver 2014-04-04 21:24:48 +09:00
regs-fimc.h drm/exynos: add device tree support for fimc ipp driver 2013-04-29 14:35:32 +09:00
regs-gsc.h
regs-hdmi.h drm/exynos: add hdmiphy power on/off sequence 2014-06-02 02:07:15 +09:00
regs-mixer.h drm/exynos: stop mixer before gating clocks during poweroff 2014-06-24 11:27:29 +09:00
regs-rotator.h
regs-vp.h