Commit 51fea113 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] dib8000: report Interleaving 4 correctly

On ISDB-T, the valid values for interleaving are 0, 1, 2 and 4.
While the first 3 are properly reported, the last one is reported
as 3 instead. Fix it.

Tested with a Dektec DTA-2111 RF generator.
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
Acked-by: default avatarPatrick Boettcher <pboettcher@kernellabs.com>
parent ad976187
...@@ -3429,9 +3429,13 @@ static int dib8000_get_frontend(struct dvb_frontend *fe) ...@@ -3429,9 +3429,13 @@ static int dib8000_get_frontend(struct dvb_frontend *fe)
fe->dtv_property_cache.layer[i].segment_count = val & 0x0F; fe->dtv_property_cache.layer[i].segment_count = val & 0x0F;
dprintk("dib8000_get_frontend : Layer %d segments = %d ", i, fe->dtv_property_cache.layer[i].segment_count); dprintk("dib8000_get_frontend : Layer %d segments = %d ", i, fe->dtv_property_cache.layer[i].segment_count);
val = dib8000_read_word(state, 499 + i); val = dib8000_read_word(state, 499 + i) & 0x3;
fe->dtv_property_cache.layer[i].interleaving = val & 0x3; /* Interleaving can be 0, 1, 2 or 4 */
dprintk("dib8000_get_frontend : Layer %d time_intlv = %d ", i, fe->dtv_property_cache.layer[i].interleaving); if (val == 3)
val = 4;
fe->dtv_property_cache.layer[i].interleaving = val;
dprintk("dib8000_get_frontend : Layer %d time_intlv = %d ",
i, fe->dtv_property_cache.layer[i].interleaving);
val = dib8000_read_word(state, 481 + i); val = dib8000_read_word(state, 481 + i);
switch (val & 0x7) { switch (val & 0x7) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment