diff options
Diffstat (limited to 'drivers/infiniband/core/verbs.c')
-rw-r--r-- | drivers/infiniband/core/verbs.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index cae0845f472a..b78e7dc69330 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c | |||
@@ -45,6 +45,40 @@ | |||
45 | #include <rdma/ib_verbs.h> | 45 | #include <rdma/ib_verbs.h> |
46 | #include <rdma/ib_cache.h> | 46 | #include <rdma/ib_cache.h> |
47 | 47 | ||
48 | int ib_rate_to_mult(enum ib_rate rate) | ||
49 | { | ||
50 | switch (rate) { | ||
51 | case IB_RATE_2_5_GBPS: return 1; | ||
52 | case IB_RATE_5_GBPS: return 2; | ||
53 | case IB_RATE_10_GBPS: return 4; | ||
54 | case IB_RATE_20_GBPS: return 8; | ||
55 | case IB_RATE_30_GBPS: return 12; | ||
56 | case IB_RATE_40_GBPS: return 16; | ||
57 | case IB_RATE_60_GBPS: return 24; | ||
58 | case IB_RATE_80_GBPS: return 32; | ||
59 | case IB_RATE_120_GBPS: return 48; | ||
60 | default: return -1; | ||
61 | } | ||
62 | } | ||
63 | EXPORT_SYMBOL(ib_rate_to_mult); | ||
64 | |||
65 | enum ib_rate mult_to_ib_rate(int mult) | ||
66 | { | ||
67 | switch (mult) { | ||
68 | case 1: return IB_RATE_2_5_GBPS; | ||
69 | case 2: return IB_RATE_5_GBPS; | ||
70 | case 4: return IB_RATE_10_GBPS; | ||
71 | case 8: return IB_RATE_20_GBPS; | ||
72 | case 12: return IB_RATE_30_GBPS; | ||
73 | case 16: return IB_RATE_40_GBPS; | ||
74 | case 24: return IB_RATE_60_GBPS; | ||
75 | case 32: return IB_RATE_80_GBPS; | ||
76 | case 48: return IB_RATE_120_GBPS; | ||
77 | default: return IB_RATE_PORT_CURRENT; | ||
78 | } | ||
79 | } | ||
80 | EXPORT_SYMBOL(mult_to_ib_rate); | ||
81 | |||
48 | /* Protection domains */ | 82 | /* Protection domains */ |
49 | 83 | ||
50 | struct ib_pd *ib_alloc_pd(struct ib_device *device) | 84 | struct ib_pd *ib_alloc_pd(struct ib_device *device) |