aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_dp_mst_topology.c
diff options
context:
space:
mode:
authorLyude Paul <lyude@redhat.com>2019-01-10 19:53:28 -0500
committerLyude Paul <lyude@redhat.com>2019-01-10 20:12:19 -0500
commitd0757afd00d71dca98268d09884dc6248743d8ce (patch)
tree502ced21f05056b973a6365b63bd768de9cb400b /drivers/gpu/drm/drm_dp_mst_topology.c
parent4afb8a26b53a6d971c884f54a9ce4e5e427123cf (diff)
drm/dp_mst: Rename drm_dp_mst_get_validated_(port|mstb)_ref and friends
s/drm_dp_get_validated_port_ref/drm_dp_mst_topology_get_port_validated/ s/drm_dp_put_port/drm_dp_mst_topology_put_port/ s/drm_dp_get_validated_mstb_ref/drm_dp_mst_topology_get_mstb_validated/ s/drm_dp_put_mst_branch_device/drm_dp_mst_topology_put_mstb/ This is a much more consistent naming scheme, and will make even more sense once we redesign how the current refcounting scheme here works. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Daniel Vetter <daniel@ffwll.ch> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Cc: David Airlie <airlied@redhat.com> Cc: Jerry Zuo <Jerry.Zuo@amd.com> Cc: Juston Li <juston.li@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190111005343.17443-6-lyude@redhat.com
Diffstat (limited to 'drivers/gpu/drm/drm_dp_mst_topology.c')
-rw-r--r--drivers/gpu/drm/drm_dp_mst_topology.c114
1 files changed, 62 insertions, 52 deletions
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 75cca6a843fb..074e985093ca 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -46,7 +46,7 @@ static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
46 char *buf); 46 char *buf);
47static int test_calc_pbn_mode(void); 47static int test_calc_pbn_mode(void);
48 48
49static void drm_dp_put_port(struct drm_dp_mst_port *port); 49static void drm_dp_mst_topology_put_port(struct drm_dp_mst_port *port);
50 50
51static int drm_dp_dpcd_write_payload(struct drm_dp_mst_topology_mgr *mgr, 51static int drm_dp_dpcd_write_payload(struct drm_dp_mst_topology_mgr *mgr,
52 int id, 52 int id,
@@ -888,7 +888,7 @@ static void drm_dp_destroy_mst_branch_device(struct kref *kref)
888 */ 888 */
889 list_for_each_entry_safe(port, tmp, &mstb->ports, next) { 889 list_for_each_entry_safe(port, tmp, &mstb->ports, next) {
890 list_del(&port->next); 890 list_del(&port->next);
891 drm_dp_put_port(port); 891 drm_dp_mst_topology_put_port(port);
892 } 892 }
893 893
894 /* drop any tx slots msg */ 894 /* drop any tx slots msg */
@@ -911,7 +911,7 @@ static void drm_dp_destroy_mst_branch_device(struct kref *kref)
911 kref_put(kref, drm_dp_free_mst_branch_device); 911 kref_put(kref, drm_dp_free_mst_branch_device);
912} 912}
913 913
914static void drm_dp_put_mst_branch_device(struct drm_dp_mst_branch *mstb) 914static void drm_dp_mst_topology_put_mstb(struct drm_dp_mst_branch *mstb)
915{ 915{
916 kref_put(&mstb->kref, drm_dp_destroy_mst_branch_device); 916 kref_put(&mstb->kref, drm_dp_destroy_mst_branch_device);
917} 917}
@@ -930,7 +930,7 @@ static void drm_dp_port_teardown_pdt(struct drm_dp_mst_port *port, int old_pdt)
930 case DP_PEER_DEVICE_MST_BRANCHING: 930 case DP_PEER_DEVICE_MST_BRANCHING:
931 mstb = port->mstb; 931 mstb = port->mstb;
932 port->mstb = NULL; 932 port->mstb = NULL;
933 drm_dp_put_mst_branch_device(mstb); 933 drm_dp_mst_topology_put_mstb(mstb);
934 break; 934 break;
935 } 935 }
936} 936}
@@ -970,12 +970,14 @@ static void drm_dp_destroy_port(struct kref *kref)
970 kfree(port); 970 kfree(port);
971} 971}
972 972
973static void drm_dp_put_port(struct drm_dp_mst_port *port) 973static void drm_dp_mst_topology_put_port(struct drm_dp_mst_port *port)
974{ 974{
975 kref_put(&port->kref, drm_dp_destroy_port); 975 kref_put(&port->kref, drm_dp_destroy_port);
976} 976}
977 977
978static struct drm_dp_mst_branch *drm_dp_mst_get_validated_mstb_ref_locked(struct drm_dp_mst_branch *mstb, struct drm_dp_mst_branch *to_find) 978static struct drm_dp_mst_branch *
979drm_dp_mst_topology_get_mstb_validated_locked(struct drm_dp_mst_branch *mstb,
980 struct drm_dp_mst_branch *to_find)
979{ 981{
980 struct drm_dp_mst_port *port; 982 struct drm_dp_mst_port *port;
981 struct drm_dp_mst_branch *rmstb; 983 struct drm_dp_mst_branch *rmstb;
@@ -985,7 +987,8 @@ static struct drm_dp_mst_branch *drm_dp_mst_get_validated_mstb_ref_locked(struct
985 } 987 }
986 list_for_each_entry(port, &mstb->ports, next) { 988 list_for_each_entry(port, &mstb->ports, next) {
987 if (port->mstb) { 989 if (port->mstb) {
988 rmstb = drm_dp_mst_get_validated_mstb_ref_locked(port->mstb, to_find); 990 rmstb = drm_dp_mst_topology_get_mstb_validated_locked(
991 port->mstb, to_find);
989 if (rmstb) 992 if (rmstb)
990 return rmstb; 993 return rmstb;
991 } 994 }
@@ -993,12 +996,15 @@ static struct drm_dp_mst_branch *drm_dp_mst_get_validated_mstb_ref_locked(struct
993 return NULL; 996 return NULL;
994} 997}
995 998
996static struct drm_dp_mst_branch *drm_dp_get_validated_mstb_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_branch *mstb) 999static struct drm_dp_mst_branch *
1000drm_dp_mst_topology_get_mstb_validated(struct drm_dp_mst_topology_mgr *mgr,
1001 struct drm_dp_mst_branch *mstb)
997{ 1002{
998 struct drm_dp_mst_branch *rmstb = NULL; 1003 struct drm_dp_mst_branch *rmstb = NULL;
999 mutex_lock(&mgr->lock); 1004 mutex_lock(&mgr->lock);
1000 if (mgr->mst_primary) 1005 if (mgr->mst_primary)
1001 rmstb = drm_dp_mst_get_validated_mstb_ref_locked(mgr->mst_primary, mstb); 1006 rmstb = drm_dp_mst_topology_get_mstb_validated_locked(
1007 mgr->mst_primary, mstb);
1002 mutex_unlock(&mgr->lock); 1008 mutex_unlock(&mgr->lock);
1003 return rmstb; 1009 return rmstb;
1004} 1010}
@@ -1021,7 +1027,9 @@ static struct drm_dp_mst_port *drm_dp_mst_get_port_ref_locked(struct drm_dp_mst_
1021 return NULL; 1027 return NULL;
1022} 1028}
1023 1029
1024static struct drm_dp_mst_port *drm_dp_get_validated_port_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) 1030static struct drm_dp_mst_port *
1031drm_dp_mst_topology_get_port_validated(struct drm_dp_mst_topology_mgr *mgr,
1032 struct drm_dp_mst_port *port)
1025{ 1033{
1026 struct drm_dp_mst_port *rport = NULL; 1034 struct drm_dp_mst_port *rport = NULL;
1027 mutex_lock(&mgr->lock); 1035 mutex_lock(&mgr->lock);
@@ -1215,7 +1223,7 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb,
1215 list_del(&port->next); 1223 list_del(&port->next);
1216 mutex_unlock(&mstb->mgr->lock); 1224 mutex_unlock(&mstb->mgr->lock);
1217 /* drop port list reference */ 1225 /* drop port list reference */
1218 drm_dp_put_port(port); 1226 drm_dp_mst_topology_put_port(port);
1219 goto out; 1227 goto out;
1220 } 1228 }
1221 if ((port->pdt == DP_PEER_DEVICE_DP_LEGACY_CONV || 1229 if ((port->pdt == DP_PEER_DEVICE_DP_LEGACY_CONV ||
@@ -1230,7 +1238,7 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb,
1230 1238
1231out: 1239out:
1232 /* put reference to this port */ 1240 /* put reference to this port */
1233 drm_dp_put_port(port); 1241 drm_dp_mst_topology_put_port(port);
1234} 1242}
1235 1243
1236static void drm_dp_update_port(struct drm_dp_mst_branch *mstb, 1244static void drm_dp_update_port(struct drm_dp_mst_branch *mstb,
@@ -1265,7 +1273,7 @@ static void drm_dp_update_port(struct drm_dp_mst_branch *mstb,
1265 dowork = true; 1273 dowork = true;
1266 } 1274 }
1267 1275
1268 drm_dp_put_port(port); 1276 drm_dp_mst_topology_put_port(port);
1269 if (dowork) 1277 if (dowork)
1270 queue_work(system_long_wq, &mstb->mgr->work); 1278 queue_work(system_long_wq, &mstb->mgr->work);
1271 1279
@@ -1368,10 +1376,11 @@ static void drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *m
1368 drm_dp_send_enum_path_resources(mgr, mstb, port); 1376 drm_dp_send_enum_path_resources(mgr, mstb, port);
1369 1377
1370 if (port->mstb) { 1378 if (port->mstb) {
1371 mstb_child = drm_dp_get_validated_mstb_ref(mgr, port->mstb); 1379 mstb_child = drm_dp_mst_topology_get_mstb_validated(
1380 mgr, port->mstb);
1372 if (mstb_child) { 1381 if (mstb_child) {
1373 drm_dp_check_and_send_link_address(mgr, mstb_child); 1382 drm_dp_check_and_send_link_address(mgr, mstb_child);
1374 drm_dp_put_mst_branch_device(mstb_child); 1383 drm_dp_mst_topology_put_mstb(mstb_child);
1375 } 1384 }
1376 } 1385 }
1377 } 1386 }
@@ -1390,7 +1399,7 @@ static void drm_dp_mst_link_probe_work(struct work_struct *work)
1390 mutex_unlock(&mgr->lock); 1399 mutex_unlock(&mgr->lock);
1391 if (mstb) { 1400 if (mstb) {
1392 drm_dp_check_and_send_link_address(mgr, mstb); 1401 drm_dp_check_and_send_link_address(mgr, mstb);
1393 drm_dp_put_mst_branch_device(mstb); 1402 drm_dp_mst_topology_put_mstb(mstb);
1394 } 1403 }
1395} 1404}
1396 1405
@@ -1732,19 +1741,19 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr,
1732 u8 sinks[DRM_DP_MAX_SDP_STREAMS]; 1741 u8 sinks[DRM_DP_MAX_SDP_STREAMS];
1733 int i; 1742 int i;
1734 1743
1735 port = drm_dp_get_validated_port_ref(mgr, port); 1744 port = drm_dp_mst_topology_get_port_validated(mgr, port);
1736 if (!port) 1745 if (!port)
1737 return -EINVAL; 1746 return -EINVAL;
1738 1747
1739 port_num = port->port_num; 1748 port_num = port->port_num;
1740 mstb = drm_dp_get_validated_mstb_ref(mgr, port->parent); 1749 mstb = drm_dp_mst_topology_get_mstb_validated(mgr, port->parent);
1741 if (!mstb) { 1750 if (!mstb) {
1742 mstb = drm_dp_get_last_connected_port_and_mstb(mgr, 1751 mstb = drm_dp_get_last_connected_port_and_mstb(mgr,
1743 port->parent, 1752 port->parent,
1744 &port_num); 1753 &port_num);
1745 1754
1746 if (!mstb) { 1755 if (!mstb) {
1747 drm_dp_put_port(port); 1756 drm_dp_mst_topology_put_port(port);
1748 return -EINVAL; 1757 return -EINVAL;
1749 } 1758 }
1750 } 1759 }
@@ -1774,8 +1783,8 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr,
1774 } 1783 }
1775 kfree(txmsg); 1784 kfree(txmsg);
1776fail_put: 1785fail_put:
1777 drm_dp_put_mst_branch_device(mstb); 1786 drm_dp_mst_topology_put_mstb(mstb);
1778 drm_dp_put_port(port); 1787 drm_dp_mst_topology_put_port(port);
1779 return ret; 1788 return ret;
1780} 1789}
1781 1790
@@ -1785,13 +1794,13 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr,
1785 struct drm_dp_sideband_msg_tx *txmsg; 1794 struct drm_dp_sideband_msg_tx *txmsg;
1786 int len, ret; 1795 int len, ret;
1787 1796
1788 port = drm_dp_get_validated_port_ref(mgr, port); 1797 port = drm_dp_mst_topology_get_port_validated(mgr, port);
1789 if (!port) 1798 if (!port)
1790 return -EINVAL; 1799 return -EINVAL;
1791 1800
1792 txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); 1801 txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
1793 if (!txmsg) { 1802 if (!txmsg) {
1794 drm_dp_put_port(port); 1803 drm_dp_mst_topology_put_port(port);
1795 return -ENOMEM; 1804 return -ENOMEM;
1796 } 1805 }
1797 1806
@@ -1807,7 +1816,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr,
1807 ret = 0; 1816 ret = 0;
1808 } 1817 }
1809 kfree(txmsg); 1818 kfree(txmsg);
1810 drm_dp_put_port(port); 1819 drm_dp_mst_topology_put_port(port);
1811 1820
1812 return ret; 1821 return ret;
1813} 1822}
@@ -1896,7 +1905,8 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr)
1896 if (vcpi) { 1905 if (vcpi) {
1897 port = container_of(vcpi, struct drm_dp_mst_port, 1906 port = container_of(vcpi, struct drm_dp_mst_port,
1898 vcpi); 1907 vcpi);
1899 port = drm_dp_get_validated_port_ref(mgr, port); 1908 port = drm_dp_mst_topology_get_port_validated(mgr,
1909 port);
1900 if (!port) { 1910 if (!port) {
1901 mutex_unlock(&mgr->payload_lock); 1911 mutex_unlock(&mgr->payload_lock);
1902 return -EINVAL; 1912 return -EINVAL;
@@ -1933,7 +1943,7 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr)
1933 cur_slots += req_payload.num_slots; 1943 cur_slots += req_payload.num_slots;
1934 1944
1935 if (port) 1945 if (port)
1936 drm_dp_put_port(port); 1946 drm_dp_mst_topology_put_port(port);
1937 } 1947 }
1938 1948
1939 for (i = 0; i < mgr->max_payloads; i++) { 1949 for (i = 0; i < mgr->max_payloads; i++) {
@@ -2032,7 +2042,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr,
2032 struct drm_dp_sideband_msg_tx *txmsg; 2042 struct drm_dp_sideband_msg_tx *txmsg;
2033 struct drm_dp_mst_branch *mstb; 2043 struct drm_dp_mst_branch *mstb;
2034 2044
2035 mstb = drm_dp_get_validated_mstb_ref(mgr, port->parent); 2045 mstb = drm_dp_mst_topology_get_mstb_validated(mgr, port->parent);
2036 if (!mstb) 2046 if (!mstb)
2037 return -EINVAL; 2047 return -EINVAL;
2038 2048
@@ -2056,7 +2066,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr,
2056 } 2066 }
2057 kfree(txmsg); 2067 kfree(txmsg);
2058fail_put: 2068fail_put:
2059 drm_dp_put_mst_branch_device(mstb); 2069 drm_dp_mst_topology_put_mstb(mstb);
2060 return ret; 2070 return ret;
2061} 2071}
2062 2072
@@ -2200,7 +2210,7 @@ int drm_dp_mst_topology_mgr_set_mst(struct drm_dp_mst_topology_mgr *mgr, bool ms
2200out_unlock: 2210out_unlock:
2201 mutex_unlock(&mgr->lock); 2211 mutex_unlock(&mgr->lock);
2202 if (mstb) 2212 if (mstb)
2203 drm_dp_put_mst_branch_device(mstb); 2213 drm_dp_mst_topology_put_mstb(mstb);
2204 return ret; 2214 return ret;
2205 2215
2206} 2216}
@@ -2365,7 +2375,7 @@ static int drm_dp_mst_handle_down_rep(struct drm_dp_mst_topology_mgr *mgr)
2365 mgr->down_rep_recv.initial_hdr.lct, 2375 mgr->down_rep_recv.initial_hdr.lct,
2366 mgr->down_rep_recv.initial_hdr.rad[0], 2376 mgr->down_rep_recv.initial_hdr.rad[0],
2367 mgr->down_rep_recv.msg[0]); 2377 mgr->down_rep_recv.msg[0]);
2368 drm_dp_put_mst_branch_device(mstb); 2378 drm_dp_mst_topology_put_mstb(mstb);
2369 memset(&mgr->down_rep_recv, 0, sizeof(struct drm_dp_sideband_msg_rx)); 2379 memset(&mgr->down_rep_recv, 0, sizeof(struct drm_dp_sideband_msg_rx));
2370 return 0; 2380 return 0;
2371 } 2381 }
@@ -2376,7 +2386,7 @@ static int drm_dp_mst_handle_down_rep(struct drm_dp_mst_topology_mgr *mgr)
2376 } 2386 }
2377 2387
2378 memset(&mgr->down_rep_recv, 0, sizeof(struct drm_dp_sideband_msg_rx)); 2388 memset(&mgr->down_rep_recv, 0, sizeof(struct drm_dp_sideband_msg_rx));
2379 drm_dp_put_mst_branch_device(mstb); 2389 drm_dp_mst_topology_put_mstb(mstb);
2380 2390
2381 mutex_lock(&mgr->qlock); 2391 mutex_lock(&mgr->qlock);
2382 txmsg->state = DRM_DP_SIDEBAND_TX_RX; 2392 txmsg->state = DRM_DP_SIDEBAND_TX_RX;
@@ -2449,7 +2459,7 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)
2449 } 2459 }
2450 2460
2451 if (mstb) 2461 if (mstb)
2452 drm_dp_put_mst_branch_device(mstb); 2462 drm_dp_mst_topology_put_mstb(mstb);
2453 2463
2454 memset(&mgr->up_req_recv, 0, sizeof(struct drm_dp_sideband_msg_rx)); 2464 memset(&mgr->up_req_recv, 0, sizeof(struct drm_dp_sideband_msg_rx));
2455 } 2465 }
@@ -2509,7 +2519,7 @@ enum drm_connector_status drm_dp_mst_detect_port(struct drm_connector *connector
2509 enum drm_connector_status status = connector_status_disconnected; 2519 enum drm_connector_status status = connector_status_disconnected;
2510 2520
2511 /* we need to search for the port in the mgr in case its gone */ 2521 /* we need to search for the port in the mgr in case its gone */
2512 port = drm_dp_get_validated_port_ref(mgr, port); 2522 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2513 if (!port) 2523 if (!port)
2514 return connector_status_disconnected; 2524 return connector_status_disconnected;
2515 2525
@@ -2534,7 +2544,7 @@ enum drm_connector_status drm_dp_mst_detect_port(struct drm_connector *connector
2534 break; 2544 break;
2535 } 2545 }
2536out: 2546out:
2537 drm_dp_put_port(port); 2547 drm_dp_mst_topology_put_port(port);
2538 return status; 2548 return status;
2539} 2549}
2540EXPORT_SYMBOL(drm_dp_mst_detect_port); 2550EXPORT_SYMBOL(drm_dp_mst_detect_port);
@@ -2551,11 +2561,11 @@ bool drm_dp_mst_port_has_audio(struct drm_dp_mst_topology_mgr *mgr,
2551{ 2561{
2552 bool ret = false; 2562 bool ret = false;
2553 2563
2554 port = drm_dp_get_validated_port_ref(mgr, port); 2564 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2555 if (!port) 2565 if (!port)
2556 return ret; 2566 return ret;
2557 ret = port->has_audio; 2567 ret = port->has_audio;
2558 drm_dp_put_port(port); 2568 drm_dp_mst_topology_put_port(port);
2559 return ret; 2569 return ret;
2560} 2570}
2561EXPORT_SYMBOL(drm_dp_mst_port_has_audio); 2571EXPORT_SYMBOL(drm_dp_mst_port_has_audio);
@@ -2575,7 +2585,7 @@ struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_
2575 struct edid *edid = NULL; 2585 struct edid *edid = NULL;
2576 2586
2577 /* we need to search for the port in the mgr in case its gone */ 2587 /* we need to search for the port in the mgr in case its gone */
2578 port = drm_dp_get_validated_port_ref(mgr, port); 2588 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2579 if (!port) 2589 if (!port)
2580 return NULL; 2590 return NULL;
2581 2591
@@ -2586,7 +2596,7 @@ struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_
2586 drm_connector_set_tile_property(connector); 2596 drm_connector_set_tile_property(connector);
2587 } 2597 }
2588 port->has_audio = drm_detect_monitor_audio(edid); 2598 port->has_audio = drm_detect_monitor_audio(edid);
2589 drm_dp_put_port(port); 2599 drm_dp_mst_topology_put_port(port);
2590 return edid; 2600 return edid;
2591} 2601}
2592EXPORT_SYMBOL(drm_dp_mst_get_edid); 2602EXPORT_SYMBOL(drm_dp_mst_get_edid);
@@ -2657,7 +2667,7 @@ int drm_dp_atomic_find_vcpi_slots(struct drm_atomic_state *state,
2657 if (IS_ERR(topology_state)) 2667 if (IS_ERR(topology_state))
2658 return PTR_ERR(topology_state); 2668 return PTR_ERR(topology_state);
2659 2669
2660 port = drm_dp_get_validated_port_ref(mgr, port); 2670 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2661 if (port == NULL) 2671 if (port == NULL)
2662 return -EINVAL; 2672 return -EINVAL;
2663 req_slots = DIV_ROUND_UP(pbn, mgr->pbn_div); 2673 req_slots = DIV_ROUND_UP(pbn, mgr->pbn_div);
@@ -2665,14 +2675,14 @@ int drm_dp_atomic_find_vcpi_slots(struct drm_atomic_state *state,
2665 req_slots, topology_state->avail_slots); 2675 req_slots, topology_state->avail_slots);
2666 2676
2667 if (req_slots > topology_state->avail_slots) { 2677 if (req_slots > topology_state->avail_slots) {
2668 drm_dp_put_port(port); 2678 drm_dp_mst_topology_put_port(port);
2669 return -ENOSPC; 2679 return -ENOSPC;
2670 } 2680 }
2671 2681
2672 topology_state->avail_slots -= req_slots; 2682 topology_state->avail_slots -= req_slots;
2673 DRM_DEBUG_KMS("vcpi slots avail=%d", topology_state->avail_slots); 2683 DRM_DEBUG_KMS("vcpi slots avail=%d", topology_state->avail_slots);
2674 2684
2675 drm_dp_put_port(port); 2685 drm_dp_mst_topology_put_port(port);
2676 return req_slots; 2686 return req_slots;
2677} 2687}
2678EXPORT_SYMBOL(drm_dp_atomic_find_vcpi_slots); 2688EXPORT_SYMBOL(drm_dp_atomic_find_vcpi_slots);
@@ -2723,7 +2733,7 @@ bool drm_dp_mst_allocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
2723{ 2733{
2724 int ret; 2734 int ret;
2725 2735
2726 port = drm_dp_get_validated_port_ref(mgr, port); 2736 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2727 if (!port) 2737 if (!port)
2728 return false; 2738 return false;
2729 2739
@@ -2734,7 +2744,7 @@ bool drm_dp_mst_allocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
2734 DRM_DEBUG_KMS("payload: vcpi %d already allocated for pbn %d - requested pbn %d\n", 2744 DRM_DEBUG_KMS("payload: vcpi %d already allocated for pbn %d - requested pbn %d\n",
2735 port->vcpi.vcpi, port->vcpi.pbn, pbn); 2745 port->vcpi.vcpi, port->vcpi.pbn, pbn);
2736 if (pbn == port->vcpi.pbn) { 2746 if (pbn == port->vcpi.pbn) {
2737 drm_dp_put_port(port); 2747 drm_dp_mst_topology_put_port(port);
2738 return true; 2748 return true;
2739 } 2749 }
2740 } 2750 }
@@ -2748,7 +2758,7 @@ bool drm_dp_mst_allocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
2748 DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n", 2758 DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n",
2749 pbn, port->vcpi.num_slots); 2759 pbn, port->vcpi.num_slots);
2750 2760
2751 drm_dp_put_port(port); 2761 drm_dp_mst_topology_put_port(port);
2752 return true; 2762 return true;
2753out: 2763out:
2754 return false; 2764 return false;
@@ -2758,12 +2768,12 @@ EXPORT_SYMBOL(drm_dp_mst_allocate_vcpi);
2758int drm_dp_mst_get_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) 2768int drm_dp_mst_get_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
2759{ 2769{
2760 int slots = 0; 2770 int slots = 0;
2761 port = drm_dp_get_validated_port_ref(mgr, port); 2771 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2762 if (!port) 2772 if (!port)
2763 return slots; 2773 return slots;
2764 2774
2765 slots = port->vcpi.num_slots; 2775 slots = port->vcpi.num_slots;
2766 drm_dp_put_port(port); 2776 drm_dp_mst_topology_put_port(port);
2767 return slots; 2777 return slots;
2768} 2778}
2769EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots); 2779EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots);
@@ -2777,11 +2787,11 @@ EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots);
2777 */ 2787 */
2778void drm_dp_mst_reset_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) 2788void drm_dp_mst_reset_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
2779{ 2789{
2780 port = drm_dp_get_validated_port_ref(mgr, port); 2790 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2781 if (!port) 2791 if (!port)
2782 return; 2792 return;
2783 port->vcpi.num_slots = 0; 2793 port->vcpi.num_slots = 0;
2784 drm_dp_put_port(port); 2794 drm_dp_mst_topology_put_port(port);
2785} 2795}
2786EXPORT_SYMBOL(drm_dp_mst_reset_vcpi_slots); 2796EXPORT_SYMBOL(drm_dp_mst_reset_vcpi_slots);
2787 2797
@@ -2793,7 +2803,7 @@ EXPORT_SYMBOL(drm_dp_mst_reset_vcpi_slots);
2793void drm_dp_mst_deallocate_vcpi(struct drm_dp_mst_topology_mgr *mgr, 2803void drm_dp_mst_deallocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
2794 struct drm_dp_mst_port *port) 2804 struct drm_dp_mst_port *port)
2795{ 2805{
2796 port = drm_dp_get_validated_port_ref(mgr, port); 2806 port = drm_dp_mst_topology_get_port_validated(mgr, port);
2797 if (!port) 2807 if (!port)
2798 return; 2808 return;
2799 2809
@@ -2802,7 +2812,7 @@ void drm_dp_mst_deallocate_vcpi(struct drm_dp_mst_topology_mgr *mgr,
2802 port->vcpi.pbn = 0; 2812 port->vcpi.pbn = 0;
2803 port->vcpi.aligned_pbn = 0; 2813 port->vcpi.aligned_pbn = 0;
2804 port->vcpi.vcpi = 0; 2814 port->vcpi.vcpi = 0;
2805 drm_dp_put_port(port); 2815 drm_dp_mst_topology_put_port(port);
2806} 2816}
2807EXPORT_SYMBOL(drm_dp_mst_deallocate_vcpi); 2817EXPORT_SYMBOL(drm_dp_mst_deallocate_vcpi);
2808 2818
@@ -3302,7 +3312,7 @@ static int drm_dp_mst_i2c_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs
3302 struct drm_dp_sideband_msg_tx *txmsg = NULL; 3312 struct drm_dp_sideband_msg_tx *txmsg = NULL;
3303 int ret; 3313 int ret;
3304 3314
3305 mstb = drm_dp_get_validated_mstb_ref(mgr, port->parent); 3315 mstb = drm_dp_mst_topology_get_mstb_validated(mgr, port->parent);
3306 if (!mstb) 3316 if (!mstb)
3307 return -EREMOTEIO; 3317 return -EREMOTEIO;
3308 3318
@@ -3352,7 +3362,7 @@ static int drm_dp_mst_i2c_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs
3352 } 3362 }
3353out: 3363out:
3354 kfree(txmsg); 3364 kfree(txmsg);
3355 drm_dp_put_mst_branch_device(mstb); 3365 drm_dp_mst_topology_put_mstb(mstb);
3356 return ret; 3366 return ret;
3357} 3367}
3358 3368