drm/tilcdc: fix double kfree
[deliverable/linux.git] / drivers / gpu / drm / tilcdc / tilcdc_panel.c
index 09176654fddb9ccc2aba3a697ec58192516c6245..b0b9396f41a626c55cf5815dbdded2e4a6e39e91 100644 (file)
@@ -151,6 +151,7 @@ struct panel_connector {
 static void panel_connector_destroy(struct drm_connector *connector)
 {
        struct panel_connector *panel_connector = to_panel_connector(connector);
+       drm_sysfs_connector_remove(connector);
        drm_connector_cleanup(connector);
        kfree(panel_connector);
 }
@@ -247,7 +248,7 @@ static struct drm_connector *panel_connector_create(struct drm_device *dev,
        if (ret)
                goto fail;
 
-       drm_sysfs_connector_add(connector);
+       drm_connector_register(connector);
 
        return connector;
 
@@ -285,10 +286,8 @@ static void panel_destroy(struct tilcdc_module *mod)
 {
        struct panel_module *panel_mod = to_panel_module(mod);
 
-       if (panel_mod->timings) {
+       if (panel_mod->timings)
                display_timings_release(panel_mod->timings);
-               kfree(panel_mod->timings);
-       }
 
        tilcdc_module_cleanup(mod);
        kfree(panel_mod->info);
@@ -393,6 +392,8 @@ static int panel_probe(struct platform_device *pdev)
                goto fail;
        }
 
+       mod->preferred_bpp = panel_mod->info->bpp;
+
        panel_mod->backlight = of_find_backlight_by_node(node);
        if (panel_mod->backlight)
                dev_info(&pdev->dev, "found backlight\n");
This page took 0.028555 seconds and 5 git commands to generate.