drm/imx: Match imx-ipuv3-crtc components using device node in platform data
authorPhilipp Zabel <p.zabel@pengutronix.de>
Thu, 12 May 2016 13:00:44 +0000 (15:00 +0200)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 23 May 2016 10:35:11 +0000 (12:35 +0200)
commit310944d148e3600dcff8b346bee7fa01d34903b1
treeca14e1344f6122ee02f005e5e67bf8d9a75f8f80
parent2dcd0af568b0cf583645c8a317dd12e344b1c72a
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>
drivers/gpu/drm/imx/imx-drm-core.c
drivers/gpu/drm/imx/ipuv3-crtc.c
drivers/gpu/ipu-v3/ipu-common.c
include/video/imx-ipu-v3.h