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

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

[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
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -322,7 +322,7 @@ static u32 redrat3_us_to_len(u32 microsec)
	u32 result;
	u32 divisor;

	microsec &= IR_MAX_DURATION;
	microsec = (microsec > IR_MAX_DURATION) ? IR_MAX_DURATION : microsec;
	divisor = (RR3_CLK_CONV_FACTOR / 1000);
	result = (u32)(microsec * divisor) / 1000;

@@ -380,7 +380,8 @@ static void redrat3_process_ir_data(struct redrat3_dev *rr3)
		if (i == 0)
			trailer = rawir.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",
			rawir.pulse ? "pulse" : "space", rawir.duration, i);
+4 −2
Original line number Diff line number Diff line
@@ -152,7 +152,8 @@ static void sz_push_full_pulse(struct streamzap_ir *sz,
				sz->signal_last.tv_usec);
			rawir.duration -= sz->sum;
			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);

@@ -165,7 +166,8 @@ static void sz_push_full_pulse(struct streamzap_ir *sz,
	rawir.duration += SZ_RESOLUTION / 2;
	sz->sum += 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);
}