On Sat, 9 Mar 2024 at 14:03, Sui Jingfeng <sui.jingfeng@xxxxxxxxx> wrote: > > Hi, > > > On 2024/3/9 18:39, Dmitry Baryshkov wrote: > >> The code path of "creating a connector" plus the code path of "not creating a connector" > >> forms a 'side-by-side' implementation imo. > >> > >> Besides, I have repeated many times: the DT already speak everything. > >> Device drivers can completely know if there is a display connector OF device created and how many > >> display bridges in the whole chain. If there are connector device node in the DT, then it should > >> has a device driver bound to it(instead of create it manually) for a perfect implementation. As > >> you told me we should not*over play* the device-driver model, right? > > Please, don't mix the connector node in DT and the drm_connector. If > > you check the code, you will see that the driver for hdmi-connector, > > dp-connector and other such devices creates a drm_bridge. > > > OK, I'm not mixed them, I'm very clear from the very beginning. I have checked > the code years ago. Let's make it clear by iterating one more time: > > If DT contains one or more HDMI connector node, then there will be one or > more display connector platform devices created by OF core, Then, according to > your "don't overplay device-driver model" criterion or modern drm bridge standard, > we shouldn't create a display connector instance in the drm birdge driver, right? Yeah, if the platform is updated, yes, we do. If there is an hdmi-connector node, I can only assume that the DRM driver also has been updated to pass the DRM_BRIDGE_ATTACH_NO_CONNECTOR. In such case the lt9611uxc driver will not create the drm_connector and everything works as expected. If this is one of the legacy platforms, the DRM driver will not pass the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag, but at the same time the DT will not have the connector node. > > As otherwise we will have two display connector driver (or code) for a single entity, > right? > > Another side effect is that > when you create a hdmi display connector instance manually without reference to the > DT, then *you made an assumption!*. But there are users who have don't a different > need(or different typology), for example, they need to read edid directly from the > KMS driver side. This may because the i2c bus is directly connected to the connector > part, but the display bridge's I2C slave interface. sii9022, it66121 and tfp410 support > this kind of usage. > > So the real problem is that it is a policy level code when you creating a hdmi > display connector instance manually without reference to the DT in a common drm bridge > driver, not a mechanism. Only if requested by the DRM driver itself. -- With best wishes Dmitry