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?
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.