diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c index 2e3a0543760d..e3281d4e3e41 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c @@ -765,7 +765,7 @@ amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force)  	return ret;  } -static void amdgpu_connector_destroy(struct drm_connector *connector) +static void amdgpu_connector_unregister(struct drm_connector *connector)  {  	struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); @@ -773,6 +773,12 @@ static void amdgpu_connector_destroy(struct drm_connector *connector)  		drm_dp_aux_unregister(&amdgpu_connector->ddc_bus->aux);  		amdgpu_connector->ddc_bus->has_aux = false;  	} +} + +static void amdgpu_connector_destroy(struct drm_connector *connector) +{ +	struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); +  	amdgpu_connector_free_edid(connector);  	kfree(amdgpu_connector->con_priv);  	drm_connector_unregister(connector); @@ -826,6 +832,7 @@ static const struct drm_connector_funcs amdgpu_connector_lvds_funcs = {  	.dpms = drm_helper_connector_dpms,  	.detect = amdgpu_connector_lvds_detect,  	.fill_modes = drm_helper_probe_single_connector_modes, +	.early_unregister = amdgpu_connector_unregister,  	.destroy = amdgpu_connector_destroy,  	.set_property = amdgpu_connector_set_lcd_property,  }; @@ -936,6 +943,7 @@ static const struct drm_connector_funcs amdgpu_connector_vga_funcs = {  	.dpms = drm_helper_connector_dpms,  	.detect = amdgpu_connector_vga_detect,  	.fill_modes = drm_helper_probe_single_connector_modes, +	.early_unregister = amdgpu_connector_unregister,  	.destroy = amdgpu_connector_destroy,  	.set_property = amdgpu_connector_set_property,  }; @@ -1203,6 +1211,7 @@ static const struct drm_connector_funcs amdgpu_connector_dvi_funcs = {  	.detect = amdgpu_connector_dvi_detect,  	.fill_modes = drm_helper_probe_single_connector_modes,  	.set_property = amdgpu_connector_set_property, +	.early_unregister = amdgpu_connector_unregister,  	.destroy = amdgpu_connector_destroy,  	.force = amdgpu_connector_dvi_force,  }; @@ -1493,6 +1502,7 @@ static const struct drm_connector_funcs amdgpu_connector_dp_funcs = {  	.detect = amdgpu_connector_dp_detect,  	.fill_modes = drm_helper_probe_single_connector_modes,  	.set_property = amdgpu_connector_set_property, +	.early_unregister = amdgpu_connector_unregister,  	.destroy = amdgpu_connector_destroy,  	.force = amdgpu_connector_dvi_force,  }; @@ -1502,6 +1512,7 @@ static const struct drm_connector_funcs amdgpu_connector_edp_funcs = {  	.detect = amdgpu_connector_dp_detect,  	.fill_modes = drm_helper_probe_single_connector_modes,  	.set_property = amdgpu_connector_set_lcd_property, +	.early_unregister = amdgpu_connector_unregister,  	.destroy = amdgpu_connector_destroy,  	.force = amdgpu_connector_dvi_force,  };  | 
