hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/drivers/ntb/hw/intel/ntb_hw_intel.h
....@@ -53,6 +53,7 @@
5353
5454 #include <linux/ntb.h>
5555 #include <linux/pci.h>
56
+#include <linux/io-64-nonatomic-lo-hi.h>
5657
5758 /* PCI device IDs */
5859 #define PCI_DEVICE_ID_INTEL_NTB_B2B_JSF 0x3725
....@@ -71,6 +72,7 @@
7172 #define PCI_DEVICE_ID_INTEL_NTB_PS_BDX 0x6F0E
7273 #define PCI_DEVICE_ID_INTEL_NTB_SS_BDX 0x6F0F
7374 #define PCI_DEVICE_ID_INTEL_NTB_B2B_SKX 0x201C
75
+#define PCI_DEVICE_ID_INTEL_NTB_B2B_ICX 0x347e
7476
7577 /* Ntb control and link status */
7678 #define NTB_CTL_CFG_LOCK BIT(0)
....@@ -101,7 +103,7 @@
101103 struct intel_ntb_reg {
102104 int (*poll_link)(struct intel_ntb_dev *ndev);
103105 int (*link_is_up)(struct intel_ntb_dev *ndev);
104
- u64 (*db_ioread)(void __iomem *mmio);
106
+ u64 (*db_ioread)(const void __iomem *mmio);
105107 void (*db_iowrite)(u64 db_bits, void __iomem *mmio);
106108 unsigned long ntb_ctl;
107109 resource_size_t db_size;
....@@ -119,6 +121,7 @@
119121 unsigned long bar0_base;
120122 unsigned long bar2_xlat;
121123 unsigned long bar2_limit;
124
+ unsigned short bar2_idx;
122125 };
123126
124127 struct intel_b2b_addr {
....@@ -181,6 +184,9 @@
181184
182185 struct dentry *debugfs_dir;
183186 struct dentry *debugfs_info;
187
+
188
+ /* gen4 entries */
189
+ int dev_up;
184190 };
185191
186192 #define ntb_ndev(__ntb) container_of(__ntb, struct intel_ntb_dev, ntb)
....@@ -218,33 +224,11 @@
218224 return 0;
219225 }
220226
221
-#ifndef ioread64
222
-#ifdef readq
223
-#define ioread64 readq
224
-#else
225
-#define ioread64 _ioread64
226
-static inline u64 _ioread64(void __iomem *mmio)
227
+static inline int pdev_is_gen4(struct pci_dev *pdev)
227228 {
228
- u64 low, high;
229
+ if (pdev->device == PCI_DEVICE_ID_INTEL_NTB_B2B_ICX)
230
+ return 1;
229231
230
- low = ioread32(mmio);
231
- high = ioread32(mmio + sizeof(u32));
232
- return low | (high << 32);
232
+ return 0;
233233 }
234
-#endif
235
-#endif
236
-
237
-#ifndef iowrite64
238
-#ifdef writeq
239
-#define iowrite64 writeq
240
-#else
241
-#define iowrite64 _iowrite64
242
-static inline void _iowrite64(u64 val, void __iomem *mmio)
243
-{
244
- iowrite32(val, mmio);
245
- iowrite32(val >> 32, mmio + sizeof(u32));
246
-}
247
-#endif
248
-#endif
249
-
250234 #endif