forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-09 244b2c5ca8b14627e4a17755e5922221e121c771
kernel/drivers/s390/net/ism.h
....@@ -6,6 +6,7 @@
66 #include <linux/types.h>
77 #include <linux/pci.h>
88 #include <net/smc.h>
9
+#include <asm/pci_insn.h>
910
1011 #define UTIL_STR_LEN 16
1112
....@@ -15,6 +16,7 @@
1516 #define ISM_DMB_WORD_OFFSET 1
1617 #define ISM_DMB_BIT_OFFSET (ISM_DMB_WORD_OFFSET * 32)
1718 #define ISM_NR_DMBS 1920
19
+#define ISM_IDENT_MASK 0x00FFFF
1820
1921 #define ISM_REG_SBA 0x1
2022 #define ISM_REG_IEQ 0x2
....@@ -30,8 +32,6 @@
3032 #define ISM_SIGNAL_IEQ 0xE
3133 #define ISM_UNREG_SBA 0x11
3234 #define ISM_UNREG_IEQ 0x12
33
-
34
-#define ISM_ERROR 0xFFFF
3535
3636 struct ism_req_hdr {
3737 u32 cmd;
....@@ -194,8 +194,6 @@
194194 struct pci_dev *pdev;
195195 struct smcd_dev *smcd;
196196
197
- void __iomem *ctl;
198
-
199197 struct ism_sba *sba;
200198 dma_addr_t sba_dma_addr;
201199 DECLARE_BITMAP(sba_bitmap, ISM_NR_DMBS);
....@@ -209,13 +207,43 @@
209207 #define ISM_CREATE_REQ(dmb, idx, sf, offset) \
210208 ((dmb) | (idx) << 24 | (sf) << 23 | (offset))
211209
210
+struct ism_systemeid {
211
+ u8 seid_string[24];
212
+ u8 serial_number[4];
213
+ u8 type[4];
214
+};
215
+
216
+static inline void __ism_read_cmd(struct ism_dev *ism, void *data,
217
+ unsigned long offset, unsigned long len)
218
+{
219
+ struct zpci_dev *zdev = to_zpci(ism->pdev);
220
+ u64 req = ZPCI_CREATE_REQ(zdev->fh, 2, 8);
221
+
222
+ while (len > 0) {
223
+ __zpci_load(data, req, offset);
224
+ offset += 8;
225
+ data += 8;
226
+ len -= 8;
227
+ }
228
+}
229
+
230
+static inline void __ism_write_cmd(struct ism_dev *ism, void *data,
231
+ unsigned long offset, unsigned long len)
232
+{
233
+ struct zpci_dev *zdev = to_zpci(ism->pdev);
234
+ u64 req = ZPCI_CREATE_REQ(zdev->fh, 2, len);
235
+
236
+ if (len)
237
+ __zpci_store_block(data, req, offset);
238
+}
239
+
212240 static inline int __ism_move(struct ism_dev *ism, u64 dmb_req, void *data,
213241 unsigned int size)
214242 {
215243 struct zpci_dev *zdev = to_zpci(ism->pdev);
216244 u64 req = ZPCI_CREATE_REQ(zdev->fh, 0, size);
217245
218
- return zpci_write_block(req, data, dmb_req);
246
+ return __zpci_store_block(data, req, dmb_req);
219247 }
220248
221249 #endif /* S390_ISM_H */