si: Fix range512 encoding

This patch fixes a bug in the range encoder that leads to wrong
encoding when 17 or more ARFCNs are encoded.

Sponsored-by: On-Waves ehf
diff --git a/openbsc/tests/gsm0408/gsm0408_test.ok b/openbsc/tests/gsm0408/gsm0408_test.ok
index 5458669..dab495d 100644
--- a/openbsc/tests/gsm0408/gsm0408_test.ok
+++ b/openbsc/tests/gsm0408/gsm0408_test.ok
@@ -35,10 +35,9 @@
 Decoded freqs 18 (expected 18)
 Decoded: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
 Range test 3: range 511, num ARFCNs 18
-chan_list = 88 00 94 3a 44 32 d7 2a 43 2a 13 94 e5 38 39 76 
+chan_list = 88 00 94 3a 44 32 d7 2a 43 2a 13 94 e5 38 39 f6 
 Decoded freqs 18 (expected 18)
-Decoded: 1 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 417 507 (!= 511) 
-Decoding error, got wrong freqs
+Decoded: 1 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 417 511 
 Range test 4: range 511, num ARFCNs 6
 chan_list = 88 00 8b 3c 88 b9 6b 00 00 00 00 00 00 00 00 00 
 Decoded freqs 6 (expected 6)
@@ -60,12 +59,6 @@
 Failed on test 0, range 255, num ARFCNs 1
 Cannot encode range, rc = -1
 Random range test: range 511, max num ARFCNs 18
-Decoding error, got wrong freqs
-Failed on test 0, range 511, num ARFCNs 17
-chan_list = 88 21 55 fc da d7 76 03 31 2f ed 45 dc 93 d6 80 
-Decoded freqs 17 (expected 17)
-Decoded: 66 81 161 250 314 343 383 (!= 380) 395 396 397 409 429 505 506 516 518 545 
-Decoding error, got wrong freqs
 Random range test: range 1023, max num ARFCNs 16
 Cannot encode range, rc = -1
 Failed on test 0, range 1023, num ARFCNs 1