disp: msm: dp: add operation to free the mst port object
Add a release operation to free the mst port object when the object refcount becomes zero. Change-Id: If628e6da7ccf90d334574ed0f627788fb0a1fa2f Signed-off-by: Samantha Tran <samtran@codeaurora.org>
This commit is contained in:
@@ -152,6 +152,13 @@ struct dp_mst_encoder_info_cache {
|
|||||||
struct dp_mst_private dp_mst;
|
struct dp_mst_private dp_mst;
|
||||||
struct dp_mst_encoder_info_cache dp_mst_enc_cache;
|
struct dp_mst_encoder_info_cache dp_mst_enc_cache;
|
||||||
|
|
||||||
|
static void dp_mst_sim_destroy_port(struct kref *ref)
|
||||||
|
{
|
||||||
|
struct drm_dp_mst_port *port = container_of(ref,
|
||||||
|
struct drm_dp_mst_port, kref);
|
||||||
|
kfree(port);
|
||||||
|
}
|
||||||
|
|
||||||
/* DRM DP MST Framework simulator OPs */
|
/* DRM DP MST Framework simulator OPs */
|
||||||
static void dp_mst_sim_add_port(struct dp_mst_private *mst,
|
static void dp_mst_sim_add_port(struct dp_mst_private *mst,
|
||||||
struct dp_mst_sim_port_data *port_msg)
|
struct dp_mst_sim_port_data *port_msg)
|
||||||
@@ -196,13 +203,14 @@ static void dp_mst_sim_add_port(struct dp_mst_private *mst,
|
|||||||
mutex_lock(&mstb->mgr->lock);
|
mutex_lock(&mstb->mgr->lock);
|
||||||
list_del(&port->next);
|
list_del(&port->next);
|
||||||
mutex_unlock(&mstb->mgr->lock);
|
mutex_unlock(&mstb->mgr->lock);
|
||||||
|
kref_put(&port->kref, dp_mst_sim_destroy_port);
|
||||||
goto put_port;
|
goto put_port;
|
||||||
}
|
}
|
||||||
(*mstb->mgr->cbs->register_connector)(port->connector);
|
(*mstb->mgr->cbs->register_connector)(port->connector);
|
||||||
}
|
}
|
||||||
|
|
||||||
put_port:
|
put_port:
|
||||||
kref_put(&port->kref, NULL);
|
kref_put(&port->kref, dp_mst_sim_destroy_port);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dp_mst_sim_link_probe_work(struct work_struct *work)
|
static void dp_mst_sim_link_probe_work(struct work_struct *work)
|
||||||
|
Reference in New Issue
Block a user