V4L/DVB: cx23885, cx25840: Report the actual length of an IR Rx timeout event

Instead of reporting an IR Rx timeout event as a ridiculously
long space, report it as a space of the lenght of the timeout.

This partially fixes operation with LIRC without breaking
interoperation with the in kernel decoders.  The gaps lengths
reported to LIRC are still not real however.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/video/cx23885/cx23888-ir.c b/drivers/media/video/cx23885/cx23888-ir.c
index aa07286..684d23d 100644
--- a/drivers/media/video/cx23885/cx23888-ir.c
+++ b/drivers/media/video/cx23885/cx23888-ir.c
@@ -675,15 +675,17 @@
 	*num = n * sizeof(u32);
 
 	for (p = (u32 *) buf, i = 0; i < n; p++, i++) {
-		if ((*p & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) {
-			*p = V4L2_SUBDEV_IR_PULSE_RX_SEQ_END;
-			v4l2_dbg(2, ir_888_debug, sd, "rx read: end of rx\n");
-			continue;
-		}
 
-		u = (*p & FIFO_RXTX_LVL) ? V4L2_SUBDEV_IR_PULSE_LEVEL_MASK : 0;
-		if (invert)
-			u = u ? 0 : V4L2_SUBDEV_IR_PULSE_LEVEL_MASK;
+		if ((*p & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) {
+			/* Assume RTO was because of no IR light input */
+			u = 0;
+			v4l2_dbg(2, ir_888_debug, sd, "rx read: end of rx\n");
+		} else {
+			u = (*p & FIFO_RXTX_LVL)
+					  ? V4L2_SUBDEV_IR_PULSE_LEVEL_MASK : 0;
+			if (invert)
+				u = u ? 0 : V4L2_SUBDEV_IR_PULSE_LEVEL_MASK;
+		}
 
 		v = (u32) pulse_width_count_to_ns((u16) (*p & FIFO_RXTX),
 						  divider);