Lines Matching full:topology
56 * protocol. The helpers contain a topology manager and bandwidth manager.
1362 * Topology refcount overview
1367 * two different kinds of refcounts: topology refcounts, and malloc refcounts.
1369 * Topology refcounts are not exposed to drivers, and are handled internally
1371 * in-memory topology state from being changed in the middle of critical
1374 * of the topology until its topology refcount reaches zero. Additionally,
1382 * drm_dp_mst_branch allocated even after all of its topology references have
1384 * branch's last known state before it was disconnected from the topology.
1396 * Refcount relationships in a topology
1399 * Let's take a look at why the relationship between topology and malloc
1402 * .. kernel-figure:: dp-mst/topology-figure-1.dot
1404 * An example of topology and malloc refs in a DP MST topology with two
1405 * active payloads. Topology refcount increments are indicated by solid
1411 * As you can see in the above figure, every branch increments the topology
1418 * topology would start to look like the figure below.
1420 * .. kernel-figure:: dp-mst/topology-figure-2.dot
1425 * Whenever a port or branch device's topology refcount reaches zero, it will
1426 * decrement the topology refcounts of all its children, the malloc refcount
1428 * #4, this means they both have been disconnected from the topology and freed
1430 * #3, port #3 is removed from the topology but its &struct drm_dp_mst_port
1438 * connected to the topology. In this case, we would travel up the topology as
1441 * .. kernel-figure:: dp-mst/topology-figure-3.dot
1628 drm_printf(&p, "%s (%p) topology count reached 0, dumping history:\n", in __dump_topology_ref_history()
1738 * drm_dp_mst_topology_try_get_mstb() - Increment the topology refcount of a
1740 * @mstb: &struct drm_dp_mst_branch to increment the topology refcount of
1742 * Attempts to grab a topology reference to @mstb, if it hasn't yet been
1743 * removed from the topology (e.g. &drm_dp_mst_branch.topology_kref has
1744 * reached 0). Holding a topology reference implies that a malloc reference
1745 * will be held to @mstb as long as the user holds the topology reference.
1748 * reference to @mstb. If you already have a topology reference to @mstb, you
1756 * * 1: A topology reference was grabbed successfully
1757 * * 0: @port is no longer in the topology, no reference was grabbed
1777 * drm_dp_mst_topology_get_mstb() - Increment the topology refcount of a
1779 * @mstb: The &struct drm_dp_mst_branch to increment the topology refcount of
1783 * you are already guaranteed to have at least one active topology reference
1803 * drm_dp_mst_topology_put_mstb() - release a topology reference to a branch
1805 * @mstb: The &struct drm_dp_mst_branch to release the topology reference from
1807 * Releases a topology reference from @mstb by decrementing
1853 * drm_dp_mst_topology_try_get_port() - Increment the topology refcount of a
1855 * @port: &struct drm_dp_mst_port to increment the topology refcount of
1857 * Attempts to grab a topology reference to @port, if it hasn't yet been
1858 * removed from the topology (e.g. &drm_dp_mst_port.topology_kref has reached
1859 * 0). Holding a topology reference implies that a malloc reference will be
1860 * held to @port as long as the user holds the topology reference.
1863 * reference to @port. If you already have a topology reference to @port, you
1871 * * 1: A topology reference was grabbed successfully
1872 * * 0: @port is no longer in the topology, no reference was grabbed
1891 * drm_dp_mst_topology_get_port() - Increment the topology refcount of a port
1892 * @port: The &struct drm_dp_mst_port to increment the topology refcount of
1896 * you are already guaranteed to have at least one active topology reference
1916 * drm_dp_mst_topology_put_port() - release a topology reference to a port
1917 * @port: The &struct drm_dp_mst_port to release the topology reference from
1919 * Releases a topology reference from @port by decrementing
2304 * Drop a topology reference, and unlink the port from the in-memory topology
2976 * topology, but were not seen in this link address. Usually this in drm_dp_send_link_address()
2977 * means that they were removed while the topology was out of sync, in drm_dp_send_link_address()
3086 * Searches upwards in the topology starting from mstb to try to find the
3088 * topology. This can be used in order to perform operations like releasing
3164 * mstb could also be removed from the topology. In the future, this in drm_dp_payload_send_msg()
3167 * timeout if the topology is still connected to the system. in drm_dp_payload_send_msg()
3344 "VCPI %d for port %p not in topology, not creating a payload to remote\n", in drm_dp_add_payload_part1()
3389 drm_dbg_kms(mgr->dev, "Payload for VCPI %d not in topology, not sending remove\n", in drm_dp_remove_payload_part1()
3641 * drm_dp_mst_topology_mgr_set_mst() - Set the MST state for a topology manager
3730 * drm_dp_mst_topology_queue_probe - Queue a topology probe
3733 * Queue a work to probe the MST topology. Driver's should call this only to
3734 * sync the topology's HW->SW state after the MST link's parameters have
3783 * @sync: whether or not to perform topology reprobing synchronously
3797 * Returns: -1 if the MST topology was removed while we were suspended, 0
3841 * For the final step of resuming the topology, we need to bring the in drm_dp_mst_topology_mgr_resume()
3842 * state of our in-memory topology back into sync with reality. So, in drm_dp_mst_topology_mgr_resume()
3850 "Waiting for link probe work to finish re-syncing topology...\n"); in drm_dp_mst_topology_mgr_resume()
4086 drm_dbg_kms(mgr->dev, "Got CSN before finish topology probing. Skip it.\n"); in drm_dp_mst_process_up_req()
4224 * topology manager will process the sideband messages received
4415 * @mgr: MST topology manager for the port
4423 * atomic state is added whenever the state of payloads in the topology changes.
4506 * @mgr: MST topology manager for the port
4515 * topology.
4591 * currently assigned to an MST topology. Drivers must call this hook from their
4635 * touched CRTCs that were/are on an MST topology to be programmed to hardware and flipped to before
4636 * returning. This is to prevent multiple non-blocking commits affecting an MST topology from racing
4638 * the modeset objects in these commits share are an MST topology.
4683 * @mgr: The MST topology manager for the &drm_connector
4686 * serialize non-blocking commits happening on the real DP connector of an MST topology switching
4688 * MST topology will never share the same &drm_encoder.
4691 * state to determine if it is about to have a modeset - and then pulling in the MST topology state
4904 * drm_dp_mst_dump_topology(): dump topology to seq file.
4906 * @mgr: manager to dump current topology for.
4908 * helper to dump MST topology to a seq file for debugfs.
5233 * @mgr: MST topology manager
5239 * @mgr's topology.
5409 * @mgr: MST topology manager
5411 * Whenever there is a change in mst topology
5414 * CRTCs in that topology
5523 * drm_dp_mst_atomic_check_mgr - Check the atomic state of an MST topology manager
5529 * Checks the given MST manager's topology state for an atomic update to ensure
5585 * drm_dp_mst_atomic_check - Check that the new state of an MST topology in an
5589 * Checks the given topology state for an atomic update to ensure that it's
5631 * drm_atomic_get_mst_topology_state: get MST topology state
5633 * @mgr: MST topology manager, also the private object in this case
5637 * topology object.
5640 * The MST topology state or error pointer.
5650 * drm_atomic_get_old_mst_topology_state: get old MST topology state in atomic state, if any
5652 * @mgr: MST topology manager, also the private object in this case
5656 * topology object.
5659 * The old MST topology state, or NULL if there's no topology state for this MST mgr
5674 * drm_atomic_get_new_mst_topology_state: get new MST topology state in atomic state, if any
5676 * @mgr: MST topology manager, also the private object in this case
5680 * topology object.
5683 * The new MST topology state, or NULL if there's no topology state for this MST mgr
5698 * drm_dp_mst_topology_mgr_init - initialise a topology manager
5731 * requeuing will be also flushed when deiniting the topology manager. in drm_dp_mst_topology_mgr_init()
5767 * drm_dp_mst_topology_mgr_destroy() - destroy topology manager.
6003 * A single physical MST hub object can be represented in the topology