Skip to content

Commit e2dda36

Browse files
Hans Westgaard Rydledford
authored andcommitted
RDMA/core: Add encode/decode FDR/EDR rates
The cases for FDR/EDR signalling speed, were missing in ib_rate_to_mult and mult_to_ib_rate giving wrong return values when drivers convert static rate to/from inter-packet-delay. Signed-off-by: Hans Westgaard Ry <hans.westgaard.ry@oracle.com> Reviewed-by: Håkon Bugge <haakon.bugge@oracle.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
1 parent 106b886 commit e2dda36

File tree

1 file changed

+36
-20
lines changed

1 file changed

+36
-20
lines changed

drivers/infiniband/core/verbs.c

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -124,33 +124,49 @@ EXPORT_SYMBOL(ib_wc_status_msg);
124124
__attribute_const__ int ib_rate_to_mult(enum ib_rate rate)
125125
{
126126
switch (rate) {
127-
case IB_RATE_2_5_GBPS: return 1;
128-
case IB_RATE_5_GBPS: return 2;
129-
case IB_RATE_10_GBPS: return 4;
130-
case IB_RATE_20_GBPS: return 8;
131-
case IB_RATE_30_GBPS: return 12;
132-
case IB_RATE_40_GBPS: return 16;
133-
case IB_RATE_60_GBPS: return 24;
134-
case IB_RATE_80_GBPS: return 32;
135-
case IB_RATE_120_GBPS: return 48;
136-
default: return -1;
127+
case IB_RATE_2_5_GBPS: return 1;
128+
case IB_RATE_5_GBPS: return 2;
129+
case IB_RATE_10_GBPS: return 4;
130+
case IB_RATE_20_GBPS: return 8;
131+
case IB_RATE_30_GBPS: return 12;
132+
case IB_RATE_40_GBPS: return 16;
133+
case IB_RATE_60_GBPS: return 24;
134+
case IB_RATE_80_GBPS: return 32;
135+
case IB_RATE_120_GBPS: return 48;
136+
case IB_RATE_14_GBPS: return 6;
137+
case IB_RATE_56_GBPS: return 22;
138+
case IB_RATE_112_GBPS: return 45;
139+
case IB_RATE_168_GBPS: return 67;
140+
case IB_RATE_25_GBPS: return 10;
141+
case IB_RATE_100_GBPS: return 40;
142+
case IB_RATE_200_GBPS: return 80;
143+
case IB_RATE_300_GBPS: return 120;
144+
default: return -1;
137145
}
138146
}
139147
EXPORT_SYMBOL(ib_rate_to_mult);
140148

141149
__attribute_const__ enum ib_rate mult_to_ib_rate(int mult)
142150
{
143151
switch (mult) {
144-
case 1: return IB_RATE_2_5_GBPS;
145-
case 2: return IB_RATE_5_GBPS;
146-
case 4: return IB_RATE_10_GBPS;
147-
case 8: return IB_RATE_20_GBPS;
148-
case 12: return IB_RATE_30_GBPS;
149-
case 16: return IB_RATE_40_GBPS;
150-
case 24: return IB_RATE_60_GBPS;
151-
case 32: return IB_RATE_80_GBPS;
152-
case 48: return IB_RATE_120_GBPS;
153-
default: return IB_RATE_PORT_CURRENT;
152+
case 1: return IB_RATE_2_5_GBPS;
153+
case 2: return IB_RATE_5_GBPS;
154+
case 4: return IB_RATE_10_GBPS;
155+
case 8: return IB_RATE_20_GBPS;
156+
case 12: return IB_RATE_30_GBPS;
157+
case 16: return IB_RATE_40_GBPS;
158+
case 24: return IB_RATE_60_GBPS;
159+
case 32: return IB_RATE_80_GBPS;
160+
case 48: return IB_RATE_120_GBPS;
161+
case 6: return IB_RATE_14_GBPS;
162+
case 22: return IB_RATE_56_GBPS;
163+
case 45: return IB_RATE_112_GBPS;
164+
case 67: return IB_RATE_168_GBPS;
165+
case 10: return IB_RATE_25_GBPS;
166+
case 40: return IB_RATE_100_GBPS;
167+
case 80: return IB_RATE_200_GBPS;
168+
case 120: return IB_RATE_300_GBPS;
169+
default: return IB_RATE_PORT_CURRENT;
154170
}
155171
}
156172
EXPORT_SYMBOL(mult_to_ib_rate);

0 commit comments

Comments
 (0)