From 6f755408f3ede106c4e09fc352522592d2e84b46 Mon Sep 17 00:00:00 2001 From: Joachim Fenkes Date: Thu, 12 Jul 2007 17:47:45 +0200 Subject: [PATCH] --- yaml --- r: 61417 b: refs/heads/master c: fbb9318be4b6eba36482e1275729c5c3dfdf8156 h: refs/heads/master i: 61415: 7d9a56c634430199e3a4e1ce437b1dc0a8af9e8c v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/hw/ehca/ehca_main.c | 29 ++++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 98afae1ad6df..57e90efb5ba9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8fcea95a2a15444d5cc4bee174bb12233aa0a2aa +refs/heads/master: fbb9318be4b6eba36482e1275729c5c3dfdf8156 diff --git a/trunk/drivers/infiniband/hw/ehca/ehca_main.c b/trunk/drivers/infiniband/hw/ehca/ehca_main.c index 28ba2dd24216..203d01f87c30 100644 --- a/trunk/drivers/infiniband/hw/ehca/ehca_main.c +++ b/trunk/drivers/infiniband/hw/ehca/ehca_main.c @@ -263,22 +263,27 @@ int ehca_sense_attributes(struct ehca_shca *shca) ehca_gen_dbg(" ... hardware version=%x:%x", hcaaver, revid); - if ((hcaaver == 1) && (revid == 0)) - shca->hw_level = 0x11; - else if ((hcaaver == 1) && (revid == 1)) - shca->hw_level = 0x12; - else if ((hcaaver == 1) && (revid == 2)) - shca->hw_level = 0x13; - else if ((hcaaver == 2) && (revid == 0)) - shca->hw_level = 0x21; - else if ((hcaaver == 2) && (revid == 0x10)) - shca->hw_level = 0x22; - else { + if (hcaaver == 1) { + if (revid <= 3) + shca->hw_level = 0x10 | (revid + 1); + else + shca->hw_level = 0x14; + } else if (hcaaver == 2) { + if (revid == 0) + shca->hw_level = 0x21; + else if (revid == 0x10) + shca->hw_level = 0x22; + else if (revid == 0x20 || revid == 0x21) + shca->hw_level = 0x23; + } + + if (!shca->hw_level) { ehca_gen_warn("unknown hardware version" " - assuming default level"); shca->hw_level = 0x22; } - } + } else + shca->hw_level = ehca_hw_level; ehca_gen_dbg(" ... hardware level=%x", shca->hw_level); shca->sport[0].rate = IB_RATE_30_GBPS;