1
0
mirror of https://github.com/DigitalDevices/dddvb.git synced 2023-10-10 13:37:43 +02:00

Fix dead lock in T2 BER

thanks to Andrey Dyldin (cesbo) for heads up
This commit is contained in:
mvoelkel 2016-08-31 19:10:23 +02:00
parent 4f452819df
commit 95b9a644b6

View File

@ -1606,9 +1606,9 @@ static int get_ber_t2(struct cxd_state *state, u32 *n, u32 *d)
*n = 0; *n = 0;
*d = 1; *d = 1;
freeze_regst(state); freeze_regst(state);
readregst(state, 0x24, 0x40, BERRegs, 4); readregst_unlocked(state, 0x24, 0x40, BERRegs, 4);
readregst(state, 0x22, 0x5e, &FECType, 1); readregst_unlocked(state, 0x22, 0x5e, &FECType, 1);
readregst(state, 0x22, 0x5b, &CodeRate, 1); readregst_unlocked(state, 0x22, 0x5b, &CodeRate, 1);
FECType &= 0x03; FECType &= 0x03;
CodeRate &= 0x07; CodeRate &= 0x07;
@ -1619,7 +1619,7 @@ static int get_ber_t2(struct cxd_state *state, u32 *n, u32 *d)
readregst(state, 0x20, 0x72, &Scale, 1); readregst(state, 0x20, 0x72, &Scale, 1);
Scale &= 0x0F; Scale &= 0x0F;
if (BERRegs[0] & 0x01) { if (BERRegs[0] & 0x01) {
state->LastBERNumerator = (((u32) BERRegs[1] & 0x3F) << 16) | state->LastBERNumerator = (((u32) BERRegs[1] & 0x3F) << 16) |
(((u32) BERRegs[2]) << 8) | BERRegs[3]; (((u32) BERRegs[2]) << 8) | BERRegs[3];
state->LastBERDenominator = nBCHBitsLookup[FECType][CodeRate] << Scale; state->LastBERDenominator = nBCHBitsLookup[FECType][CodeRate] << Scale;