linux/drivers/gpu/drm/sun4i
Ondrej Jirman 7035046d6d
drm/sun4i: Fix exclusivity of the TCON clocks
Currently the exclusivity is enabled when the rate is set by
the mode setting functions. These functions are called by
mode_set_nofb callback of drm_crc_helper. Then exclusivity
is disabled when tcon is disabled by atomic_disable
callback.

What happens is that mode_set_nofb can be called once when
mode changes, and afterwards the system can call atomic_enable
and atomic_disable multiple times without further calls to
mode_set_nofb.

This happens:

mode_set_nofb   - clk exclusivity is enabled
atomic_enable
atomic_disable  - clk exclusivity is disabled
atomic_enable
atomic_disable  - clk exclusivity is already disabled, leading to WARN
                  in clk_rate_exclusive_put

Solution is to enable exclusivity in sun4i_tcon_channel_set_status.

Signed-off-by: Ondrej Jirman <megous@megous.com>
Cc: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180310110511.14697-1-megous@megous.com
2018-03-12 10:07:17 +01:00
..
Kconfig drm/sun4i: cec: Enable back CEC-pin framework 2017-09-22 08:42:17 +02:00
Makefile drm/sun4i: Add LVDS support 2018-01-04 20:37:17 +01:00
sun4i_backend.c drm/sun4i: Add support for A20 display pipeline components 2017-10-17 19:49:17 +02:00
sun4i_backend.h drm/sun4i: backend: Support output muxing 2017-10-17 19:49:15 +02:00
sun4i_crtc.c drm/sun4i: crtc: Call drm_crtc_vblank_on / drm_crtc_vblank_off 2018-03-06 16:27:54 +01:00
sun4i_crtc.h drm/sun4i: abstract a engine type 2017-06-01 09:47:23 +02:00
sun4i_dotclock.c drm/sun4i: Fix dclk_set_phase 2018-03-01 10:41:27 +01:00
sun4i_dotclock.h
sun4i_drv.c drm/sun4i: Add A83T support 2018-01-04 20:37:59 +01:00
sun4i_drv.h drm/sun4i: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:42 +01:00
sun4i_framebuffer.c drm/sun4i: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:42 +01:00
sun4i_framebuffer.h drm/sun4i: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:42 +01:00
sun4i_hdmi_ddc_clk.c drm/sun4i: tcon: Don't rely on encoders to set the TCON mode 2017-10-17 19:49:13 +02:00
sun4i_hdmi_enc.c drm/sun4i: hdmi: Move the mode_valid callback to the encoder 2017-12-20 12:59:46 +01:00
sun4i_hdmi_i2c.c drm/sun4i: hdmi: Add support for controller hardware variants 2017-10-11 09:53:33 +02:00
sun4i_hdmi_tmds_clk.c drm/sun4i: hdmi: Add missing rate halving check in sun4i_tmds_determine_rate 2018-01-11 13:25:43 +01:00
sun4i_hdmi.h drm/sun4i: hdmi: Document PAD_CTRL1 output invert bits 2017-10-16 09:54:21 +02:00
sun4i_layer.c Allwinner DRM changes for 4.14 2017-08-21 09:05:01 +10:00
sun4i_layer.h drm/sun4i: abstract a engine type 2017-06-01 09:47:23 +02:00
sun4i_lvds.c drm/sun4i: Add LVDS support 2018-01-04 20:37:17 +01:00
sun4i_lvds.h drm/sun4i: Add LVDS support 2018-01-04 20:37:17 +01:00
sun4i_rgb.c drm/sun4i: rgb: Fix potential division by zero 2018-03-06 16:27:31 +01:00
sun4i_rgb.h drm/sun4i: rgb: Pass tcon pointer when initializing RGB encoder 2017-03-07 22:18:24 +01:00
sun4i_tcon.c drm/sun4i: Fix exclusivity of the TCON clocks 2018-03-12 10:07:17 +01:00
sun4i_tcon.h drm/sun4i: tcon: Reduce the scope of the LVDS error a bit 2018-03-06 16:27:14 +01:00
sun4i_tv.c drm/sun4i: tcon: Don't rely on encoders to set the TCON mode 2017-10-17 19:49:13 +02:00
sun6i_drc.c Merge tag 'drm-misc-next-2016-11-16' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2016-11-17 08:02:46 +10:00
sun8i_csc.c drm/sun4i: Add DE2 CSC library 2017-12-05 13:22:44 +01:00
sun8i_csc.h drm/sun4i: Add DE2 CSC library 2017-12-05 13:22:44 +01:00
sun8i_mixer.c drm/sun4i: Add A83T support 2018-01-04 20:37:59 +01:00
sun8i_mixer.h drm/sun4i: Force the mixer rate at 150MHz 2018-01-04 20:04:32 +01:00
sun8i_ui_layer.c drm/sun4i: Add DE2 definitions for YUV formats 2017-12-05 13:22:44 +01:00
sun8i_ui_layer.h drm/sun4i: Reorganize UI layer code in DE2 2017-12-05 13:22:43 +01:00
sun8i_ui_scaler.c drm/sun4i: Add support for HW scaling to DE2 2017-12-05 13:22:44 +01:00
sun8i_ui_scaler.h drm/sun4i: Add support for HW scaling to DE2 2017-12-05 13:22:44 +01:00
sun8i_vi_layer.c drm/sun4i: Fix uninitialized variables in vi layer 2017-12-07 09:51:41 +01:00
sun8i_vi_layer.h drm/sun4i: Add support for DE2 VI planes 2017-12-05 13:22:43 +01:00
sun8i_vi_scaler.c drm/sun4i: Expand DE2 scaler lib with YUV support 2017-12-05 13:22:44 +01:00
sun8i_vi_scaler.h drm/sun4i: Expand DE2 scaler lib with YUV support 2017-12-05 13:22:44 +01:00
sunxi_engine.h drm/sun4i: abstract a engine type 2017-06-01 09:47:23 +02:00