• Christophe JAILLET's avatar
    drm/exynos: dsi: Remove bridge node reference in error handling path in probe function · 547a7348
    Christophe JAILLET authored
    'exynos_dsi_parse_dt()' takes a reference to 'dsi->in_bridge_node'.
    This must be released in the error handling path.
    
    In order to do that, add an error handling path and move the
    'exynos_dsi_parse_dt()' call from the beginning to the end of the probe
    function to ease the error handling path.
    This function only sets some variables which are used only in the
    'transfer' function.
    
    The call chain is:
       .transfer
        --> exynos_dsi_host_transfer
          --> exynos_dsi_init
            --> exynos_dsi_enable_clock  (use burst_clk_rate and esc_clk_rate)
              --> exynos_dsi_set_pll     (use pll_clk_rate)
    
    While at it, also handle cases where 'component_add()' fails.
    
    This patch is similar to commit 70505c2e ("drm/exynos: dsi: Remove bridge node reference in removal")
    which fixed the issue in the remove function.
    Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
    547a7348
exynos_drm_dsi.c 50.1 KB