• Paulo Zanoni's avatar
    drm/i915: fix the "ghost eDP" connector unwind path · b2f246a8
    Paulo Zanoni authored
    Because calling intel_dp_destroy inside intel_edp_init_connector is
    just wrong. This is the initialization path, so we should properly
    unwind all the initialization through the whole caller stack.
    
    On the intel_dp_destroy function we do the following:
    1 - Free edid if it exists
    2 - Call intel_panel_fini in case it's eDP
    3 - Call drm_sysfs_connector_remove
    4 - Call drm_connector_cleanup
    5 - Free the connector
    
    And here is how we unwind each specific step:
    1 - No need as we still didn't assign anything
    2 - No need as we still didn't call intel_panel_init
    3 - Call it in the same function that called drm_sysfs_connector_add
    4 - Call it in the same function that called drm_connector_init
    5 - Free it in the same function that allocated it
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: default avatarZoltan Nyul <zoltan.nyul@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b2f246a8
intel_dp.c 89.4 KB