Commit 95cf60aa authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] ir: Fix IR_MAX_DURATION enforcement

Don't assume that IR_MAX_DURATION is a bitmask. It isn't.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 485bdbb6
...@@ -322,7 +322,7 @@ static u32 redrat3_us_to_len(u32 microsec) ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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);
} }
......
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