]> Pileus Git - ~andy/linux/blobdiff - drivers/media/video/cx25840/cx25840-ir.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[~andy/linux] / drivers / media / video / cx25840 / cx25840-ir.c
index 7eb79af28aa3737780ca3cf7ea101b5530094874..b718a3a4bed359ecfa3b7b178ce56508c79a920c 100644 (file)
@@ -668,7 +668,7 @@ static int cx25840_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count,
        u16 divider;
        unsigned int i, n;
        union cx25840_ir_fifo_rec *p;
-       unsigned u, v;
+       unsigned u, v, w;
 
        if (ir_state == NULL)
                return -ENODEV;
@@ -694,11 +694,12 @@ static int cx25840_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count,
                if ((p->hw_fifo_data & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) {
                        /* Assume RTO was because of no IR light input */
                        u = 0;
-                       v4l2_dbg(2, ir_debug, sd, "rx read: end of rx\n");
+                       w = 1;
                } else {
                        u = (p->hw_fifo_data & FIFO_RXTX_LVL) ? 1 : 0;
                        if (invert)
                                u = u ? 0 : 1;
+                       w = 0;
                }
 
                v = (unsigned) pulse_width_count_to_ns(
@@ -709,9 +710,12 @@ static int cx25840_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count,
                init_ir_raw_event(&p->ir_core_data);
                p->ir_core_data.pulse = u;
                p->ir_core_data.duration = v;
+               p->ir_core_data.timeout = w;
 
-               v4l2_dbg(2, ir_debug, sd, "rx read: %10u ns  %s\n",
-                        v, u ? "mark" : "space");
+               v4l2_dbg(2, ir_debug, sd, "rx read: %10u ns  %s  %s\n",
+                        v, u ? "mark" : "space", w ? "(timed out)" : "");
+               if (w)
+                       v4l2_dbg(2, ir_debug, sd, "rx read: end of rx\n");
        }
        return 0;
 }