linux/drivers/gpu/drm/imx
Philipp Zabel 310944d148 drm/imx: Match imx-ipuv3-crtc components using device node in platform data
The component master driver imx-drm-core matches component devices using
their of_node. Since commit 950b410dd1ab ("gpu: ipu-v3: Fix imx-ipuv3-crtc
module autoloading"), the imx-ipuv3-crtc dev->of_node is not set during
probing. Before that, of_node was set and caused an of: modalias to be
used instead of the platform: modalias, which broke module autoloading.

On the other hand, if dev->of_node is not set yet when the imx-ipuv3-crtc
probe function calls component_add, component matching in imx-drm-core
fails. While dev->of_node will be set once the next component tries to
bring up the component master, imx-drm-core component binding will never
succeed if one of the crtc devices is probed last.

Add of_node to the component platform data and match against the
pdata->of_node instead of dev->of_node in imx-drm-core to work around
this problem.

Cc: <stable@vger.kernel.org> # 4.4.x
Fixes: 950b410dd1ab ("gpu: ipu-v3: Fix imx-ipuv3-crtc module autoloading")
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Lothar Waßmann <LW@KARO-electronics.de>
Tested-by: Heiko Schocher <hs@denx.de>
Tested-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
2016-05-23 12:35:11 +02:00
..
dw_hdmi-imx.c drm/imx: dw_hdmi: Don't call platform_set_drvdata() 2016-03-31 11:24:28 +02:00
imx-drm-core.c drm/imx: Match imx-ipuv3-crtc components using device node in platform data 2016-05-23 12:35:11 +02:00
imx-drm.h drm/imx: remove imx_drm_encoder_get_mux_id 2016-03-01 08:33:38 +01:00
imx-ldb.c imx-drm vblank IRQ control, fence support, and of endpoint helpers 2016-03-02 17:52:51 +10:00
imx-tve.c drm/imx: removed optional dummy encoder mode_fixup function. 2016-02-16 15:33:05 +01:00
ipuv3-crtc.c drm/imx: Match imx-ipuv3-crtc components using device node in platform data 2016-05-23 12:35:11 +02:00
ipuv3-plane.c drm/imx: ipuv3-plane: Configure DMFC wait4eot bit after slots are determined 2016-03-31 11:24:35 +02:00
ipuv3-plane.h drm/imx: ipuv3-plane: Add more thorough checks for plane parameter limitations 2016-03-31 11:23:31 +02:00
Kconfig dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
Makefile drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi 2015-01-07 18:31:56 +01:00
parallel-display.c drm/imx: removed optional dummy encoder mode_fixup function. 2016-02-16 15:33:05 +01:00