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

frontends/cxd2843: get_ber_t2() deadlock fix

This commit is contained in:
Andrey Dyldin 2016-08-31 15:27:00 +05:00
parent bb191aa5d7
commit a6770c8b99

View File

@ -1504,9 +1504,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;
@ -1514,7 +1514,6 @@ static int get_ber_t2(struct cxd_state *state, u32 *n, u32 *d)
if (FECType > 1) if (FECType > 1)
return 0; return 0;
readregst(state, 0x20, 0x72, &Scale, 1); readregst(state, 0x20, 0x72, &Scale, 1);
Scale &= 0x0F; Scale &= 0x0F;
if (BERRegs[0] & 0x01) { if (BERRegs[0] & 0x01) {
@ -1529,6 +1528,7 @@ static int get_ber_t2(struct cxd_state *state, u32 *n, u32 *d)
} }
*n = state->LastBERNominator; *n = state->LastBERNominator;
*d = state->LastBERDenominator; *d = state->LastBERDenominator;
return 0; return 0;
} }