si: Make sure to not overwrite orig_arfcn_hi in the range encoding
Andreas highlighted that the doubel assignment is not needed and wrong. Change the code to assign chan_list[0] before writing the base frequency to the header. Update the testcase to make the highest bit set and update the test result.
This commit is contained in:
parent
e18209c975
commit
27a788ddb9
|
@ -210,10 +210,10 @@ int range_enc_range256(uint8_t *chan_list, int f0, int *w)
|
||||||
int range_enc_range512(uint8_t *chan_list, int f0, int *w)
|
int range_enc_range512(uint8_t *chan_list, int f0, int *w)
|
||||||
{
|
{
|
||||||
struct gsm48_range_512 *range512;
|
struct gsm48_range_512 *range512;
|
||||||
|
chan_list[0] = 0x88;
|
||||||
write_orig_arfcn(chan_list, f0);
|
write_orig_arfcn(chan_list, f0);
|
||||||
|
|
||||||
range512 = (struct gsm48_range_512 *) &chan_list[0];
|
range512 = (struct gsm48_range_512 *) &chan_list[0];
|
||||||
range512->form_id = chan_list[0] = 0x44;
|
|
||||||
|
|
||||||
/* W(1) */
|
/* W(1) */
|
||||||
range512->w1_hi = HIGH_BITS(w, 1, 9, 7);
|
range512->w1_hi = HIGH_BITS(w, 1, 9, 7);
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void test_print_encoding()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = range_enc_range512(chan_list, 0x96, w);
|
rc = range_enc_range512(chan_list, (1 << 9) | 0x96, w);
|
||||||
VERIFY(rc, ==, 0);
|
VERIFY(rc, ==, 0);
|
||||||
|
|
||||||
printf("Range512: %s\n", osmo_hexdump(chan_list, ARRAY_SIZE(chan_list)));
|
printf("Range512: %s\n", osmo_hexdump(chan_list, ARRAY_SIZE(chan_list)));
|
||||||
|
|
|
@ -17,4 +17,4 @@ w[12]=54
|
||||||
w[13]=64
|
w[13]=64
|
||||||
w[14]=70
|
w[14]=70
|
||||||
w[15]=9
|
w[15]=9
|
||||||
Range512: 88 4b 2a 95 65 95 55 2c a9 55 aa 55 6a 95 59 55
|
Range512: 89 4b 2a 95 65 95 55 2c a9 55 aa 55 6a 95 59 55
|
||||||
|
|
Loading…
Reference in New Issue