[PATCH master] video: dw-hdmi: fix I2C controller probe breakage

Alexander Shiyan eagle.alexander923 at gmail.com
Tue Dec 17 06:44:48 PST 2024


Thanks!

Tested-by: Alexander Shiyan <eagle.alexander923 at gmail.com>

вт, 17 дек. 2024 г. в 17:08, Ahmad Fatoum <a.fatoum at pengutronix.de>:
>
> 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 at 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 at gmail.com>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
>  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
>



More information about the barebox mailing list