1
0
Fork 0
alistair23-linux/drivers/gpu/drm/exynos
Christophe JAILLET 09197d39ca drm/exynos: dsi: Remove bridge node reference in error handling path in probe function
[ Upstream commit 547a734863 ]

'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 70505c2ef9 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-01 13:18:01 +02:00
..
Kconfig drm/exynos: add CONFIG_MMU dependency 2019-08-02 15:28:47 +09:00
Makefile drm/exynos/iommu: merge IOMMU and DMA code 2018-12-04 13:23:17 +09:00
exynos7_drm_decon.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos5433_drm_decon.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_dp.c drm/bridge: analogix_dp: Split bind() into probe() and real bind() 2020-05-10 10:31:22 +02:00
exynos_drm_crtc.c drm/exynos: drop drmP.h usage 2019-06-27 19:56:09 +09:00
exynos_drm_crtc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos_drm_dma.c drm/exynos: Properly propagate return value in drm_iommu_attach_device() 2020-07-22 09:32:51 +02:00
exynos_drm_dpi.c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
exynos_drm_drv.c drm main pull for 5.4-rc1 2019-09-19 16:24:24 -07:00
exynos_drm_drv.h drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_dsi.c drm/exynos: dsi: Remove bridge node reference in error handling path in probe function 2020-10-01 13:18:01 +02:00
exynos_drm_fb.c drm/exynos: drop drmP.h usage 2019-06-27 19:56:09 +09:00
exynos_drm_fb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos_drm_fbdev.c drm/exynos: trigger build of all modules 2019-06-27 22:30:56 +09:00
exynos_drm_fbdev.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos_drm_fimc.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_fimd.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_g2d.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_g2d.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 423 2019-06-05 17:37:15 +02:00
exynos_drm_gem.c Revert "drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()" 2019-08-07 11:56:48 -04:00
exynos_drm_gem.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos_drm_gsc.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_ipp.c drm/exynos: drop use of drmP.h 2019-09-01 20:55:12 +09:00
exynos_drm_ipp.h drm/exynos: drop use of drmP.h 2019-09-01 20:55:12 +09:00
exynos_drm_mic.c drm/exynos: fix ref count leak in mic_pre_enable 2020-07-22 09:32:51 +02:00
exynos_drm_plane.c drm/exynos: drop drmP.h usage 2019-06-27 19:56:09 +09:00
exynos_drm_plane.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos_drm_rotator.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_scaler.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
exynos_drm_vidi.c drm/exynos: drop drmP.h usage 2019-06-27 19:56:09 +09:00
exynos_drm_vidi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos_hdmi.c drm/exynos: hdmi: don't leak enable HDMI_EN regulator if probe fails 2020-03-25 08:25:46 +01:00
exynos_mixer.c drm/exynos: Fix cleanup of IOMMU related objects 2020-04-01 11:01:53 +02:00
regs-decon7.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
regs-decon5433.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 423 2019-06-05 17:37:15 +02:00
regs-fimc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
regs-gsc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
regs-hdmi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
regs-mixer.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
regs-rotator.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
regs-scaler.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
regs-vp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00