On Mon, Sep 20, 2021 at 10:49:55PM +0200, Heiko Stübner wrote:
Hi Maxime,
Am Freitag, 17. September 2021, 20:09:25 CEST schrieb Maxime Ripard:
By depending on devm_drm_panel_bridge_add(), devm_drm_of_get_bridge() introduces a circular dependency between the modules drm (where devm_drm_of_get_bridge() ends up) and drm_kms_helper (where devm_drm_panel_bridge_add() is).
Fix this by moving devm_drm_of_get_bridge() to bridge/panel.c and thus drm_kms_helper.
Fixes: 87ea95808d53 ("drm/bridge: Add a function to abstract away panels") Reported-by: Stephen Rothwell sfr@canb.auug.org.au Signed-off-by: Maxime Ripard maxime@cerno.tech
I started with drm-misc-next at
- e46ad85acd90 ("MAINTAINERS: add Andrey as the DRM GPU scheduler maintainer")
with your patch on top, I end up with:
make[1]: Verzeichnis „/home/devel/hstuebner/02_drm/linux/_build-arm64“ wird betreten GEN Makefile CALL ../scripts/atomic/check-atomics.sh CALL ../scripts/checksyscalls.sh CC [M] drivers/gpu/drm/bridge/panel.o CC [M] drivers/gpu/drm/drm_bridge.o LD [M] drivers/gpu/drm/drm.o ../drivers/gpu/drm/bridge/panel.c: In function ‘devm_drm_of_get_bridge’: ../drivers/gpu/drm/bridge/panel.c:359:8: error: implicit declaration of function ‘drm_of_find_panel_or_bridge’ [-Werror=implicit-function-declaration] 359 | ret = drm_of_find_panel_or_bridge(np, port, endpoint, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
adding the following makes it compile again: diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c index 285a079cdef5..b32295abd9e7 100644 --- a/drivers/gpu/drm/bridge/panel.c +++ b/drivers/gpu/drm/bridge/panel.c @@ -9,6 +9,7 @@ #include <drm/drm_connector.h> #include <drm/drm_encoder.h> #include <drm/drm_modeset_helper_vtables.h> +#include <drm/drm_of.h> #include <drm/drm_panel.h> #include <drm/drm_print.h> #include <drm/drm_probe_helper.h>
I obviously also ran into the circular dependency-issue right now, so with the above addition:
Tested-by: Heiko Stuebner heiko@sntech.de
I'm not sure how I missed that, thanks for testing :)
I've just pushed the patch with your fix to drm-misc-fixes
Maxime