97 } 98 99 ret = tve200_display_init(dev); 100 if (ret) { 101 dev_err(dev->dev, "failed to init display\n"); 102 goto out_bridge; 103 } 104 105 ret = drm_simple_display_pipe_attach_bridge(&priv->pipe, 106 bridge); 107 if (ret) { 108 dev_err(dev->dev, "failed to attach bridge\n"); 109 goto out_bridge; 110 } 111 112 priv->panel = panel; 113 priv->connector = drm_panel_bridge_connector(bridge); 114 priv->bridge = bridge; 115 116 dev_info(dev->dev, "attached to panel %s\n", 117 dev_name(panel->dev)); 118 119 ret = drm_vblank_init(dev, 1); 120 if (ret) { 121 dev_err(dev->dev, "failed to init vblank\n"); 122 goto out_bridge; 123 } 124 125 drm_mode_config_reset(dev); 126 drm_kms_helper_poll_init(dev); 127 128 goto finish; 129 130 out_bridge: 131 if (panel) 132 drm_panel_bridge_remove(bridge); 133 drm_mode_config_cleanup(dev); 134 finish: 135 return ret; 136 } regards, dan carpenter