aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r--drivers/media/video/cx23885/Kconfig2
-rw-r--r--drivers/media/video/cx23885/cimax2.c24
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c35
-rw-r--r--drivers/media/video/cx23885/cx23885-input.c70
-rw-r--r--drivers/media/video/cx23885/cx23885-video.c37
-rw-r--r--drivers/media/video/cx23885/cx23885.h6
-rw-r--r--drivers/media/video/cx23885/cx23888-ir.c2
7 files changed, 90 insertions, 86 deletions
diff --git a/drivers/media/video/cx23885/Kconfig b/drivers/media/video/cx23885/Kconfig
index e1367b35647..6b4a516addf 100644
--- a/drivers/media/video/cx23885/Kconfig
+++ b/drivers/media/video/cx23885/Kconfig
@@ -5,7 +5,7 @@ config VIDEO_CX23885
5 select VIDEO_BTCX 5 select VIDEO_BTCX
6 select VIDEO_TUNER 6 select VIDEO_TUNER
7 select VIDEO_TVEEPROM 7 select VIDEO_TVEEPROM
8 depends on IR_CORE 8 depends on RC_CORE
9 select VIDEOBUF_DVB 9 select VIDEOBUF_DVB
10 select VIDEOBUF_DMA_SG 10 select VIDEOBUF_DMA_SG
11 select VIDEO_CX25840 11 select VIDEO_CX25840
diff --git a/drivers/media/video/cx23885/cimax2.c b/drivers/media/video/cx23885/cimax2.c
index c95e7bc1474..209b971bd26 100644
--- a/drivers/media/video/cx23885/cimax2.c
+++ b/drivers/media/video/cx23885/cimax2.c
@@ -368,7 +368,7 @@ static void netup_read_ci_status(struct work_struct *work)
368 DVB_CA_EN50221_POLL_CAM_READY; 368 DVB_CA_EN50221_POLL_CAM_READY;
369 else 369 else
370 state->status = 0; 370 state->status = 0;
371 }; 371 }
372} 372}
373 373
374/* CI irq handler */ 374/* CI irq handler */
@@ -377,16 +377,24 @@ int netup_ci_slot_status(struct cx23885_dev *dev, u32 pci_status)
377 struct cx23885_tsport *port = NULL; 377 struct cx23885_tsport *port = NULL;
378 struct netup_ci_state *state = NULL; 378 struct netup_ci_state *state = NULL;
379 379
380 if (pci_status & PCI_MSK_GPIO0) 380 ci_dbg_print("%s:\n", __func__);
381 port = &dev->ts1; 381
382 else if (pci_status & PCI_MSK_GPIO1) 382 if (0 == (pci_status & (PCI_MSK_GPIO0 | PCI_MSK_GPIO1)))
383 port = &dev->ts2;
384 else /* who calls ? */
385 return 0; 383 return 0;
386 384
387 state = port->port_priv; 385 if (pci_status & PCI_MSK_GPIO0) {
386 port = &dev->ts1;
387 state = port->port_priv;
388 schedule_work(&state->work);
389 ci_dbg_print("%s: Wakeup CI0\n", __func__);
390 }
388 391
389 schedule_work(&state->work); 392 if (pci_status & PCI_MSK_GPIO1) {
393 port = &dev->ts2;
394 state = port->port_priv;
395 schedule_work(&state->work);
396 ci_dbg_print("%s: Wakeup CI1\n", __func__);
397 }
390 398
391 return 1; 399 return 1;
392} 400}
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index db054004e46..b298b730943 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -309,6 +309,26 @@ struct cx23885_board cx23885_boards[] = {
309 CX25840_COMPONENT_ON, 309 CX25840_COMPONENT_ON,
310 } }, 310 } },
311 }, 311 },
312 [CX23885_BOARD_GOTVIEW_X5_3D_HYBRID] = {
313 .name = "GoTView X5 3D Hybrid",
314 .tuner_type = TUNER_XC5000,
315 .tuner_addr = 0x64,
316 .porta = CX23885_ANALOG_VIDEO,
317 .portb = CX23885_MPEG_DVB,
318 .input = {{
319 .type = CX23885_VMUX_TELEVISION,
320 .vmux = CX25840_VIN2_CH1 |
321 CX25840_VIN5_CH2,
322 .gpio0 = 0x02,
323 }, {
324 .type = CX23885_VMUX_COMPOSITE1,
325 .vmux = CX23885_VMUX_COMPOSITE1,
326 }, {
327 .type = CX23885_VMUX_SVIDEO,
328 .vmux = CX25840_SVIDEO_LUMA3 |
329 CX25840_SVIDEO_CHROMA4,
330 } },
331 },
312}; 332};
313const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); 333const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
314 334
@@ -496,6 +516,10 @@ struct cx23885_subid cx23885_subids[] = {
496 .subvendor = 0x107d, 516 .subvendor = 0x107d,
497 .subdevice = 0x6f22, 517 .subdevice = 0x6f22,
498 .card = CX23885_BOARD_LEADTEK_WINFAST_PXTV1200, 518 .card = CX23885_BOARD_LEADTEK_WINFAST_PXTV1200,
519 }, {
520 .subvendor = 0x5654,
521 .subdevice = 0x2390,
522 .card = CX23885_BOARD_GOTVIEW_X5_3D_HYBRID,
499 }, 523 },
500}; 524};
501const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); 525const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -712,6 +736,10 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg)
712 else if (port->nr == 2) 736 else if (port->nr == 2)
713 bitmask = 0x04; 737 bitmask = 0x04;
714 break; 738 break;
739 case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
740 /* Tuner Reset Command */
741 bitmask = 0x02;
742 break;
715 } 743 }
716 744
717 if (bitmask) { 745 if (bitmask) {
@@ -967,6 +995,9 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
967 /* CX24228 GPIO */ 995 /* CX24228 GPIO */
968 /* Connected to IF / Mux */ 996 /* Connected to IF / Mux */
969 break; 997 break;
998 case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
999 cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */
1000 break;
970 } 1001 }
971} 1002}
972 1003
@@ -1218,6 +1249,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
1218 case CX23885_BOARD_HAUPPAUGE_HVR1850: 1249 case CX23885_BOARD_HAUPPAUGE_HVR1850:
1219 case CX23885_BOARD_COMPRO_VIDEOMATE_E800: 1250 case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
1220 case CX23885_BOARD_HAUPPAUGE_HVR1290: 1251 case CX23885_BOARD_HAUPPAUGE_HVR1290:
1252 case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
1221 default: 1253 default:
1222 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ 1254 ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */
1223 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ 1255 ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
@@ -1245,9 +1277,10 @@ void cx23885_card_setup(struct cx23885_dev *dev)
1245 case CX23885_BOARD_MAGICPRO_PROHDTVE2: 1277 case CX23885_BOARD_MAGICPRO_PROHDTVE2:
1246 case CX23885_BOARD_HAUPPAUGE_HVR1290: 1278 case CX23885_BOARD_HAUPPAUGE_HVR1290:
1247 case CX23885_BOARD_LEADTEK_WINFAST_PXTV1200: 1279 case CX23885_BOARD_LEADTEK_WINFAST_PXTV1200:
1280 case CX23885_BOARD_GOTVIEW_X5_3D_HYBRID:
1248 dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev, 1281 dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
1249 &dev->i2c_bus[2].i2c_adap, 1282 &dev->i2c_bus[2].i2c_adap,
1250 NULL, "cx25840", 0x88 >> 1, NULL); 1283 "cx25840", 0x88 >> 1, NULL);
1251 if (dev->sd_cx25840) { 1284 if (dev->sd_cx25840) {
1252 dev->sd_cx25840->grp_id = CX23885_HW_AV_CORE; 1285 dev->sd_cx25840->grp_id = CX23885_HW_AV_CORE;
1253 v4l2_subdev_call(dev->sd_cx25840, core, load_fw); 1286 v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c
index 4a326fe0b01..199b9964bbe 100644
--- a/drivers/media/video/cx23885/cx23885-input.c
+++ b/drivers/media/video/cx23885/cx23885-input.c
@@ -35,9 +35,8 @@
35 * 02110-1301, USA. 35 * 02110-1301, USA.
36 */ 36 */
37 37
38#include <linux/input.h>
39#include <linux/slab.h> 38#include <linux/slab.h>
40#include <media/ir-core.h> 39#include <media/rc-core.h>
41#include <media/v4l2-subdev.h> 40#include <media/v4l2-subdev.h>
42 41
43#include "cx23885.h" 42#include "cx23885.h"
@@ -62,16 +61,16 @@ static void cx23885_input_process_measurements(struct cx23885_dev *dev,
62 count = num / sizeof(struct ir_raw_event); 61 count = num / sizeof(struct ir_raw_event);
63 62
64 for (i = 0; i < count; i++) { 63 for (i = 0; i < count; i++) {
65 ir_raw_event_store(kernel_ir->inp_dev, 64 ir_raw_event_store(kernel_ir->rc,
66 &ir_core_event[i]); 65 &ir_core_event[i]);
67 handle = true; 66 handle = true;
68 } 67 }
69 } while (num != 0); 68 } while (num != 0);
70 69
71 if (overrun) 70 if (overrun)
72 ir_raw_event_reset(kernel_ir->inp_dev); 71 ir_raw_event_reset(kernel_ir->rc);
73 else if (handle) 72 else if (handle)
74 ir_raw_event_handle(kernel_ir->inp_dev); 73 ir_raw_event_handle(kernel_ir->rc);
75} 74}
76 75
77void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events) 76void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
@@ -197,9 +196,9 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
197 return 0; 196 return 0;
198} 197}
199 198
200static int cx23885_input_ir_open(void *priv) 199static int cx23885_input_ir_open(struct rc_dev *rc)
201{ 200{
202 struct cx23885_kernel_ir *kernel_ir = priv; 201 struct cx23885_kernel_ir *kernel_ir = rc->priv;
203 202
204 if (kernel_ir->cx == NULL) 203 if (kernel_ir->cx == NULL)
205 return -ENODEV; 204 return -ENODEV;
@@ -232,9 +231,9 @@ static void cx23885_input_ir_stop(struct cx23885_dev *dev)
232 } 231 }
233} 232}
234 233
235static void cx23885_input_ir_close(void *priv) 234static void cx23885_input_ir_close(struct rc_dev *rc)
236{ 235{
237 struct cx23885_kernel_ir *kernel_ir = priv; 236 struct cx23885_kernel_ir *kernel_ir = rc->priv;
238 237
239 if (kernel_ir->cx != NULL) 238 if (kernel_ir->cx != NULL)
240 cx23885_input_ir_stop(kernel_ir->cx); 239 cx23885_input_ir_stop(kernel_ir->cx);
@@ -243,9 +242,7 @@ static void cx23885_input_ir_close(void *priv)
243int cx23885_input_init(struct cx23885_dev *dev) 242int cx23885_input_init(struct cx23885_dev *dev)
244{ 243{
245 struct cx23885_kernel_ir *kernel_ir; 244 struct cx23885_kernel_ir *kernel_ir;
246 struct input_dev *inp_dev; 245 struct rc_dev *rc;
247 struct ir_dev_props *props;
248
249 char *rc_map; 246 char *rc_map;
250 enum rc_driver_type driver_type; 247 enum rc_driver_type driver_type;
251 unsigned long allowed_protos; 248 unsigned long allowed_protos;
@@ -265,14 +262,14 @@ int cx23885_input_init(struct cx23885_dev *dev)
265 case CX23885_BOARD_HAUPPAUGE_HVR1250: 262 case CX23885_BOARD_HAUPPAUGE_HVR1250:
266 /* Integrated CX2388[58] IR controller */ 263 /* Integrated CX2388[58] IR controller */
267 driver_type = RC_DRIVER_IR_RAW; 264 driver_type = RC_DRIVER_IR_RAW;
268 allowed_protos = IR_TYPE_ALL; 265 allowed_protos = RC_TYPE_ALL;
269 /* The grey Hauppauge RC-5 remote */ 266 /* The grey Hauppauge RC-5 remote */
270 rc_map = RC_MAP_RC5_HAUPPAUGE_NEW; 267 rc_map = RC_MAP_RC5_HAUPPAUGE_NEW;
271 break; 268 break;
272 case CX23885_BOARD_TEVII_S470: 269 case CX23885_BOARD_TEVII_S470:
273 /* Integrated CX23885 IR controller */ 270 /* Integrated CX23885 IR controller */
274 driver_type = RC_DRIVER_IR_RAW; 271 driver_type = RC_DRIVER_IR_RAW;
275 allowed_protos = IR_TYPE_ALL; 272 allowed_protos = RC_TYPE_ALL;
276 /* A guess at the remote */ 273 /* A guess at the remote */
277 rc_map = RC_MAP_TEVII_NEC; 274 rc_map = RC_MAP_TEVII_NEC;
278 break; 275 break;
@@ -292,37 +289,36 @@ int cx23885_input_init(struct cx23885_dev *dev)
292 pci_name(dev->pci)); 289 pci_name(dev->pci));
293 290
294 /* input device */ 291 /* input device */
295 inp_dev = input_allocate_device(); 292 rc = rc_allocate_device();
296 if (inp_dev == NULL) { 293 if (!rc) {
297 ret = -ENOMEM; 294 ret = -ENOMEM;
298 goto err_out_free; 295 goto err_out_free;
299 } 296 }
300 297
301 kernel_ir->inp_dev = inp_dev; 298 kernel_ir->rc = rc;
302 inp_dev->name = kernel_ir->name; 299 rc->input_name = kernel_ir->name;
303 inp_dev->phys = kernel_ir->phys; 300 rc->input_phys = kernel_ir->phys;
304 inp_dev->id.bustype = BUS_PCI; 301 rc->input_id.bustype = BUS_PCI;
305 inp_dev->id.version = 1; 302 rc->input_id.version = 1;
306 if (dev->pci->subsystem_vendor) { 303 if (dev->pci->subsystem_vendor) {
307 inp_dev->id.vendor = dev->pci->subsystem_vendor; 304 rc->input_id.vendor = dev->pci->subsystem_vendor;
308 inp_dev->id.product = dev->pci->subsystem_device; 305 rc->input_id.product = dev->pci->subsystem_device;
309 } else { 306 } else {
310 inp_dev->id.vendor = dev->pci->vendor; 307 rc->input_id.vendor = dev->pci->vendor;
311 inp_dev->id.product = dev->pci->device; 308 rc->input_id.product = dev->pci->device;
312 } 309 }
313 inp_dev->dev.parent = &dev->pci->dev; 310 rc->dev.parent = &dev->pci->dev;
314 311 rc->driver_type = driver_type;
315 /* kernel ir device properties */ 312 rc->allowed_protos = allowed_protos;
316 props = &kernel_ir->props; 313 rc->priv = kernel_ir;
317 props->driver_type = driver_type; 314 rc->open = cx23885_input_ir_open;
318 props->allowed_protos = allowed_protos; 315 rc->close = cx23885_input_ir_close;
319 props->priv = kernel_ir; 316 rc->map_name = rc_map;
320 props->open = cx23885_input_ir_open; 317 rc->driver_name = MODULE_NAME;
321 props->close = cx23885_input_ir_close;
322 318
323 /* Go */ 319 /* Go */
324 dev->kernel_ir = kernel_ir; 320 dev->kernel_ir = kernel_ir;
325 ret = ir_input_register(inp_dev, rc_map, props, MODULE_NAME); 321 ret = rc_register_device(rc);
326 if (ret) 322 if (ret)
327 goto err_out_stop; 323 goto err_out_stop;
328 324
@@ -331,7 +327,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
331err_out_stop: 327err_out_stop:
332 cx23885_input_ir_stop(dev); 328 cx23885_input_ir_stop(dev);
333 dev->kernel_ir = NULL; 329 dev->kernel_ir = NULL;
334 /* TODO: double check clean-up of kernel_ir->inp_dev */ 330 rc_free_device(rc);
335err_out_free: 331err_out_free:
336 kfree(kernel_ir->phys); 332 kfree(kernel_ir->phys);
337 kfree(kernel_ir->name); 333 kfree(kernel_ir->name);
@@ -346,7 +342,7 @@ void cx23885_input_fini(struct cx23885_dev *dev)
346 342
347 if (dev->kernel_ir == NULL) 343 if (dev->kernel_ir == NULL)
348 return; 344 return;
349 ir_input_unregister(dev->kernel_ir->inp_dev); 345 rc_unregister_device(dev->kernel_ir->rc);
350 kfree(dev->kernel_ir->phys); 346 kfree(dev->kernel_ir->phys);
351 kfree(dev->kernel_ir->name); 347 kfree(dev->kernel_ir->name);
352 kfree(dev->kernel_ir); 348 kfree(dev->kernel_ir);
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c
index 3cc9f462d08..644fcb808c0 100644
--- a/drivers/media/video/cx23885/cx23885-video.c
+++ b/drivers/media/video/cx23885/cx23885-video.c
@@ -1024,35 +1024,6 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
1024 return 0; 1024 return 0;
1025} 1025}
1026 1026
1027#ifdef CONFIG_VIDEO_V4L1_COMPAT
1028static int vidiocgmbuf(struct file *file, void *priv,
1029 struct video_mbuf *mbuf)
1030{
1031 struct cx23885_fh *fh = priv;
1032 struct videobuf_queue *q;
1033 struct v4l2_requestbuffers req;
1034 unsigned int i;
1035 int err;
1036
1037 q = get_queue(fh);
1038 memset(&req, 0, sizeof(req));
1039 req.type = q->type;
1040 req.count = 8;
1041 req.memory = V4L2_MEMORY_MMAP;
1042 err = videobuf_reqbufs(q, &req);
1043 if (err < 0)
1044 return err;
1045
1046 mbuf->frames = req.count;
1047 mbuf->size = 0;
1048 for (i = 0; i < mbuf->frames; i++) {
1049 mbuf->offsets[i] = q->bufs[i]->boff;
1050 mbuf->size += q->bufs[i]->bsize;
1051 }
1052 return 0;
1053}
1054#endif
1055
1056static int vidioc_reqbufs(struct file *file, void *priv, 1027static int vidioc_reqbufs(struct file *file, void *priv,
1057 struct v4l2_requestbuffers *p) 1028 struct v4l2_requestbuffers *p)
1058{ 1029{
@@ -1155,7 +1126,6 @@ static int cx23885_enum_input(struct cx23885_dev *dev, struct v4l2_input *i)
1155 if (0 == INPUT(n)->type) 1126 if (0 == INPUT(n)->type)
1156 return -EINVAL; 1127 return -EINVAL;
1157 1128
1158 memset(i, 0, sizeof(*i));
1159 i->index = n; 1129 i->index = n;
1160 i->type = V4L2_INPUT_TYPE_CAMERA; 1130 i->type = V4L2_INPUT_TYPE_CAMERA;
1161 strcpy(i->name, iname[INPUT(n)->type]); 1131 strcpy(i->name, iname[INPUT(n)->type]);
@@ -1427,9 +1397,6 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = {
1427 .vidioc_s_ctrl = vidioc_s_ctrl, 1397 .vidioc_s_ctrl = vidioc_s_ctrl,
1428 .vidioc_streamon = vidioc_streamon, 1398 .vidioc_streamon = vidioc_streamon,
1429 .vidioc_streamoff = vidioc_streamoff, 1399 .vidioc_streamoff = vidioc_streamoff,
1430#ifdef CONFIG_VIDEO_V4L1_COMPAT
1431 .vidiocgmbuf = vidiocgmbuf,
1432#endif
1433 .vidioc_g_tuner = vidioc_g_tuner, 1400 .vidioc_g_tuner = vidioc_g_tuner,
1434 .vidioc_s_tuner = vidioc_s_tuner, 1401 .vidioc_s_tuner = vidioc_s_tuner,
1435 .vidioc_g_frequency = vidioc_g_frequency, 1402 .vidioc_g_frequency = vidioc_g_frequency,
@@ -1507,10 +1474,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
1507 if (dev->tuner_addr) 1474 if (dev->tuner_addr)
1508 sd = v4l2_i2c_new_subdev(&dev->v4l2_dev, 1475 sd = v4l2_i2c_new_subdev(&dev->v4l2_dev,
1509 &dev->i2c_bus[1].i2c_adap, 1476 &dev->i2c_bus[1].i2c_adap,
1510 NULL, "tuner", dev->tuner_addr, NULL); 1477 "tuner", dev->tuner_addr, NULL);
1511 else 1478 else
1512 sd = v4l2_i2c_new_subdev(&dev->v4l2_dev, 1479 sd = v4l2_i2c_new_subdev(&dev->v4l2_dev,
1513 &dev->i2c_bus[1].i2c_adap, NULL, 1480 &dev->i2c_bus[1].i2c_adap,
1514 "tuner", 0, v4l2_i2c_tuner_addrs(ADDRS_TV)); 1481 "tuner", 0, v4l2_i2c_tuner_addrs(ADDRS_TV));
1515 if (sd) { 1482 if (sd) {
1516 struct tuner_setup tun_setup; 1483 struct tuner_setup tun_setup;
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index ed94b17dd8a..62e41ab6581 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -30,7 +30,7 @@
30#include <media/tveeprom.h> 30#include <media/tveeprom.h>
31#include <media/videobuf-dma-sg.h> 31#include <media/videobuf-dma-sg.h>
32#include <media/videobuf-dvb.h> 32#include <media/videobuf-dvb.h>
33#include <media/ir-core.h> 33#include <media/rc-core.h>
34 34
35#include "btcx-risc.h" 35#include "btcx-risc.h"
36#include "cx23885-reg.h" 36#include "cx23885-reg.h"
@@ -84,6 +84,7 @@
84#define CX23885_BOARD_HAUPPAUGE_HVR1290 26 84#define CX23885_BOARD_HAUPPAUGE_HVR1290 26
85#define CX23885_BOARD_MYGICA_X8558PRO 27 85#define CX23885_BOARD_MYGICA_X8558PRO 27
86#define CX23885_BOARD_LEADTEK_WINFAST_PXTV1200 28 86#define CX23885_BOARD_LEADTEK_WINFAST_PXTV1200 28
87#define CX23885_BOARD_GOTVIEW_X5_3D_HYBRID 29
87 88
88#define GPIO_0 0x00000001 89#define GPIO_0 0x00000001
89#define GPIO_1 0x00000002 90#define GPIO_1 0x00000002
@@ -310,8 +311,7 @@ struct cx23885_kernel_ir {
310 char *name; 311 char *name;
311 char *phys; 312 char *phys;
312 313
313 struct input_dev *inp_dev; 314 struct rc_dev *rc;
314 struct ir_dev_props props;
315}; 315};
316 316
317struct cx23885_dev { 317struct cx23885_dev {
diff --git a/drivers/media/video/cx23885/cx23888-ir.c b/drivers/media/video/cx23885/cx23888-ir.c
index e78e3e4c811..e37be6fcf67 100644
--- a/drivers/media/video/cx23885/cx23888-ir.c
+++ b/drivers/media/video/cx23885/cx23888-ir.c
@@ -26,7 +26,7 @@
26 26
27#include <media/v4l2-device.h> 27#include <media/v4l2-device.h>
28#include <media/v4l2-chip-ident.h> 28#include <media/v4l2-chip-ident.h>
29#include <media/ir-core.h> 29#include <media/rc-core.h>
30 30
31#include "cx23885.h" 31#include "cx23885.h"
32 32