Lines Matching +full:dual +full:- +full:lane
1 /* SPDX-License-Identifier: GPL-2.0 */
40 * enum tb_security_level - Thunderbolt security level
61 * struct tb - main thunderbolt bus structure
97 return (link - 1) / TB_LINKS_PER_PHY_PORT; in tb_phy_port_from_link()
101 * struct tb_property_dir - XDomain property directory
123 * struct tb_property - XDomain property
175 * enum tb_link_width - Thunderbolt/USB4 link width
176 * @TB_LINK_WIDTH_SINGLE: Single lane link
177 * @TB_LINK_WIDTH_DUAL: Dual lane symmetric link
178 * @TB_LINK_WIDTH_ASYM_TX: Dual lane asymmetric Gen 4 link with 3 transmitters
179 * @TB_LINK_WIDTH_ASYM_RX: Dual lane asymmetric Gen 4 link with 3 receivers
189 * struct tb_xdomain - Cross-domain (XDomain) connection
223 * @bonding_possible: True if lane bonding is possible on local side
233 * non-standard properties but they need hold @lock when doing so
289 return tb_xdomain_disable_paths(xd, -1, -1, -1, -1); in tb_xdomain_disable_all_paths()
300 mutex_lock(&tb->lock); in tb_xdomain_find_by_uuid_locked()
302 mutex_unlock(&tb->lock); in tb_xdomain_find_by_uuid_locked()
312 mutex_lock(&tb->lock); in tb_xdomain_find_by_route_locked()
314 mutex_unlock(&tb->lock); in tb_xdomain_find_by_route_locked()
322 get_device(&xd->dev); in tb_xdomain_get()
329 put_device(&xd->dev); in tb_xdomain_put()
334 return dev->type == &tb_xdomain_type; in tb_is_xdomain()
353 * tb_protocol_handler - Protocol specific handler
381 * struct tb_service - Thunderbolt service
411 get_device(&svc->dev); in tb_service_get()
418 put_device(&svc->dev); in tb_service_put()
423 return dev->type == &tb_service_type; in tb_is_service()
434 * tb_service_driver - Thunderbolt service driver
460 return dev_get_drvdata(&svc->dev); in tb_service_get_drvdata()
465 dev_set_drvdata(&svc->dev, data); in tb_service_set_drvdata()
470 return tb_to_xdomain(svc->dev.parent); in tb_service_parent()
474 * struct tb_nhi - thunderbolt native host interface
482 * @msix_ida: Used to allocate MSI-X vectors for rings
485 * @iommu_dma_protection: An IOMMU will isolate external-facing ports.
487 * MSI-X is used.
507 * struct tb_ring - thunderbolt TX or RX ring associated with a NHI
509 * nhi->lock.
521 * @irq: MSI-X irq number if the ring uses MSI-X. %0 otherwise.
522 * @vector: MSI-X vector number the ring uses (only set if @irq is > 0)
560 /* Enable end-to-end flow control */
567 * enum ring_desc_flags - Flags for DMA ring descriptor
585 * struct ring_frame - For use with ring_rx/ring_tx
620 * tb_ring_rx() - enqueue a frame on an RX ring
624 * @frame->buffer, @frame->buffer_phy have to be set. The buffer must
627 * @frame->callback will be invoked with @frame->size, @frame->flags,
628 * @frame->eof, @frame->sof set once the frame has been received.
631 * @frame->callback will be called with canceled set to true.
633 * Return: Returns %-ESHUTDOWN if ring_stop has been called. Zero otherwise.
637 WARN_ON(ring->is_tx); in tb_ring_rx()
642 * tb_ring_tx() - enqueue a frame on an TX ring
646 * @frame->buffer, @frame->buffer_phy, @frame->size, @frame->eof and
647 * @frame->sof have to be set.
649 * @frame->callback will be invoked with once the frame has been transmitted.
651 * If ring_stop() is called after the packet has been enqueued @frame->callback
654 * Return: Returns %-ESHUTDOWN if ring_stop has been called. Zero otherwise.
658 WARN_ON(!ring->is_tx); in tb_ring_tx()
667 * tb_ring_dma_device() - Return device used for DMA mapping
675 return &ring->nhi->pdev->dev; in tb_ring_dma_device()