diff options
-rw-r--r-- | drivers/media/video/cx23885/cx23885-input.c | 6 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23888-ir.c | 14 | ||||
-rw-r--r-- | drivers/media/video/cx25840/cx25840-ir.c | 14 |
3 files changed, 16 insertions, 18 deletions
diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c index 3f924e21b957..252817acc35b 100644 --- a/drivers/media/video/cx23885/cx23885-input.c +++ b/drivers/media/video/cx23885/cx23885-input.c | |||
@@ -46,12 +46,6 @@ | |||
46 | 46 | ||
47 | static void convert_measurement(u32 x, struct ir_raw_event *y) | 47 | static void convert_measurement(u32 x, struct ir_raw_event *y) |
48 | { | 48 | { |
49 | if (x == V4L2_SUBDEV_IR_PULSE_RX_SEQ_END) { | ||
50 | y->pulse = false; | ||
51 | y->duration = V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS; | ||
52 | return; | ||
53 | } | ||
54 | |||
55 | y->pulse = (x & V4L2_SUBDEV_IR_PULSE_LEVEL_MASK) ? true : false; | 49 | y->pulse = (x & V4L2_SUBDEV_IR_PULSE_LEVEL_MASK) ? true : false; |
56 | y->duration = x & V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS; | 50 | y->duration = x & V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS; |
57 | } | 51 | } |
diff --git a/drivers/media/video/cx23885/cx23888-ir.c b/drivers/media/video/cx23885/cx23888-ir.c index aa07286b8d9b..684d23db98a7 100644 --- a/drivers/media/video/cx23885/cx23888-ir.c +++ b/drivers/media/video/cx23885/cx23888-ir.c | |||
@@ -675,16 +675,18 @@ static int cx23888_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count, | |||
675 | *num = n * sizeof(u32); | 675 | *num = n * sizeof(u32); |
676 | 676 | ||
677 | for (p = (u32 *) buf, i = 0; i < n; p++, i++) { | 677 | for (p = (u32 *) buf, i = 0; i < n; p++, i++) { |
678 | |||
678 | if ((*p & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) { | 679 | if ((*p & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) { |
679 | *p = V4L2_SUBDEV_IR_PULSE_RX_SEQ_END; | 680 | /* Assume RTO was because of no IR light input */ |
681 | u = 0; | ||
680 | v4l2_dbg(2, ir_888_debug, sd, "rx read: end of rx\n"); | 682 | v4l2_dbg(2, ir_888_debug, sd, "rx read: end of rx\n"); |
681 | continue; | 683 | } else { |
684 | u = (*p & FIFO_RXTX_LVL) | ||
685 | ? V4L2_SUBDEV_IR_PULSE_LEVEL_MASK : 0; | ||
686 | if (invert) | ||
687 | u = u ? 0 : V4L2_SUBDEV_IR_PULSE_LEVEL_MASK; | ||
682 | } | 688 | } |
683 | 689 | ||
684 | u = (*p & FIFO_RXTX_LVL) ? V4L2_SUBDEV_IR_PULSE_LEVEL_MASK : 0; | ||
685 | if (invert) | ||
686 | u = u ? 0 : V4L2_SUBDEV_IR_PULSE_LEVEL_MASK; | ||
687 | |||
688 | v = (u32) pulse_width_count_to_ns((u16) (*p & FIFO_RXTX), | 690 | v = (u32) pulse_width_count_to_ns((u16) (*p & FIFO_RXTX), |
689 | divider); | 691 | divider); |
690 | if (v >= V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS) | 692 | if (v >= V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS) |
diff --git a/drivers/media/video/cx25840/cx25840-ir.c b/drivers/media/video/cx25840/cx25840-ir.c index 326c2554c05c..be23c5b37a2f 100644 --- a/drivers/media/video/cx25840/cx25840-ir.c +++ b/drivers/media/video/cx25840/cx25840-ir.c | |||
@@ -677,16 +677,18 @@ static int cx25840_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count, | |||
677 | *num = n * sizeof(u32); | 677 | *num = n * sizeof(u32); |
678 | 678 | ||
679 | for (p = (u32 *) buf, i = 0; i < n; p++, i++) { | 679 | for (p = (u32 *) buf, i = 0; i < n; p++, i++) { |
680 | |||
680 | if ((*p & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) { | 681 | if ((*p & FIFO_RXTX_RTO) == FIFO_RXTX_RTO) { |
681 | *p = V4L2_SUBDEV_IR_PULSE_RX_SEQ_END; | 682 | /* Assume RTO was because of no IR light input */ |
683 | u = 0; | ||
682 | v4l2_dbg(2, ir_debug, sd, "rx read: end of rx\n"); | 684 | v4l2_dbg(2, ir_debug, sd, "rx read: end of rx\n"); |
683 | continue; | 685 | } else { |
686 | u = (*p & FIFO_RXTX_LVL) | ||
687 | ? V4L2_SUBDEV_IR_PULSE_LEVEL_MASK : 0; | ||
688 | if (invert) | ||
689 | u = u ? 0 : V4L2_SUBDEV_IR_PULSE_LEVEL_MASK; | ||
684 | } | 690 | } |
685 | 691 | ||
686 | u = (*p & FIFO_RXTX_LVL) ? V4L2_SUBDEV_IR_PULSE_LEVEL_MASK : 0; | ||
687 | if (invert) | ||
688 | u = u ? 0 : V4L2_SUBDEV_IR_PULSE_LEVEL_MASK; | ||
689 | |||
690 | v = (u32) pulse_width_count_to_ns((u16) (*p & FIFO_RXTX), | 692 | v = (u32) pulse_width_count_to_ns((u16) (*p & FIFO_RXTX), |
691 | divider); | 693 | divider); |
692 | if (v >= V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS) | 694 | if (v >= V4L2_SUBDEV_IR_PULSE_MAX_WIDTH_NS) |