.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ |
---|
1 | 2 | /* |
---|
2 | 3 | * Thunderbolt control channel messages |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2014 Andreas Noever <andreas.noever@gmail.com> |
---|
5 | 6 | * Copyright (C) 2017, Intel Corporation |
---|
6 | | - * |
---|
7 | | - * This program is free software; you can redistribute it and/or modify |
---|
8 | | - * it under the terms of the GNU General Public License version 2 as |
---|
9 | | - * published by the Free Software Foundation. |
---|
10 | 7 | */ |
---|
11 | 8 | |
---|
12 | 9 | #ifndef _TB_MSGS |
---|
.. | .. |
---|
31 | 28 | TB_CFG_ERROR_LOOP = 8, |
---|
32 | 29 | TB_CFG_ERROR_HEC_ERROR_DETECTED = 12, |
---|
33 | 30 | TB_CFG_ERROR_FLOW_CONTROL_ERROR = 13, |
---|
| 31 | + TB_CFG_ERROR_LOCK = 15, |
---|
34 | 32 | }; |
---|
35 | 33 | |
---|
36 | 34 | /* common header */ |
---|
.. | .. |
---|
70 | 68 | u32 zero1:4; |
---|
71 | 69 | u32 port:6; |
---|
72 | 70 | u32 zero2:2; /* Both should be zero, still they are different fields. */ |
---|
73 | | - u32 zero3:16; |
---|
| 71 | + u32 zero3:14; |
---|
| 72 | + u32 pg:2; |
---|
74 | 73 | } __packed; |
---|
| 74 | + |
---|
| 75 | +#define TB_CFG_ERROR_PG_HOT_PLUG 0x2 |
---|
| 76 | +#define TB_CFG_ERROR_PG_HOT_UNPLUG 0x3 |
---|
75 | 77 | |
---|
76 | 78 | /* TB_CFG_PKG_EVENT */ |
---|
77 | 79 | struct cfg_event_pkg { |
---|
.. | .. |
---|
107 | 109 | }; |
---|
108 | 110 | |
---|
109 | 111 | enum icm_event_code { |
---|
110 | | - ICM_EVENT_DEVICE_CONNECTED = 3, |
---|
111 | | - ICM_EVENT_DEVICE_DISCONNECTED = 4, |
---|
112 | | - ICM_EVENT_XDOMAIN_CONNECTED = 6, |
---|
113 | | - ICM_EVENT_XDOMAIN_DISCONNECTED = 7, |
---|
| 112 | + ICM_EVENT_DEVICE_CONNECTED = 0x3, |
---|
| 113 | + ICM_EVENT_DEVICE_DISCONNECTED = 0x4, |
---|
| 114 | + ICM_EVENT_XDOMAIN_CONNECTED = 0x6, |
---|
| 115 | + ICM_EVENT_XDOMAIN_DISCONNECTED = 0x7, |
---|
| 116 | + ICM_EVENT_RTD3_VETO = 0xa, |
---|
114 | 117 | }; |
---|
115 | 118 | |
---|
116 | 119 | struct icm_pkg_header { |
---|
.. | .. |
---|
124 | 127 | #define ICM_FLAGS_NO_KEY BIT(1) |
---|
125 | 128 | #define ICM_FLAGS_SLEVEL_SHIFT 3 |
---|
126 | 129 | #define ICM_FLAGS_SLEVEL_MASK GENMASK(4, 3) |
---|
| 130 | +#define ICM_FLAGS_DUAL_LANE BIT(5) |
---|
| 131 | +#define ICM_FLAGS_SPEED_GEN3 BIT(7) |
---|
127 | 132 | #define ICM_FLAGS_WRITE BIT(7) |
---|
128 | 133 | |
---|
129 | 134 | struct icm_pkg_driver_ready { |
---|
.. | .. |
---|
466 | 471 | uuid_t remote_uuid; |
---|
467 | 472 | }; |
---|
468 | 473 | |
---|
| 474 | +/* Ice Lake messages */ |
---|
| 475 | + |
---|
| 476 | +struct icm_icl_event_rtd3_veto { |
---|
| 477 | + struct icm_pkg_header hdr; |
---|
| 478 | + u32 veto_reason; |
---|
| 479 | +}; |
---|
| 480 | + |
---|
469 | 481 | /* XDomain messages */ |
---|
470 | 482 | |
---|
471 | 483 | struct tb_xdomain_header { |
---|
.. | .. |
---|
495 | 507 | u32 type; |
---|
496 | 508 | }; |
---|
497 | 509 | |
---|
| 510 | +struct tb_xdp_uuid { |
---|
| 511 | + struct tb_xdp_header hdr; |
---|
| 512 | +}; |
---|
| 513 | + |
---|
| 514 | +struct tb_xdp_uuid_response { |
---|
| 515 | + struct tb_xdp_header hdr; |
---|
| 516 | + uuid_t src_uuid; |
---|
| 517 | + u32 src_route_hi; |
---|
| 518 | + u32 src_route_lo; |
---|
| 519 | +}; |
---|
| 520 | + |
---|
498 | 521 | struct tb_xdp_properties { |
---|
499 | 522 | struct tb_xdp_header hdr; |
---|
500 | 523 | uuid_t src_uuid; |
---|