thunderbolt: Add support for Intel Ice Lake
The Thunderbolt controller is integrated into the Ice Lake CPU itself and requires special flows to power it on and off using force power bit in NHI VSEC registers. Runtime PM (RTD3) and Sx flows also differ from the discrete solutions. Now the firmware notifies the driver whether RTD3 entry or exit are possible. The driver is responsible of sending Go2Sx command through link controller mailbox when system enters Sx states (suspend-to-mem/disk). Rest of the ICM firwmare flows follow Titan Ridge. Signed-off-by: Raanan Avargil <raanan.avargil@intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Yehezkel Bernat <YehezkelShB@gmail.com> Tested-by: Mario Limonciello <mario.limonciello@dell.com>
This commit is contained in:
@@ -104,10 +104,11 @@ enum icm_pkg_code {
|
||||
};
|
||||
|
||||
enum icm_event_code {
|
||||
ICM_EVENT_DEVICE_CONNECTED = 3,
|
||||
ICM_EVENT_DEVICE_DISCONNECTED = 4,
|
||||
ICM_EVENT_XDOMAIN_CONNECTED = 6,
|
||||
ICM_EVENT_XDOMAIN_DISCONNECTED = 7,
|
||||
ICM_EVENT_DEVICE_CONNECTED = 0x3,
|
||||
ICM_EVENT_DEVICE_DISCONNECTED = 0x4,
|
||||
ICM_EVENT_XDOMAIN_CONNECTED = 0x6,
|
||||
ICM_EVENT_XDOMAIN_DISCONNECTED = 0x7,
|
||||
ICM_EVENT_RTD3_VETO = 0xa,
|
||||
};
|
||||
|
||||
struct icm_pkg_header {
|
||||
@@ -463,6 +464,13 @@ struct icm_tr_pkg_disconnect_xdomain_response {
|
||||
uuid_t remote_uuid;
|
||||
};
|
||||
|
||||
/* Ice Lake messages */
|
||||
|
||||
struct icm_icl_event_rtd3_veto {
|
||||
struct icm_pkg_header hdr;
|
||||
u32 veto_reason;
|
||||
};
|
||||
|
||||
/* XDomain messages */
|
||||
|
||||
struct tb_xdomain_header {
|
||||
|
Reference in New Issue
Block a user