diff options
author | Lyude Paul <lyude@redhat.com> | 2019-01-10 19:53:28 -0500 |
---|---|---|
committer | Lyude Paul <lyude@redhat.com> | 2019-01-10 20:12:19 -0500 |
commit | d0757afd00d71dca98268d09884dc6248743d8ce (patch) | |
tree | 502ced21f05056b973a6365b63bd768de9cb400b /drivers/gpu/drm/drm_dp_mst_topology.c | |
parent | 4afb8a26b53a6d971c884f54a9ce4e5e427123cf (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.c | 114 |
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); |
47 | static int test_calc_pbn_mode(void); | 47 | static int test_calc_pbn_mode(void); |
48 | 48 | ||
49 | static void drm_dp_put_port(struct drm_dp_mst_port *port); | 49 | static void drm_dp_mst_topology_put_port(struct drm_dp_mst_port *port); |
50 | 50 | ||
51 | static int drm_dp_dpcd_write_payload(struct drm_dp_mst_topology_mgr *mgr, | 51 | static 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 | ||
914 | static void drm_dp_put_mst_branch_device(struct drm_dp_mst_branch *mstb) | 914 | static 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 | ||
973 | static void drm_dp_put_port(struct drm_dp_mst_port *port) | 973 | static 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 | ||
978 | static 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) | 978 | static struct drm_dp_mst_branch * |
979 | drm_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 | ||
996 | static struct drm_dp_mst_branch *drm_dp_get_validated_mstb_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_branch *mstb) | 999 | static struct drm_dp_mst_branch * |
1000 | drm_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 | ||
1024 | static struct drm_dp_mst_port *drm_dp_get_validated_port_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) | 1030 | static struct drm_dp_mst_port * |
1031 | drm_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 | ||
1231 | out: | 1239 | out: |
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 | ||
1236 | static void drm_dp_update_port(struct drm_dp_mst_branch *mstb, | 1244 | static 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); |
1776 | fail_put: | 1785 | fail_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); |
2058 | fail_put: | 2068 | fail_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 | |||
2200 | out_unlock: | 2210 | out_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 | } |
2536 | out: | 2546 | out: |
2537 | drm_dp_put_port(port); | 2547 | drm_dp_mst_topology_put_port(port); |
2538 | return status; | 2548 | return status; |
2539 | } | 2549 | } |
2540 | EXPORT_SYMBOL(drm_dp_mst_detect_port); | 2550 | EXPORT_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 | } |
2561 | EXPORT_SYMBOL(drm_dp_mst_port_has_audio); | 2571 | EXPORT_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 | } |
2592 | EXPORT_SYMBOL(drm_dp_mst_get_edid); | 2602 | EXPORT_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 | } |
2678 | EXPORT_SYMBOL(drm_dp_atomic_find_vcpi_slots); | 2688 | EXPORT_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; |
2753 | out: | 2763 | out: |
2754 | return false; | 2764 | return false; |
@@ -2758,12 +2768,12 @@ EXPORT_SYMBOL(drm_dp_mst_allocate_vcpi); | |||
2758 | int drm_dp_mst_get_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) | 2768 | int 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 | } |
2769 | EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots); | 2779 | EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots); |
@@ -2777,11 +2787,11 @@ EXPORT_SYMBOL(drm_dp_mst_get_vcpi_slots); | |||
2777 | */ | 2787 | */ |
2778 | void drm_dp_mst_reset_vcpi_slots(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port) | 2788 | void 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 | } |
2786 | EXPORT_SYMBOL(drm_dp_mst_reset_vcpi_slots); | 2796 | EXPORT_SYMBOL(drm_dp_mst_reset_vcpi_slots); |
2787 | 2797 | ||
@@ -2793,7 +2803,7 @@ EXPORT_SYMBOL(drm_dp_mst_reset_vcpi_slots); | |||
2793 | void drm_dp_mst_deallocate_vcpi(struct drm_dp_mst_topology_mgr *mgr, | 2803 | void 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 | } |
2807 | EXPORT_SYMBOL(drm_dp_mst_deallocate_vcpi); | 2817 | EXPORT_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 | } |
3353 | out: | 3363 | out: |
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 | ||