hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/arch/s390/include/asm/cio.h
....@@ -7,6 +7,7 @@
77
88 #include <linux/spinlock.h>
99 #include <linux/bitops.h>
10
+#include <linux/genalloc.h>
1011 #include <asm/types.h>
1112
1213 #define LPM_ANYPATH 0xff
....@@ -264,6 +265,36 @@
264265 #define CIW_TYPE_RNI 0x2 /* read node identifier */
265266
266267 /*
268
+ * Node Descriptor as defined in SA22-7204, "Common I/O-Device Commands"
269
+ */
270
+
271
+#define ND_VALIDITY_VALID 0
272
+#define ND_VALIDITY_OUTDATED 1
273
+#define ND_VALIDITY_INVALID 2
274
+
275
+struct node_descriptor {
276
+ /* Flags. */
277
+ union {
278
+ struct {
279
+ u32 validity:3;
280
+ u32 reserved:5;
281
+ } __packed;
282
+ u8 byte0;
283
+ } __packed;
284
+
285
+ /* Node parameters. */
286
+ u32 params:24;
287
+
288
+ /* Node ID. */
289
+ char type[6];
290
+ char model[3];
291
+ char manufacturer[3];
292
+ char plant[2];
293
+ char seq[12];
294
+ u16 tag;
295
+} __packed;
296
+
297
+/*
267298 * Flags used as input parameters for do_IO()
268299 */
269300 #define DOIO_ALLOW_SUSPEND 0x0001 /* allow for channel prog. suspend */
....@@ -325,11 +356,22 @@
325356 return 8 - ffs(mask);
326357 }
327358
328
-void channel_subsystem_reinit(void);
329359 extern void css_schedule_reprobe(void);
360
+
361
+extern void *cio_dma_zalloc(size_t size);
362
+extern void cio_dma_free(void *cpu_addr, size_t size);
363
+extern struct device *cio_get_dma_css_dev(void);
364
+
365
+void *cio_gp_dma_zalloc(struct gen_pool *gp_dma, struct device *dma_dev,
366
+ size_t size);
367
+void cio_gp_dma_free(struct gen_pool *gp_dma, void *cpu_addr, size_t size);
368
+void cio_gp_dma_destroy(struct gen_pool *gp_dma, struct device *dma_dev);
369
+struct gen_pool *cio_gp_dma_create(struct device *dma_dev, int nr_pages);
330370
331371 /* Function from drivers/s390/cio/chsc.c */
332372 int chsc_sstpc(void *page, unsigned int op, u16 ctrl, u64 *clock_delta);
333373 int chsc_sstpi(void *page, void *result, size_t size);
374
+int chsc_stzi(void *page, void *result, size_t size);
375
+int chsc_sgib(u32 origin);
334376
335377 #endif