[media] ir: Fix IR_MAX_DURATION enforcement
Don't assume that IR_MAX_DURATION is a bitmask. It isn't. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
485bdbb6b8
commit
95cf60aa55
@ -322,7 +322,7 @@ static u32 redrat3_us_to_len(u32 microsec)
|
|||||||
u32 result;
|
u32 result;
|
||||||
u32 divisor;
|
u32 divisor;
|
||||||
|
|
||||||
microsec &= IR_MAX_DURATION;
|
microsec = (microsec > IR_MAX_DURATION) ? IR_MAX_DURATION : microsec;
|
||||||
divisor = (RR3_CLK_CONV_FACTOR / 1000);
|
divisor = (RR3_CLK_CONV_FACTOR / 1000);
|
||||||
result = (u32)(microsec * divisor) / 1000;
|
result = (u32)(microsec * divisor) / 1000;
|
||||||
|
|
||||||
@ -380,7 +380,8 @@ static void redrat3_process_ir_data(struct redrat3_dev *rr3)
|
|||||||
if (i == 0)
|
if (i == 0)
|
||||||
trailer = rawir.duration;
|
trailer = rawir.duration;
|
||||||
/* cap the value to IR_MAX_DURATION */
|
/* cap the value to IR_MAX_DURATION */
|
||||||
rawir.duration &= IR_MAX_DURATION;
|
rawir.duration = (rawir.duration > IR_MAX_DURATION) ?
|
||||||
|
IR_MAX_DURATION : rawir.duration;
|
||||||
|
|
||||||
dev_dbg(dev, "storing %s with duration %d (i: %d)\n",
|
dev_dbg(dev, "storing %s with duration %d (i: %d)\n",
|
||||||
rawir.pulse ? "pulse" : "space", rawir.duration, i);
|
rawir.pulse ? "pulse" : "space", rawir.duration, i);
|
||||||
|
@ -152,7 +152,8 @@ static void sz_push_full_pulse(struct streamzap_ir *sz,
|
|||||||
sz->signal_last.tv_usec);
|
sz->signal_last.tv_usec);
|
||||||
rawir.duration -= sz->sum;
|
rawir.duration -= sz->sum;
|
||||||
rawir.duration = US_TO_NS(rawir.duration);
|
rawir.duration = US_TO_NS(rawir.duration);
|
||||||
rawir.duration &= IR_MAX_DURATION;
|
rawir.duration = (rawir.duration > IR_MAX_DURATION) ?
|
||||||
|
IR_MAX_DURATION : rawir.duration;
|
||||||
}
|
}
|
||||||
sz_push(sz, rawir);
|
sz_push(sz, rawir);
|
||||||
|
|
||||||
@ -165,7 +166,8 @@ static void sz_push_full_pulse(struct streamzap_ir *sz,
|
|||||||
rawir.duration += SZ_RESOLUTION / 2;
|
rawir.duration += SZ_RESOLUTION / 2;
|
||||||
sz->sum += rawir.duration;
|
sz->sum += rawir.duration;
|
||||||
rawir.duration = US_TO_NS(rawir.duration);
|
rawir.duration = US_TO_NS(rawir.duration);
|
||||||
rawir.duration &= IR_MAX_DURATION;
|
rawir.duration = (rawir.duration > IR_MAX_DURATION) ?
|
||||||
|
IR_MAX_DURATION : rawir.duration;
|
||||||
sz_push(sz, rawir);
|
sz_push(sz, rawir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user