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:
parent
4f452819df
commit
95b9a644b6
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user