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 |
