linux/drivers/thunderbolt
Mika Westerberg 9fb1e654dc thunderbolt: Add support for frame mode
When high-speed DMA paths are used to transfer arbitrary data over a
Thunderbolt link, DMA rings should be in frame mode instead of raw mode.
The latter is used by the control channel (ring 0). In frame mode each
data frame can hold up to 4kB payload.

This patch modifies the DMA ring code to allow configuring a ring to be
in frame mode by passing a new flag (RING_FLAG_FRAME) to the ring when
it is allocated. In addition there might be need to enable end-to-end
(E2E) workaround for the ring to prevent losing Rx frames in certain
situations. We add another flag (RING_FLAG_E2E) that can be used for
this purpose.

This code is based on the work done by Amir Levy and Michael Jamet.

Signed-off-by: Michael Jamet <michael.jamet@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Yehezkel Bernat <yehezkel.bernat@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-02 11:24:41 -07:00
..
cap.c thunderbolt: Rework capability handling 2017-06-09 11:42:41 +02:00
ctl.c thunderbolt: Add support for frame mode 2017-10-02 11:24:41 -07:00
ctl.h thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
dma_port.c thunderbolt: Add support for DMA configuration based mailbox 2017-06-09 11:42:43 +02:00
dma_port.h thunderbolt: Add support for DMA configuration based mailbox 2017-06-09 11:42:43 +02:00
domain.c thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
eeprom.c thunderbolt: Do not enumerate more ports from DROM than the controller has 2017-08-10 14:25:35 -07:00
icm.c thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
Kconfig thunderbolt: Add support for host and device NVM firmware upgrade 2017-06-09 11:42:43 +02:00
Makefile thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
nhi_regs.h thunderbolt: Add support for frame mode 2017-10-02 11:24:41 -07:00
nhi.c thunderbolt: Add support for frame mode 2017-10-02 11:24:41 -07:00
nhi.h thunderbolt: Add support for frame mode 2017-10-02 11:24:41 -07:00
path.c thunderbolt: Clear hops before overwriting 2014-08-26 14:54:48 -07:00
property.c thunderbolt: Add support for XDomain properties 2017-10-02 11:24:40 -07:00
switch.c thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
tb_msgs.h thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
tb_regs.h thunderbolt: Rework capability handling 2017-06-09 11:42:41 +02:00
tb.c treewide: Consolidate Apple DMI checks 2017-08-03 23:26:22 +02:00
tb.h thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
tunnel_pci.c thunderbolt: Introduce thunderbolt bus and connection manager 2017-06-09 11:42:41 +02:00
tunnel_pci.h thunderbolt: Add support for simple pci tunnels 2014-06-19 14:07:47 -07:00
xdomain.c thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00