diff options
Diffstat (limited to 'drivers/gpu/drm/msm/dsi/dsi_manager.c')
| -rw-r--r-- | drivers/gpu/drm/msm/dsi/dsi_manager.c | 27 | 
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c index 58ba7ec17f51..c8d1f19c9a6d 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c @@ -198,9 +198,13 @@ static enum drm_connector_status dsi_mgr_connector_detect(  static void dsi_mgr_connector_destroy(struct drm_connector *connector)  { +	struct dsi_connector *dsi_connector = to_dsi_connector(connector); +  	DBG(""); -	drm_connector_unregister(connector); +  	drm_connector_cleanup(connector); + +	kfree(dsi_connector);  }  static void dsi_dual_connector_fix_modes(struct drm_connector *connector) @@ -538,12 +542,9 @@ struct drm_connector *msm_dsi_manager_connector_init(u8 id)  	struct dsi_connector *dsi_connector;  	int ret, i; -	dsi_connector = devm_kzalloc(msm_dsi->dev->dev, -				sizeof(*dsi_connector), GFP_KERNEL); -	if (!dsi_connector) { -		ret = -ENOMEM; -		goto fail; -	} +	dsi_connector = kzalloc(sizeof(*dsi_connector), GFP_KERNEL); +	if (!dsi_connector) +		return ERR_PTR(-ENOMEM);  	dsi_connector->id = id; @@ -552,7 +553,7 @@ struct drm_connector *msm_dsi_manager_connector_init(u8 id)  	ret = drm_connector_init(msm_dsi->dev, connector,  			&dsi_mgr_connector_funcs, DRM_MODE_CONNECTOR_DSI);  	if (ret) -		goto fail; +		return ERR_PTR(ret);  	drm_connector_helper_add(connector, &dsi_mgr_conn_helper_funcs); @@ -565,21 +566,11 @@ struct drm_connector *msm_dsi_manager_connector_init(u8 id)  	connector->interlace_allowed = 0;  	connector->doublescan_allowed = 0; -	ret = drm_connector_register(connector); -	if (ret) -		goto fail; -  	for (i = 0; i < MSM_DSI_ENCODER_NUM; i++)  		drm_mode_connector_attach_encoder(connector,  						msm_dsi->encoders[i]);  	return connector; - -fail: -	if (connector) -		dsi_mgr_connector_destroy(connector); - -	return ERR_PTR(ret);  }  /* initialize bridge */  |