diff options
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r-- | drivers/media/video/cx23885/Kconfig | 2 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cimax2.c | 24 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 35 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-input.c | 70 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-video.c | 37 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 6 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23888-ir.c | 2 |
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 | }; |
313 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 333 | const 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 | }; |
501 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 525 | const 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 | ||
77 | void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events) | 76 | void 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 | ||
200 | static int cx23885_input_ir_open(void *priv) | 199 | static 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 | ||
235 | static void cx23885_input_ir_close(void *priv) | 234 | static 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) | |||
243 | int cx23885_input_init(struct cx23885_dev *dev) | 242 | int 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) | |||
331 | err_out_stop: | 327 | err_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); |
335 | err_out_free: | 331 | err_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 | ||
1028 | static 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 | |||
1056 | static int vidioc_reqbufs(struct file *file, void *priv, | 1027 | static 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 | ||
317 | struct cx23885_dev { | 317 | struct 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 | ||