Thanks! Tested-by: Alexander Shiyan <eagle.alexander923@xxxxxxxxx> вт, 17 дек. 2024 г. в 17:08, Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx>: > > The dw-hdmi I2C controller binding doesn't support listing I2C slaves > as child nodes in the device tree. This is fine as the EDID I2C address > is well-known, but trying to parse the dw-hdmi device tree node as if it > were a normal I2C controller will fail: > > ERROR: i2c11: of_i2c: invalid reg on /hdmi@fe0a0000/ports > > Fix this by only use the device tree node to find the alias if any and > not passing it alone to the I2C core. > > Fixes: 474b6cb42ea5 ("video: dw-hdmi: populate missing I2C adapter device node") > Reported-by: Alexander Shiyan <eagle.alexander923@xxxxxxxxx> > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > drivers/video/dw-hdmi.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/dw-hdmi.c b/drivers/video/dw-hdmi.c > index cd5de17e9bd7..b86f3c7366c1 100644 > --- a/drivers/video/dw-hdmi.c > +++ b/drivers/video/dw-hdmi.c > @@ -433,9 +433,15 @@ static struct i2c_adapter *dw_hdmi_i2c_adapter(struct dw_hdmi *hdmi) > > adap = &i2c->adap; > adap->dev.parent = hdmi->dev; > - adap->dev.of_node = hdmi->dev->of_node; > adap->master_xfer = dw_hdmi_i2c_xfer; > - adap->nr = -1; > + > + /* > + * The binding doesn't support listing slaves as OF child nodes, > + * therefore we use the device tree node only to check if > + * there is an alias. > + */ > + adap->dev.of_node = NULL; > + adap->nr = of_alias_get_id(hdmi->dev->of_node, "i2c"); > > i2c->rinfo.sda_gpio = of_get_named_gpio_flags(hdmi->dev->of_node, > "sda-gpios", 0, > -- > 2.39.5 >