Lines Matching +full:dual +full:- +full:lane

1 /* SPDX-License-Identifier: GPL-2.0 */
39 * enum tb_security_level - Thunderbolt security level
60 * struct tb - main thunderbolt bus structure
96 return (link - 1) / TB_LINKS_PER_PHY_PORT; in tb_phy_port_from_link()
100 * struct tb_property_dir - XDomain property directory
122 * struct tb_property - XDomain property
174 * enum tb_link_width - Thunderbolt/USB4 link width
175 * @TB_LINK_WIDTH_SINGLE: Single lane link
176 * @TB_LINK_WIDTH_DUAL: Dual lane symmetric link
177 * @TB_LINK_WIDTH_ASYM_TX: Dual lane asymmetric Gen 4 link with 3 transmitters
178 * @TB_LINK_WIDTH_ASYM_RX: Dual lane asymmetric Gen 4 link with 3 receivers
188 * struct tb_xdomain - Cross-domain (XDomain) connection
222 * @bonding_possible: True if lane bonding is possible on local side
232 * non-standard properties but they need hold @lock when doing so
288 return tb_xdomain_disable_paths(xd, -1, -1, -1, -1); in tb_xdomain_disable_all_paths()
299 mutex_lock(&tb->lock); in tb_xdomain_find_by_uuid_locked()
301 mutex_unlock(&tb->lock); in tb_xdomain_find_by_uuid_locked()
311 mutex_lock(&tb->lock); in tb_xdomain_find_by_route_locked()
313 mutex_unlock(&tb->lock); in tb_xdomain_find_by_route_locked()
321 get_device(&xd->dev); in tb_xdomain_get()
328 put_device(&xd->dev); in tb_xdomain_put()
333 return dev->type == &tb_xdomain_type; in tb_is_xdomain()
352 * tb_protocol_handler - Protocol specific handler
380 * struct tb_service - Thunderbolt service
410 get_device(&svc->dev); in tb_service_get()
417 put_device(&svc->dev); in tb_service_put()
422 return dev->type == &tb_service_type; in tb_is_service()
433 * tb_service_driver - Thunderbolt service driver
459 return dev_get_drvdata(&svc->dev); in tb_service_get_drvdata()
464 dev_set_drvdata(&svc->dev, data); in tb_service_set_drvdata()
469 return tb_to_xdomain(svc->dev.parent); in tb_service_parent()
473 * struct tb_nhi - thunderbolt native host interface
481 * @msix_ida: Used to allocate MSI-X vectors for rings
484 * @iommu_dma_protection: An IOMMU will isolate external-facing ports.
486 * MSI-X is used.
506 * struct tb_ring - thunderbolt TX or RX ring associated with a NHI
508 * nhi->lock.
520 * @irq: MSI-X irq number if the ring uses MSI-X. %0 otherwise.
521 * @vector: MSI-X vector number the ring uses (only set if @irq is > 0)
559 /* Enable end-to-end flow control */
566 * enum ring_desc_flags - Flags for DMA ring descriptor
584 * struct ring_frame - For use with ring_rx/ring_tx
619 * tb_ring_rx() - enqueue a frame on an RX ring
623 * @frame->buffer, @frame->buffer_phy have to be set. The buffer must
626 * @frame->callback will be invoked with @frame->size, @frame->flags,
627 * @frame->eof, @frame->sof set once the frame has been received.
630 * @frame->callback will be called with canceled set to true.
632 * Return: Returns %-ESHUTDOWN if ring_stop has been called. Zero otherwise.
636 WARN_ON(ring->is_tx); in tb_ring_rx()
641 * tb_ring_tx() - enqueue a frame on an TX ring
645 * @frame->buffer, @frame->buffer_phy, @frame->size, @frame->eof and
646 * @frame->sof have to be set.
648 * @frame->callback will be invoked with once the frame has been transmitted.
650 * If ring_stop() is called after the packet has been enqueued @frame->callback
653 * Return: Returns %-ESHUTDOWN if ring_stop has been called. Zero otherwise.
657 WARN_ON(!ring->is_tx); in tb_ring_tx()
666 * tb_ring_dma_device() - Return device used for DMA mapping
674 return &ring->nhi->pdev->dev; in tb_ring_dma_device()