Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -3429,9 +3429,13 @@ static int dib8000_get_frontend(struct dvb_frontend *fe)
		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);

		val = dib8000_read_word(state, 499 + i);
		fe->dtv_property_cache.layer[i].interleaving = val & 0x3;
		dprintk("dib8000_get_frontend : Layer %d time_intlv = %d ", i, fe->dtv_property_cache.layer[i].interleaving);
		val = dib8000_read_word(state, 499 + i) & 0x3;
		/* Interleaving can be 0, 1, 2 or 4 */
		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);
		switch (val & 0x7) {