aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_common.h')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_common.h33
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
438struct ipath_port_info { 444struct 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 */
506struct ipath_diag_pkt { 518struct 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 */
530struct 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