summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885-ioctl.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-09-26 23:17:30 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 18:40:16 -0200
commit29f8a0a50ac32ac4bc1937dcfdf8de6c406a5f10 (patch)
tree8a7406ebbb15dd7743543901eaeafc00708d31c5 /drivers/media/video/cx23885/cx23885-ioctl.c
parent74618244003a5a9e11240af8c5795ae747d9a2e0 (diff)
V4L/DVB (13086): cx23885: Add skeleton v4l2_subdev for the CX23888 integrated IR controller
This change adds a skeletal implementation of a v4l2_subdevice to provide encapsulation and abstraction of the CX23888's integrated consumer infrared controller. This change also instantiates the cx23888_ir subdev for the HVR-1850 which has IR hardware physically wired up to a CX23888. The cx23888_ir subdev code is being written with long-term objectives to: 1. port it to the cx25840 module for the CX2584x, CX2583x, CX23885, & CX231xx IR controllers 2. possibly port it to the cx18 module for the CX23418 IR controller 3. have the IR subdevice accessed abstractly in the cx23885 module, so the driver can ignore the difference between the CX23885 and CX23888. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-ioctl.c')
-rw-r--r--drivers/media/video/cx23885/cx23885-ioctl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-ioctl.c b/drivers/media/video/cx23885/cx23885-ioctl.c
index 3a497b6c4fd..dfb4627fb34 100644
--- a/drivers/media/video/cx23885/cx23885-ioctl.c
+++ b/drivers/media/video/cx23885/cx23885-ioctl.c
@@ -65,6 +65,17 @@ int cx23885_g_chip_ident(struct file *file, void *fh,
chip->revision = 0;
}
break;
+ case 2:
+ /*
+ * The integrated IR controller on the CX23888 is
+ * host chip 2. It may not be used/initialized or sd_ir
+ * may be pointing at the cx25840 subdevice for the
+ * IR controller on the CX23885. Thus we find it
+ * without using the dev->sd_ir pointer.
+ */
+ call_hw(dev, CX23885_HW_888_IR, core, g_chip_ident,
+ chip);
+ break;
default:
err = -EINVAL; /* per V4L2 spec */
break;