diff options
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_common.h')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_common.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_common.h b/drivers/infiniband/hw/ipath/ipath_common.h index 10c008f22ba6..b4b786d0dfca 100644 --- a/drivers/infiniband/hw/ipath/ipath_common.h +++ b/drivers/infiniband/hw/ipath/ipath_common.h | |||
@@ -189,8 +189,7 @@ typedef enum _ipath_ureg { | |||
189 | #define IPATH_RUNTIME_FORCE_WC_ORDER 0x4 | 189 | #define IPATH_RUNTIME_FORCE_WC_ORDER 0x4 |
190 | #define IPATH_RUNTIME_RCVHDR_COPY 0x8 | 190 | #define IPATH_RUNTIME_RCVHDR_COPY 0x8 |
191 | #define IPATH_RUNTIME_MASTER 0x10 | 191 | #define IPATH_RUNTIME_MASTER 0x10 |
192 | #define IPATH_RUNTIME_PBC_REWRITE 0x20 | 192 | /* 0x20 and 0x40 are no longer used, but are reserved for ABI compatibility */ |
193 | #define IPATH_RUNTIME_LOOSE_DMA_ALIGN 0x40 | ||
194 | 193 | ||
195 | /* | 194 | /* |
196 | * This structure is returned by ipath_userinit() immediately after | 195 | * This structure is returned by ipath_userinit() immediately after |
@@ -432,8 +431,15 @@ struct ipath_user_info { | |||
432 | #define IPATH_CMD_UNUSED_1 25 | 431 | #define IPATH_CMD_UNUSED_1 25 |
433 | #define IPATH_CMD_UNUSED_2 26 | 432 | #define IPATH_CMD_UNUSED_2 26 |
434 | #define IPATH_CMD_PIOAVAILUPD 27 /* force an update of PIOAvail reg */ | 433 | #define IPATH_CMD_PIOAVAILUPD 27 /* force an update of PIOAvail reg */ |
434 | #define IPATH_CMD_POLL_TYPE 28 /* set the kind of polling we want */ | ||
435 | 435 | ||
436 | #define IPATH_CMD_MAX 27 | 436 | #define IPATH_CMD_MAX 28 |
437 | |||
438 | /* | ||
439 | * Poll types | ||
440 | */ | ||
441 | #define IPATH_POLL_TYPE_URGENT 0x01 | ||
442 | #define IPATH_POLL_TYPE_OVERFLOW 0x02 | ||
437 | 443 | ||
438 | struct ipath_port_info { | 444 | struct ipath_port_info { |
439 | __u32 num_active; /* number of active units */ | 445 | __u32 num_active; /* number of active units */ |
@@ -474,6 +480,8 @@ struct ipath_cmd { | |||
474 | __u16 part_key; | 480 | __u16 part_key; |
475 | /* user address of __u32 bitmask of active slaves */ | 481 | /* user address of __u32 bitmask of active slaves */ |
476 | __u64 slave_mask_addr; | 482 | __u64 slave_mask_addr; |
483 | /* type of polling we want */ | ||
484 | __u16 poll_type; | ||
477 | } cmd; | 485 | } cmd; |
478 | }; | 486 | }; |
479 | 487 | ||
@@ -502,13 +510,30 @@ struct __ipath_sendpkt { | |||
502 | struct ipath_iovec sps_iov[4]; | 510 | struct ipath_iovec sps_iov[4]; |
503 | }; | 511 | }; |
504 | 512 | ||
505 | /* Passed into diag data special file's ->write method. */ | 513 | /* |
514 | * diagnostics can send a packet by "writing" one of the following | ||
515 | * two structs to diag data special file | ||
516 | * The first is the legacy version for backward compatibility | ||
517 | */ | ||
506 | struct ipath_diag_pkt { | 518 | struct ipath_diag_pkt { |
507 | __u32 unit; | 519 | __u32 unit; |
508 | __u64 data; | 520 | __u64 data; |
509 | __u32 len; | 521 | __u32 len; |
510 | }; | 522 | }; |
511 | 523 | ||
524 | /* The second diag_pkt struct is the expanded version that allows | ||
525 | * more control over the packet, specifically, by allowing a custom | ||
526 | * pbc (+ extra) qword, so that special modes and deliberate | ||
527 | * changes to CRCs can be used. The elements were also re-ordered | ||
528 | * for better alignment and to avoid padding issues. | ||
529 | */ | ||
530 | struct ipath_diag_xpkt { | ||
531 | __u64 data; | ||
532 | __u64 pbc_wd; | ||
533 | __u32 unit; | ||
534 | __u32 len; | ||
535 | }; | ||
536 | |||
512 | /* | 537 | /* |
513 | * Data layout in I2C flash (for GUID, etc.) | 538 | * Data layout in I2C flash (for GUID, etc.) |
514 | * All fields are little-endian binary unless otherwise stated | 539 | * All fields are little-endian binary unless otherwise stated |