aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_dp_mst_topology.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_dp_mst_topology.c')
-rw-r--r--drivers/gpu/drm/drm_dp_mst_topology.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index b1c63e9cdf8a..6d0d8e01f16e 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -941,7 +941,7 @@ static void drm_dp_free_mst_branch_device(struct kref *kref)
941 * in-memory topology state from being changed in the middle of critical 941 * in-memory topology state from being changed in the middle of critical
942 * operations like changing the internal state of payload allocations. This 942 * operations like changing the internal state of payload allocations. This
943 * means each branch and port will be considered to be connected to the rest 943 * means each branch and port will be considered to be connected to the rest
944 * of the topology until it's topology refcount reaches zero. Additionally, 944 * of the topology until its topology refcount reaches zero. Additionally,
945 * for ports this means that their associated &struct drm_connector will stay 945 * for ports this means that their associated &struct drm_connector will stay
946 * registered with userspace until the port's refcount reaches 0. 946 * registered with userspace until the port's refcount reaches 0.
947 * 947 *
@@ -979,8 +979,8 @@ static void drm_dp_free_mst_branch_device(struct kref *kref)
979 * same way as the C pointers used to reference a structure. 979 * same way as the C pointers used to reference a structure.
980 * 980 *
981 * As you can see in the above figure, every branch increments the topology 981 * As you can see in the above figure, every branch increments the topology
982 * refcount of it's children, and increments the malloc refcount of it's 982 * refcount of its children, and increments the malloc refcount of its
983 * parent. Additionally, every payload increments the malloc refcount of it's 983 * parent. Additionally, every payload increments the malloc refcount of its
984 * assigned port by 1. 984 * assigned port by 1.
985 * 985 *
986 * So, what would happen if MSTB #3 from the above figure was unplugged from 986 * So, what would happen if MSTB #3 from the above figure was unplugged from
@@ -997,9 +997,9 @@ static void drm_dp_free_mst_branch_device(struct kref *kref)
997 * of its parent, and finally its own malloc refcount. For MSTB #4 and port 997 * of its parent, and finally its own malloc refcount. For MSTB #4 and port
998 * #4, this means they both have been disconnected from the topology and freed 998 * #4, this means they both have been disconnected from the topology and freed
999 * from memory. But, because payload #2 is still holding a reference to port 999 * from memory. But, because payload #2 is still holding a reference to port
1000 * #3, port #3 is removed from the topology but it's &struct drm_dp_mst_port 1000 * #3, port #3 is removed from the topology but its &struct drm_dp_mst_port
1001 * is still accessible from memory. This also means port #3 has not yet 1001 * is still accessible from memory. This also means port #3 has not yet
1002 * decremented the malloc refcount of MSTB #3, so it's &struct 1002 * decremented the malloc refcount of MSTB #3, so its &struct
1003 * drm_dp_mst_branch will also stay allocated in memory until port #3's 1003 * drm_dp_mst_branch will also stay allocated in memory until port #3's
1004 * malloc refcount reaches 0. 1004 * malloc refcount reaches 0.
1005 * 1005 *
@@ -1139,7 +1139,7 @@ static void drm_dp_destroy_mst_branch_device(struct kref *kref)
1139 1139
1140/** 1140/**
1141 * drm_dp_mst_topology_try_get_mstb() - Increment the topology refcount of a 1141 * drm_dp_mst_topology_try_get_mstb() - Increment the topology refcount of a
1142 * branch device unless its zero 1142 * branch device unless it's zero
1143 * @mstb: &struct drm_dp_mst_branch to increment the topology refcount of 1143 * @mstb: &struct drm_dp_mst_branch to increment the topology refcount of
1144 * 1144 *
1145 * Attempts to grab a topology reference to @mstb, if it hasn't yet been 1145 * Attempts to grab a topology reference to @mstb, if it hasn't yet been
@@ -1265,7 +1265,7 @@ static void drm_dp_destroy_port(struct kref *kref)
1265 1265
1266/** 1266/**
1267 * drm_dp_mst_topology_try_get_port() - Increment the topology refcount of a 1267 * drm_dp_mst_topology_try_get_port() - Increment the topology refcount of a
1268 * port unless its zero 1268 * port unless it's zero
1269 * @port: &struct drm_dp_mst_port to increment the topology refcount of 1269 * @port: &struct drm_dp_mst_port to increment the topology refcount of
1270 * 1270 *
1271 * Attempts to grab a topology reference to @port, if it hasn't yet been 1271 * Attempts to grab a topology reference to @port, if it hasn't yet been
@@ -1471,7 +1471,7 @@ static bool drm_dp_port_setup_pdt(struct drm_dp_mst_port *port)
1471 port->mstb->port_parent = port; 1471 port->mstb->port_parent = port;
1472 /* 1472 /*
1473 * Make sure this port's memory allocation stays 1473 * Make sure this port's memory allocation stays
1474 * around until it's child MSTB releases it 1474 * around until its child MSTB releases it
1475 */ 1475 */
1476 drm_dp_mst_get_port_malloc(port); 1476 drm_dp_mst_get_port_malloc(port);
1477 1477
@@ -2271,7 +2271,7 @@ static int drm_dp_destroy_payload_step1(struct drm_dp_mst_topology_mgr *mgr,
2271 struct drm_dp_payload *payload) 2271 struct drm_dp_payload *payload)
2272{ 2272{
2273 DRM_DEBUG_KMS("\n"); 2273 DRM_DEBUG_KMS("\n");
2274 /* its okay for these to fail */ 2274 /* it's okay for these to fail */
2275 if (port) { 2275 if (port) {
2276 drm_dp_payload_send_msg(mgr, port, id, 0); 2276 drm_dp_payload_send_msg(mgr, port, id, 0);
2277 } 2277 }
@@ -2947,7 +2947,7 @@ enum drm_connector_status drm_dp_mst_detect_port(struct drm_connector *connector
2947{ 2947{
2948 enum drm_connector_status status = connector_status_disconnected; 2948 enum drm_connector_status status = connector_status_disconnected;
2949 2949
2950 /* we need to search for the port in the mgr in case its gone */ 2950 /* we need to search for the port in the mgr in case it's gone */
2951 port = drm_dp_mst_topology_get_port_validated(mgr, port); 2951 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2952 if (!port) 2952 if (!port)
2953 return connector_status_disconnected; 2953 return connector_status_disconnected;
@@ -3013,7 +3013,7 @@ struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_
3013{ 3013{
3014 struct edid *edid = NULL; 3014 struct edid *edid = NULL;
3015 3015
3016 /* we need to search for the port in the mgr in case its gone */ 3016 /* we need to search for the port in the mgr in case it's gone */
3017 port = drm_dp_mst_topology_get_port_validated(mgr, port); 3017 port = drm_dp_mst_topology_get_port_validated(mgr, port);
3018 if (!port) 3018 if (!port)
3019 return NULL; 3019 return NULL;
@@ -3180,7 +3180,7 @@ EXPORT_SYMBOL(drm_dp_atomic_find_vcpi_slots);
3180 * Releases any VCPI slots that have been allocated to a port in the atomic 3180 * Releases any VCPI slots that have been allocated to a port in the atomic
3181 * state. Any atomic drivers which support MST must call this function in 3181 * state. Any atomic drivers which support MST must call this function in
3182 * their &drm_connector_helper_funcs.atomic_check() callback when the 3182 * their &drm_connector_helper_funcs.atomic_check() callback when the
3183 * connector will no longer have VCPI allocated (e.g. because it's CRTC was 3183 * connector will no longer have VCPI allocated (e.g. because its CRTC was
3184 * removed) when it had VCPI allocated in the previous atomic state. 3184 * removed) when it had VCPI allocated in the previous atomic state.
3185 * 3185 *
3186 * It is OK to call this even if @port has been removed from the system. 3186 * It is OK to call this even if @port has been removed from the system.
@@ -3268,7 +3268,7 @@ bool drm_dp_mst_allocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
3268 DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n", 3268 DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n",
3269 pbn, port->vcpi.num_slots); 3269 pbn, port->vcpi.num_slots);
3270 3270
3271 /* Keep port allocated until it's payload has been removed */ 3271 /* Keep port allocated until its payload has been removed */
3272 drm_dp_mst_get_port_malloc(port); 3272 drm_dp_mst_get_port_malloc(port);
3273 drm_dp_mst_topology_put_port(port); 3273 drm_dp_mst_topology_put_port(port);
3274 return true; 3274 return true;
@@ -3300,7 +3300,7 @@ EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots);
3300void drm_dp_mst_reset_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) 3300void drm_dp_mst_reset_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
3301{ 3301{
3302 /* 3302 /*
3303 * A port with VCPI will remain allocated until it's VCPI is 3303 * A port with VCPI will remain allocated until its VCPI is
3304 * released, no verified ref needed 3304 * released, no verified ref needed
3305 */ 3305 */
3306 3306
@@ -3317,7 +3317,7 @@ void drm_dp_mst_deallocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
3317 struct drm_dp_mst_port *port) 3317 struct drm_dp_mst_port *port)
3318{ 3318{
3319 /* 3319 /*
3320 * A port with VCPI will remain allocated until it's VCPI is 3320 * A port with VCPI will remain allocated until its VCPI is
3321 * released, no verified ref needed 3321 * released, no verified ref needed
3322 */ 3322 */
3323 3323