[media] mb86a20s: Fix Interleaving
Interleaving code was wrong at mb86a20s: instead, it was looking at the Guard Interval. Fix it. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
276dfc4b99
commit
4247368bf7
|
@ -459,6 +459,9 @@ static int mb86a20s_get_interleaving(struct mb86a20s_state *state,
|
||||||
unsigned layer)
|
unsigned layer)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
int interleaving[] = {
|
||||||
|
0, 1, 2, 4, 8
|
||||||
|
};
|
||||||
|
|
||||||
static unsigned char reg[] = {
|
static unsigned char reg[] = {
|
||||||
[0] = 0x88, /* Layer A */
|
[0] = 0x88, /* Layer A */
|
||||||
|
@ -475,20 +478,7 @@ static int mb86a20s_get_interleaving(struct mb86a20s_state *state,
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
switch ((rc >> 4) & 0x07) {
|
return interleaving[(rc >> 4) & 0x07];
|
||||||
case 1:
|
|
||||||
return GUARD_INTERVAL_1_4;
|
|
||||||
case 2:
|
|
||||||
return GUARD_INTERVAL_1_8;
|
|
||||||
case 3:
|
|
||||||
return GUARD_INTERVAL_1_16;
|
|
||||||
case 4:
|
|
||||||
return GUARD_INTERVAL_1_32;
|
|
||||||
|
|
||||||
default:
|
|
||||||
case 0:
|
|
||||||
return GUARD_INTERVAL_AUTO;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mb86a20s_get_segment_count(struct mb86a20s_state *state,
|
static int mb86a20s_get_segment_count(struct mb86a20s_state *state,
|
||||||
|
|
Loading…
Reference in New Issue