Merge tag 'for-linus-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
[linux-2.6-block.git] / drivers / thunderbolt / nhi.h
index 1b5d47ecd3ed6497285a77717cb8508f250b5253..b7b973949f8e2919724a70972d79114dcd4b7179 100644 (file)
@@ -30,6 +30,26 @@ enum nhi_mailbox_cmd {
 int nhi_mailbox_cmd(struct tb_nhi *nhi, enum nhi_mailbox_cmd cmd, u32 data);
 enum nhi_fw_mode nhi_mailbox_mode(struct tb_nhi *nhi);
 
+/**
+ * struct tb_nhi_ops - NHI specific optional operations
+ * @init: NHI specific initialization
+ * @suspend_noirq: NHI specific suspend_noirq hook
+ * @resume_noirq: NHI specific resume_noirq hook
+ * @runtime_suspend: NHI specific runtime_suspend hook
+ * @runtime_resume: NHI specific runtime_resume hook
+ * @shutdown: NHI specific shutdown
+ */
+struct tb_nhi_ops {
+       int (*init)(struct tb_nhi *nhi);
+       int (*suspend_noirq)(struct tb_nhi *nhi, bool wakeup);
+       int (*resume_noirq)(struct tb_nhi *nhi);
+       int (*runtime_suspend)(struct tb_nhi *nhi);
+       int (*runtime_resume)(struct tb_nhi *nhi);
+       void (*shutdown)(struct tb_nhi *nhi);
+};
+
+extern const struct tb_nhi_ops icl_nhi_ops;
+
 /*
  * PCI IDs used in this driver from Win Ridge forward. There is no
  * need for the PCI quirk anymore as we will use ICM also on Apple
@@ -51,5 +71,7 @@ enum nhi_fw_mode nhi_mailbox_mode(struct tb_nhi *nhi);
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_BRIDGE      0x15ea
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_NHI         0x15eb
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_BRIDGE      0x15ef
+#define PCI_DEVICE_ID_INTEL_ICL_NHI1                   0x8a0d
+#define PCI_DEVICE_ID_INTEL_ICL_NHI0                   0x8a17
 
 #endif