[bug report] drm/bridge: Add ti-tfp410 DVI transmitter driver

Jyri Sarha jsarha at ti.com
Wed Dec 7 14:20:34 UTC 2016


On 12/06/16 15:28, Dan Carpenter wrote:
> Hello Jyri Sarha,
> 
> The patch dc55ac3b52e6: "drm/bridge: Add ti-tfp410 DVI transmitter
> driver" from Oct 31, 2016, leads to the following static checker
> warning:
> 
> 	drivers/gpu/drm/bridge/ti-tfp410.c:141 tfp410_get_connector_ddc()
> 	warn: missing error code here? 'of_graph_get_remote_port_parent()' failed.
> 
> drivers/gpu/drm/bridge/ti-tfp410.c
>    128  static int tfp410_get_connector_ddc(struct tfp410 *dvi)
>    129  {
>    130          struct device_node *ep = NULL, *connector_node = NULL;
>    131          struct device_node *ddc_phandle = NULL;
>    132          int ret = 0;
>    133  
>    134          /* port at 1 is the connector node */
>    135          ep = of_graph_get_endpoint_by_regs(dvi->dev->of_node, 1, -1);
>    136          if (!ep)
>    137                  goto fail;
>                         ^^^^^^^^^
>    138  
>    139          connector_node = of_graph_get_remote_port_parent(ep);
>    140          if (!connector_node)
>    141                  goto fail;
>                         ^^^^^^^^^
> 
> 
>    142  
>    143          ddc_phandle = of_parse_phandle(connector_node, "ddc-i2c-bus", 0);
>    144          if (!ddc_phandle)
>    145                  goto fail;
>                         ^^^^^^^^^
> 
> All these goto fails feel like we should be returning an error code.
> Otherwise we could change the name to "goto success;"?
> 

The label text could be seen misleading, but code runs as I intended it.
If we can not extract the ddc i2c controller from the binding, we simply
continue without it. The only exception is if we find the phandle but
not the i2c controller, yet.

This implementation is a hack in the first place. The code will be
removed when DRM has a proper generic connector support.

Best regards,
Jyri

>    146  
>    147          dvi->ddc = of_get_i2c_adapter_by_node(ddc_phandle);
>    148          if (dvi->ddc)
>    149                  dev_info(dvi->dev, "Connector's ddc i2c bus found\n");
>    150          else
>    151                  ret = -EPROBE_DEFER;
>    152  
>    153  fail:
>    154          of_node_put(ep);
>    155          of_node_put(connector_node);
>    156          of_node_put(ddc_phandle);
>    157          return ret;
>    158  }
> 
> regards,
> dan carpenter
> 



More information about the dri-devel mailing list