• Ondrej Jirman's avatar
    drm/sun4i: Fix exclusivity of the TCON clocks · 7035046d
    Ondrej Jirman authored
    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: default avatarOndrej Jirman <megous@megous.com>
    Cc: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180310110511.14697-1-megous@megous.com
    7035046d
sun4i_tcon.c 32.1 KB