drm: of: Properly try all possible cases for bridge/panel detection
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>
Tue, 29 Mar 2022 13:27:32 +0000 (15:27 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 30 Mar 2022 08:16:05 +0000 (10:16 +0200)
commit67bae5f28c895f8737a1974c3f31cf12b9170b14
tree22a084d54258c535c2169a11fbcecbfe3f84042e
parentc42ee39c1e78224d3a81bdbe0600abe4581226ed
drm: of: Properly try all possible cases for bridge/panel detection

While bridge/panel detection was initially relying on the usual
port/ports-based of graph detection, it was recently changed to
perform the lookup on any child node that is not port/ports
instead when such a node is available, with no fallback on the
usual way.

This results in breaking detection when a child node is present
but does not contain any panel or bridge node, even when the
usual port/ports-based of graph is there.

In order to support both situations properly, this commit reworks
the logic to try both options and not just one of the two: it will
only return -EPROBE_DEFER when both have failed.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Fixes: 80253168dbfd ("drm: of: Lookup if child node has panel or bridge")
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220329132732.628474-1-paul.kocialkowski@bootlin.com
drivers/gpu/drm/drm_of.c