]> git.baikalelectronics.ru Git - kernel.git/commit
drm/exynos: dsi: Remove bridge node reference in error handling path in probe function
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 16 May 2020 10:57:36 +0000 (12:57 +0200)
committerInki Dae <inki.dae@samsung.com>
Mon, 18 May 2020 04:16:27 +0000 (13:16 +0900)
commitf9307cdb501fda5d88163a1875a773f63d81ce1d
tree17c0689e2e3fd61e4a50f197dc937121e5efbbdb
parentafd60749526a812ede458db0397791780e2c442f
drm/exynos: dsi: Remove bridge node reference in error handling path in probe function

'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 f1294610e010 ("drm/exynos: dsi: Remove bridge node reference in removal")
which fixed the issue in the remove function.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_dsi.c