[ Old code... ] Hello Linus Walleij, The patch 9ab12e88a0b4: "drm/tve200: Clean up panel bridging" from Sep 11, 2017, leads to the following Smatch static checker warning: drivers/gpu/drm/tve200/tve200_drv.c:96 tve200_modeset_init() warn: missing error code here? '_dev_err()' failed. 'ret' = '0' drivers/gpu/drm/tve200/tve200_drv.c 62 static int tve200_modeset_init(struct drm_device *dev) 63 { 64 struct drm_mode_config *mode_config; 65 struct tve200_drm_dev_private *priv = dev->dev_private; 66 struct drm_panel *panel; 67 struct drm_bridge *bridge; 68 int ret = 0; 69 70 drm_mode_config_init(dev); 71 mode_config = &dev->mode_config; 72 mode_config->funcs = &mode_config_funcs; 73 mode_config->min_width = 352; 74 mode_config->max_width = 720; 75 mode_config->min_height = 240; 76 mode_config->max_height = 576; 77 78 ret = drm_of_find_panel_or_bridge(dev->dev->of_node, 79 0, 0, &panel, &bridge); 80 if (ret && ret != -ENODEV) 81 return ret; There is a return check here. 82 if (panel) { 83 bridge = drm_panel_bridge_add_typed(panel, 84 DRM_MODE_CONNECTOR_Unknown); 85 if (IS_ERR(bridge)) { 86 ret = PTR_ERR(bridge); 87 goto out_bridge; 88 } 89 } else { 90 /* 91 * TODO: when we are using a different bridge than a panel 92 * (such as a dumb VGA connector) we need to devise a different 93 * method to get the connector out of the bridge. 94 */ 95 dev_err(dev->dev, "the bridge is not a panel\n"); --> 96 goto out_bridge;