aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/qdio.h')
-rw-r--r--drivers/s390/cio/qdio.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h
index b5d303e79a24..43b840af5300 100644
--- a/drivers/s390/cio/qdio.h
+++ b/drivers/s390/cio/qdio.h
@@ -3,7 +3,9 @@
3 3
4#include <asm/page.h> 4#include <asm/page.h>
5 5
6#define VERSION_CIO_QDIO_H "$Revision: 1.37 $" 6#include "schid.h"
7
8#define VERSION_CIO_QDIO_H "$Revision: 1.40 $"
7 9
8#ifdef CONFIG_QDIO_DEBUG 10#ifdef CONFIG_QDIO_DEBUG
9#define QDIO_VERBOSE_LEVEL 9 11#define QDIO_VERBOSE_LEVEL 9
@@ -317,7 +319,7 @@ do_eqbs(unsigned long sch, unsigned char *state, int queue,
317 319
318 320
319static inline int 321static inline int
320do_siga_sync(unsigned int irq, unsigned int mask1, unsigned int mask2) 322do_siga_sync(struct subchannel_id schid, unsigned int mask1, unsigned int mask2)
321{ 323{
322 int cc; 324 int cc;
323 325
@@ -331,7 +333,7 @@ do_siga_sync(unsigned int irq, unsigned int mask1, unsigned int mask2)
331 "ipm %0 \n\t" 333 "ipm %0 \n\t"
332 "srl %0,28 \n\t" 334 "srl %0,28 \n\t"
333 : "=d" (cc) 335 : "=d" (cc)
334 : "d" (irq), "d" (mask1), "d" (mask2) 336 : "d" (schid), "d" (mask1), "d" (mask2)
335 : "cc", "0", "1", "2", "3" 337 : "cc", "0", "1", "2", "3"
336 ); 338 );
337#else /* CONFIG_ARCH_S390X */ 339#else /* CONFIG_ARCH_S390X */
@@ -344,7 +346,7 @@ do_siga_sync(unsigned int irq, unsigned int mask1, unsigned int mask2)
344 "ipm %0 \n\t" 346 "ipm %0 \n\t"
345 "srl %0,28 \n\t" 347 "srl %0,28 \n\t"
346 : "=d" (cc) 348 : "=d" (cc)
347 : "d" (irq), "d" (mask1), "d" (mask2) 349 : "d" (schid), "d" (mask1), "d" (mask2)
348 : "cc", "0", "1", "2", "3" 350 : "cc", "0", "1", "2", "3"
349 ); 351 );
350#endif /* CONFIG_ARCH_S390X */ 352#endif /* CONFIG_ARCH_S390X */
@@ -352,7 +354,7 @@ do_siga_sync(unsigned int irq, unsigned int mask1, unsigned int mask2)
352} 354}
353 355
354static inline int 356static inline int
355do_siga_input(unsigned int irq, unsigned int mask) 357do_siga_input(struct subchannel_id schid, unsigned int mask)
356{ 358{
357 int cc; 359 int cc;
358 360
@@ -365,7 +367,7 @@ do_siga_input(unsigned int irq, unsigned int mask)
365 "ipm %0 \n\t" 367 "ipm %0 \n\t"
366 "srl %0,28 \n\t" 368 "srl %0,28 \n\t"
367 : "=d" (cc) 369 : "=d" (cc)
368 : "d" (irq), "d" (mask) 370 : "d" (schid), "d" (mask)
369 : "cc", "0", "1", "2", "memory" 371 : "cc", "0", "1", "2", "memory"
370 ); 372 );
371#else /* CONFIG_ARCH_S390X */ 373#else /* CONFIG_ARCH_S390X */
@@ -377,7 +379,7 @@ do_siga_input(unsigned int irq, unsigned int mask)
377 "ipm %0 \n\t" 379 "ipm %0 \n\t"
378 "srl %0,28 \n\t" 380 "srl %0,28 \n\t"
379 : "=d" (cc) 381 : "=d" (cc)
380 : "d" (irq), "d" (mask) 382 : "d" (schid), "d" (mask)
381 : "cc", "0", "1", "2", "memory" 383 : "cc", "0", "1", "2", "memory"
382 ); 384 );
383#endif /* CONFIG_ARCH_S390X */ 385#endif /* CONFIG_ARCH_S390X */
@@ -386,7 +388,7 @@ do_siga_input(unsigned int irq, unsigned int mask)
386} 388}
387 389
388static inline int 390static inline int
389do_siga_output(unsigned long irq, unsigned long mask, __u32 *bb, 391do_siga_output(unsigned long schid, unsigned long mask, __u32 *bb,
390 unsigned int fc) 392 unsigned int fc)
391{ 393{
392 int cc; 394 int cc;
@@ -418,7 +420,7 @@ do_siga_output(unsigned long irq, unsigned long mask, __u32 *bb,
418 ".long 0b,2b \n\t" 420 ".long 0b,2b \n\t"
419 ".previous \n\t" 421 ".previous \n\t"
420 : "=d" (cc), "=d" (busy_bit) 422 : "=d" (cc), "=d" (busy_bit)
421 : "d" (irq), "d" (mask), 423 : "d" (schid), "d" (mask),
422 "i" (QDIO_SIGA_ERROR_ACCESS_EXCEPTION) 424 "i" (QDIO_SIGA_ERROR_ACCESS_EXCEPTION)
423 : "cc", "0", "1", "2", "memory" 425 : "cc", "0", "1", "2", "memory"
424 ); 426 );
@@ -443,7 +445,7 @@ do_siga_output(unsigned long irq, unsigned long mask, __u32 *bb,
443 ".quad 0b,1b \n\t" 445 ".quad 0b,1b \n\t"
444 ".previous \n\t" 446 ".previous \n\t"
445 : "=d" (cc), "=d" (busy_bit) 447 : "=d" (cc), "=d" (busy_bit)
446 : "d" (irq), "d" (mask), 448 : "d" (schid), "d" (mask),
447 "i" (QDIO_SIGA_ERROR_ACCESS_EXCEPTION), "d" (fc) 449 "i" (QDIO_SIGA_ERROR_ACCESS_EXCEPTION), "d" (fc)
448 : "cc", "0", "1", "2", "memory" 450 : "cc", "0", "1", "2", "memory"
449 ); 451 );
@@ -554,7 +556,7 @@ struct qdio_q {
554 __u32 * dev_st_chg_ind; 556 __u32 * dev_st_chg_ind;
555 557
556 int is_input_q; 558 int is_input_q;
557 int irq; 559 struct subchannel_id schid;
558 struct ccw_device *cdev; 560 struct ccw_device *cdev;
559 561
560 unsigned int is_iqdio_q; 562 unsigned int is_iqdio_q;
@@ -649,7 +651,7 @@ struct qdio_irq {
649 __u32 * volatile dev_st_chg_ind; 651 __u32 * volatile dev_st_chg_ind;
650 652
651 unsigned long int_parm; 653 unsigned long int_parm;
652 int irq; 654 struct subchannel_id schid;
653 655
654 unsigned int is_iqdio_irq; 656 unsigned int is_iqdio_irq;
655 unsigned int is_thinint_irq; 657 unsigned int is_thinint_irq;