Skip to content

Commit

Permalink
IB/ehca: Return physical link information in query_port()
Browse files Browse the repository at this point in the history
Newer firmware versions return physical port information to the
partition, so hand that information to the consumer if it's present.

Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
  • Loading branch information
Joachim Fenkes authored and Roland Dreier committed Nov 13, 2007
1 parent f4ad1bc commit 40ebb56
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
20 changes: 14 additions & 6 deletions drivers/infiniband/hw/ehca/ehca_hca.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ int ehca_query_port(struct ib_device *ibdev,
}

memset(props, 0, sizeof(struct ib_port_attr));
props->state = rblock->state;

switch (rblock->max_mtu) {
case 0x1:
Expand Down Expand Up @@ -188,11 +187,20 @@ int ehca_query_port(struct ib_device *ibdev,
props->subnet_timeout = rblock->subnet_timeout;
props->init_type_reply = rblock->init_type_reply;

props->active_width = IB_WIDTH_12X;
props->active_speed = 0x1;

/* at the moment (logical) link state is always LINK_UP */
props->phys_state = 0x5;
if (rblock->state && rblock->phys_width) {
props->phys_state = rblock->phys_pstate;
props->state = rblock->phys_state;
props->active_width = rblock->phys_width;
props->active_speed = rblock->phys_speed;
} else {
/* old firmware releases don't report physical
* port info, so use default values
*/
props->phys_state = 5;
props->state = rblock->state;
props->active_width = IB_WIDTH_12X;
props->active_speed = 0x1;
}

query_port1:
ehca_free_fw_ctrlblock(rblock);
Expand Down
6 changes: 5 additions & 1 deletion drivers/infiniband/hw/ehca/hipz_hw.h
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,11 @@ struct hipz_query_port {
u64 max_msg_sz;
u32 max_mtu;
u32 vl_cap;
u8 reserved2[1900];
u32 phys_pstate;
u32 phys_state;
u32 phys_speed;
u32 phys_width;
u8 reserved2[1884];
u64 guid_entries[255];
} __attribute__ ((packed));

Expand Down

0 comments on commit 40ebb56

Please sign in to comment.