On Thu, 16 Nov 2023 at 12:29, Sui Jingfeng <sui.jingfeng@xxxxxxxxx> wrote: > > Hi, > > > On 2023/11/15 00:30, Dmitry Baryshkov wrote: > >> @@ -703,14 +704,32 @@ static int it66121_bridge_attach(struct drm_bridge *bridge, > >> enum drm_bridge_attach_flags flags) > >> { > >> struct it66121_ctx *ctx = bridge_to_it66121(bridge); > >> + struct drm_bridge *next_bridge = ctx->next_bridge; > >> + struct drm_encoder *encoder = bridge->encoder; > >> int ret; > >> > >> - if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) > >> - return -EINVAL; > >> + if (next_bridge) { > >> + if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) { > >> + WARN_ON(1); > > Why? At least use WARN() instead > > If (next_bridge) is true, it says that the driver *already* known that > it66121 have a next bridges attached. Then it66121 driver should certainly > attach it, no matter what it is. Either a connector or another display bridge. > It also says that this is a DT-based system on such a case. CallingWARN_ON(1) here helps to see(print) which DC driver is doing the wired > things. Ok, I will remove the WARN_ON(1) on the next version. That's why I pointed you to WARN(). WARN_ON(1) gives no information to the user. WARN() allows you to add a message. -- With best wishes Dmitry