Lines Matching refs:dev

324 static int set_itvc_reg(struct cx231xx *dev, u32 gpio_direction, u32 value)  in set_itvc_reg()  argument
331 status = cx231xx_send_gpio_cmd(dev, _gpio_direction, in set_itvc_reg()
336 static int get_itvc_reg(struct cx231xx *dev, u32 gpio_direction, u32 *val_ptr) in get_itvc_reg() argument
344 status = cx231xx_send_gpio_cmd(dev, _gpio_direction, in get_itvc_reg()
349 static int wait_for_mci_complete(struct cx231xx *dev) in wait_for_mci_complete() argument
354 get_itvc_reg(dev, gpio_direction, &gpio); in wait_for_mci_complete()
359 get_itvc_reg(dev, gpio_direction, &gpio); in wait_for_mci_complete()
369 static int mc417_register_write(struct cx231xx *dev, u16 address, u32 value) in mc417_register_write() argument
376 status = set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
380 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
385 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
387 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
392 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
394 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
399 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
401 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
406 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
408 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
413 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
415 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
420 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
422 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_write()
424 return wait_for_mci_complete(dev); in mc417_register_write()
427 static int mc417_register_read(struct cx231xx *dev, u16 address, u32 *value) in mc417_register_read() argument
436 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_read()
438 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_read()
443 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_read()
445 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_read()
450 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_read()
452 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_register_read()
456 ret = wait_for_mci_complete(dev); in mc417_register_read()
462 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
464 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
465 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_register_read()
467 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_register_read()
471 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
473 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
474 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_register_read()
477 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_register_read()
481 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
483 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
484 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_register_read()
486 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_register_read()
490 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
492 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_register_read()
493 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_register_read()
495 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_register_read()
501 static int mc417_memory_write(struct cx231xx *dev, u32 address, u32 value) in mc417_memory_write() argument
510 ret = set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
514 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
519 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
521 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
526 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
528 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
533 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
535 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
541 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
543 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
548 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
550 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
555 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
557 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_write()
560 wait_for_mci_complete(dev); in mc417_memory_write()
565 static int mc417_memory_read(struct cx231xx *dev, u32 address, u32 *value) in mc417_memory_read() argument
575 ret = set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_read()
579 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_read()
584 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_read()
586 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_read()
591 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_read()
593 set_itvc_reg(dev, ITVC_WRITE_DIR, temp); in mc417_memory_read()
596 ret = wait_for_mci_complete(dev); in mc417_memory_read()
601 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
603 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
604 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_memory_read()
606 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_memory_read()
610 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
612 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
613 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_memory_read()
615 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_memory_read()
619 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
621 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
622 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_memory_read()
624 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_memory_read()
628 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
630 set_itvc_reg(dev, ITVC_READ_DIR, temp); in mc417_memory_read()
631 get_itvc_reg(dev, ITVC_READ_DIR, &temp); in mc417_memory_read()
633 set_itvc_reg(dev, ITVC_READ_DIR, (0x87 << 10)); in mc417_memory_read()
733 struct cx231xx *dev = priv; in cx231xx_mbox_func() local
743 mc417_memory_read(dev, dev->cx23417_mailbox - 4, &value); in cx231xx_mbox_func()
753 mc417_memory_read(dev, dev->cx23417_mailbox, &flag); in cx231xx_mbox_func()
761 mc417_memory_write(dev, dev->cx23417_mailbox, flag); in cx231xx_mbox_func()
765 mc417_memory_write(dev, dev->cx23417_mailbox + 1, command); in cx231xx_mbox_func()
766 mc417_memory_write(dev, dev->cx23417_mailbox + 3, in cx231xx_mbox_func()
769 mc417_memory_write(dev, dev->cx23417_mailbox + 4 + i, data[i]); in cx231xx_mbox_func()
773 mc417_memory_write(dev, dev->cx23417_mailbox + 4 + i, 0); in cx231xx_mbox_func()
776 mc417_memory_write(dev, dev->cx23417_mailbox, flag); in cx231xx_mbox_func()
781 mc417_memory_read(dev, dev->cx23417_mailbox, &flag); in cx231xx_mbox_func()
793 mc417_memory_read(dev, dev->cx23417_mailbox + 4 + i, data + i); in cx231xx_mbox_func()
797 mc417_memory_read(dev, dev->cx23417_mailbox + 2, &retval); in cx231xx_mbox_func()
801 mc417_memory_write(dev, dev->cx23417_mailbox, flag); in cx231xx_mbox_func()
809 static int cx231xx_api_cmd(struct cx231xx *dev, u32 command, in cx231xx_api_cmd() argument
822 err = cx231xx_mbox_func(dev, command, inputcnt, outputcnt, data); in cx231xx_api_cmd()
833 static int cx231xx_find_mailbox(struct cx231xx *dev) in cx231xx_find_mailbox() argument
846 ret = mc417_memory_read(dev, i, &value); in cx231xx_find_mailbox()
862 static void mci_write_memory_to_gpio(struct cx231xx *dev, u32 address, u32 value, in mci_write_memory_to_gpio() argument
938 static int cx231xx_load_firmware(struct cx231xx *dev) in cx231xx_load_firmware() argument
975 retval |= mc417_memory_read(dev, 0x9020, &gpio_output); in cx231xx_load_firmware()
976 retval |= mc417_memory_read(dev, 0x900C, &value); in cx231xx_load_firmware()
978 retval = mc417_register_write(dev, in cx231xx_load_firmware()
980 retval |= mc417_register_write(dev, in cx231xx_load_firmware()
982 retval |= mc417_register_write(dev, in cx231xx_load_firmware()
984 retval |= mc417_register_write(dev, in cx231xx_load_firmware()
986 retval |= mc417_register_write(dev, in cx231xx_load_firmware()
990 dev_err(dev->dev, in cx231xx_load_firmware()
996 dev->dev); in cx231xx_load_firmware()
999 dev_err(dev->dev, in cx231xx_load_firmware()
1002 dev_err(dev->dev, in cx231xx_load_firmware()
1008 dev_err(dev->dev, in cx231xx_load_firmware()
1016 dev_err(dev->dev, in cx231xx_load_firmware()
1022 initGPIO(dev); in cx231xx_load_firmware()
1032 mci_write_memory_to_gpio(dev, address, fw_data, p_current_fw); in cx231xx_load_firmware()
1051 cx231xx_ep5_bulkout(dev, p_buffer, _buffer_size); in cx231xx_load_firmware()
1057 uninitGPIO(dev); in cx231xx_load_firmware()
1061 retval |= mc417_register_write(dev, IVTV_REG_HW_BLOCKS, in cx231xx_load_firmware()
1064 dev_err(dev->dev, in cx231xx_load_firmware()
1070 retval |= mc417_register_write(dev, 0x9020, gpio_output); in cx231xx_load_firmware()
1071 retval |= mc417_register_write(dev, 0x900C, value); in cx231xx_load_firmware()
1073 retval |= mc417_register_read(dev, IVTV_REG_VPU, &value); in cx231xx_load_firmware()
1074 retval |= mc417_register_write(dev, IVTV_REG_VPU, value & 0xFFFFFFE8); in cx231xx_load_firmware()
1077 dev_err(dev->dev, in cx231xx_load_firmware()
1085 static void cx231xx_417_check_encoder(struct cx231xx *dev) in cx231xx_417_check_encoder() argument
1091 cx231xx_api_cmd(dev, CX2341X_ENC_GET_SEQ_END, 0, 2, &status, &seq); in cx231xx_417_check_encoder()
1095 static void cx231xx_codec_settings(struct cx231xx *dev) in cx231xx_codec_settings() argument
1100 cx231xx_api_cmd(dev, CX2341X_ENC_SET_FRAME_SIZE, 2, 0, in cx231xx_codec_settings()
1101 dev->ts1.height, dev->ts1.width); in cx231xx_codec_settings()
1103 dev->mpeg_ctrl_handler.width = dev->ts1.width; in cx231xx_codec_settings()
1104 dev->mpeg_ctrl_handler.height = dev->ts1.height; in cx231xx_codec_settings()
1106 cx2341x_handler_setup(&dev->mpeg_ctrl_handler); in cx231xx_codec_settings()
1108 cx231xx_api_cmd(dev, CX2341X_ENC_MISC, 2, 0, 3, 1); in cx231xx_codec_settings()
1109 cx231xx_api_cmd(dev, CX2341X_ENC_MISC, 2, 0, 4, 1); in cx231xx_codec_settings()
1112 static int cx231xx_initialize_codec(struct cx231xx *dev) in cx231xx_initialize_codec() argument
1120 cx231xx_disable656(dev); in cx231xx_initialize_codec()
1121 retval = cx231xx_api_cmd(dev, CX2341X_ENC_PING_FW, 0, 0); /* ping */ in cx231xx_initialize_codec()
1124 retval = cx231xx_load_firmware(dev); in cx231xx_initialize_codec()
1126 dev_err(dev->dev, in cx231xx_initialize_codec()
1130 retval = cx231xx_find_mailbox(dev); in cx231xx_initialize_codec()
1132 dev_err(dev->dev, "%s: mailbox < 0, error\n", in cx231xx_initialize_codec()
1136 dev->cx23417_mailbox = retval; in cx231xx_initialize_codec()
1137 retval = cx231xx_api_cmd(dev, CX2341X_ENC_PING_FW, 0, 0); in cx231xx_initialize_codec()
1139 dev_err(dev->dev, in cx231xx_initialize_codec()
1143 retval = cx231xx_api_cmd(dev, CX2341X_ENC_GET_VERSION, 0, 1, in cx231xx_initialize_codec()
1146 dev_err(dev->dev, in cx231xx_initialize_codec()
1155 retval = mc417_register_read(dev, 0x20f8, &val); in cx231xx_initialize_codec()
1162 cx231xx_enable656(dev); in cx231xx_initialize_codec()
1165 cx231xx_api_cmd(dev, CX2341X_ENC_STOP_CAPTURE, 3, 0, 1, 3, 4); in cx231xx_initialize_codec()
1167 cx231xx_codec_settings(dev); in cx231xx_initialize_codec()
1190 cx231xx_api_cmd(dev, CX2341X_ENC_SET_VBI_CONFIG, 7, 0, data[0], data[1], in cx231xx_initialize_codec()
1197 cx231xx_api_cmd(dev, CX2341X_ENC_SET_VBI_LINE, 5, 0, i, in cx231xx_initialize_codec()
1199 cx231xx_api_cmd(dev, CX2341X_ENC_SET_VBI_LINE, 5, 0, in cx231xx_initialize_codec()
1207 retval = cx231xx_api_cmd(dev, CX2341X_ENC_INITIALIZE_INPUT, 0, 0); in cx231xx_initialize_codec()
1213 mc417_memory_write(dev, 2120, 0x00000080); in cx231xx_initialize_codec()
1216 retval = cx231xx_api_cmd(dev, CX2341X_ENC_START_CAPTURE, 2, 0, in cx231xx_initialize_codec()
1223 mc417_register_read(dev, 0x20f8, &val); in cx231xx_initialize_codec()
1237 fh->dev->ts1.ts_packet_size = mpeglinesize; in bb_buf_setup()
1238 fh->dev->ts1.ts_packet_count = mpeglines; in bb_buf_setup()
1240 *size = fh->dev->ts1.ts_packet_size * fh->dev->ts1.ts_packet_count; in bb_buf_setup()
1249 struct cx231xx *dev = fh->dev; in free_buffer() local
1254 spin_lock_irqsave(&dev->video_mode.slock, flags); in free_buffer()
1255 if (dev->USE_ISO) { in free_buffer()
1256 if (dev->video_mode.isoc_ctl.buf == buf) in free_buffer()
1257 dev->video_mode.isoc_ctl.buf = NULL; in free_buffer()
1259 if (dev->video_mode.bulk_ctl.buf == buf) in free_buffer()
1260 dev->video_mode.bulk_ctl.buf = NULL; in free_buffer()
1262 spin_unlock_irqrestore(&dev->video_mode.slock, flags); in free_buffer()
1268 static void buffer_copy(struct cx231xx *dev, char *data, int len, struct urb *urb, in buffer_copy() argument
1282 dev->video_mode.isoc_ctl.buf = buf; in buffer_copy()
1286 buf = dev->video_mode.isoc_ctl.buf; in buffer_copy()
1349 static int cx231xx_isoc_copy(struct cx231xx *dev, struct urb *urb) in cx231xx_isoc_copy() argument
1358 buffer_copy(dev, dma_q->p_left_data, in cx231xx_isoc_copy()
1369 buffer_copy(dev, p_buffer, buffer_size, urb, dma_q); in cx231xx_isoc_copy()
1375 static int cx231xx_bulk_copy(struct cx231xx *dev, struct urb *urb) in cx231xx_bulk_copy() argument
1403 struct cx231xx *dev = fh->dev; in bb_buf_prepare() local
1405 int size = fh->dev->ts1.ts_packet_size * fh->dev->ts1.ts_packet_count; in bb_buf_prepare()
1409 buf->vb.width = fh->dev->ts1.ts_packet_size; in bb_buf_prepare()
1410 buf->vb.height = fh->dev->ts1.ts_packet_count; in bb_buf_prepare()
1420 if (dev->USE_ISO) { in bb_buf_prepare()
1421 if (!dev->video_mode.isoc_ctl.num_bufs) in bb_buf_prepare()
1424 if (!dev->video_mode.bulk_ctl.num_bufs) in bb_buf_prepare()
1427 dev_dbg(dev->dev, in bb_buf_prepare()
1429 urb_init, dev->video_mode.max_pkt_size); in bb_buf_prepare()
1430 dev->mode_tv = 1; in bb_buf_prepare()
1433 rc = cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in bb_buf_prepare()
1434 rc = cx231xx_unmute_audio(dev); in bb_buf_prepare()
1435 if (dev->USE_ISO) { in bb_buf_prepare()
1436 cx231xx_set_alt_setting(dev, INDEX_TS1, 4); in bb_buf_prepare()
1437 rc = cx231xx_init_isoc(dev, mpeglines, in bb_buf_prepare()
1439 dev->ts1_mode.max_pkt_size, in bb_buf_prepare()
1442 cx231xx_set_alt_setting(dev, INDEX_TS1, 0); in bb_buf_prepare()
1443 rc = cx231xx_init_bulk(dev, mpeglines, in bb_buf_prepare()
1445 dev->ts1_mode.max_pkt_size, in bb_buf_prepare()
1467 struct cx231xx *dev = fh->dev; in bb_buf_queue() local
1468 struct cx231xx_dmaqueue *vidq = &dev->video_mode.vidq; in bb_buf_queue()
1498 struct cx231xx *dev = fh->dev; in vidioc_g_std() local
1500 *norm = dev->encodernorm.id; in vidioc_g_std()
1507 struct cx231xx *dev = fh->dev; in vidioc_s_std() local
1515 dev->encodernorm = cx231xx_tvnorms[i]; in vidioc_s_std()
1517 if (dev->encodernorm.id & 0xb000) { in vidioc_s_std()
1519 dev->norm = V4L2_STD_NTSC; in vidioc_s_std()
1520 dev->ts1.height = 480; in vidioc_s_std()
1521 cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, false); in vidioc_s_std()
1524 dev->norm = V4L2_STD_PAL_B; in vidioc_s_std()
1525 dev->ts1.height = 576; in vidioc_s_std()
1526 cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, true); in vidioc_s_std()
1528 call_all(dev, video, s_std, dev->norm); in vidioc_s_std()
1530 cx231xx_do_mode_ctrl_overrides(dev); in vidioc_s_std()
1540 struct cx231xx *dev = fh->dev; in vidioc_s_ctrl() local
1544 call_all(dev, core, s_ctrl, ctl); in vidioc_s_ctrl()
1565 struct cx231xx *dev = fh->dev; in vidioc_g_fmt_vid_cap() local
1572 f->fmt.pix.width = dev->ts1.width; in vidioc_g_fmt_vid_cap()
1573 f->fmt.pix.height = dev->ts1.height; in vidioc_g_fmt_vid_cap()
1576 dev->ts1.width, dev->ts1.height); in vidioc_g_fmt_vid_cap()
1585 struct cx231xx *dev = fh->dev; in vidioc_try_fmt_vid_cap() local
1594 dev->ts1.width, dev->ts1.height); in vidioc_try_fmt_vid_cap()
1635 struct cx231xx *dev = fh->dev; in vidioc_streamon() local
1638 cx231xx_set_alt_setting(dev, INDEX_TS1, 0); in vidioc_streamon()
1639 cx231xx_set_mode(dev, CX231XX_DIGITAL_MODE); in vidioc_streamon()
1640 if (dev->USE_ISO) in vidioc_streamon()
1641 cx231xx_init_isoc(dev, CX231XX_NUM_PACKETS, in vidioc_streamon()
1643 dev->video_mode.max_pkt_size, in vidioc_streamon()
1646 cx231xx_init_bulk(dev, 320, in vidioc_streamon()
1648 dev->ts1_mode.max_pkt_size, in vidioc_streamon()
1665 struct cx231xx *dev = fh->dev; in vidioc_log_status() local
1667 call_all(dev, core, log_status); in vidioc_log_status()
1674 struct cx231xx *dev = video_drvdata(file); in mpeg_open() local
1679 if (mutex_lock_interruptible(&dev->lock)) in mpeg_open()
1685 mutex_unlock(&dev->lock); in mpeg_open()
1691 fh->dev = dev; in mpeg_open()
1695 NULL, &dev->video_mode.slock, in mpeg_open()
1697 sizeof(struct cx231xx_buffer), fh, &dev->lock); in mpeg_open()
1707 cx231xx_set_alt_setting(dev, INDEX_VANC, 1); in mpeg_open()
1708 cx231xx_set_gpio_value(dev, 2, 0); in mpeg_open()
1710 cx231xx_initialize_codec(dev); in mpeg_open()
1712 mutex_unlock(&dev->lock); in mpeg_open()
1714 cx231xx_start_TS1(dev); in mpeg_open()
1722 struct cx231xx *dev = fh->dev; in mpeg_release() local
1724 dprintk(3, "mpeg_release()! dev=0x%p\n", dev); in mpeg_release()
1726 mutex_lock(&dev->lock); in mpeg_release()
1728 cx231xx_stop_TS1(dev); in mpeg_release()
1731 if (dev->USE_ISO) in mpeg_release()
1732 cx231xx_uninit_isoc(dev); in mpeg_release()
1734 cx231xx_uninit_bulk(dev); in mpeg_release()
1735 cx231xx_set_mode(dev, CX231XX_SUSPEND); in mpeg_release()
1737 cx231xx_api_cmd(fh->dev, CX2341X_ENC_STOP_CAPTURE, 3, 0, in mpeg_release()
1744 if (atomic_dec_return(&dev->v4l_reader_count) == 0) { in mpeg_release()
1748 cx231xx_417_check_encoder(dev); in mpeg_release()
1762 mutex_unlock(&dev->lock); in mpeg_release()
1770 struct cx231xx *dev = fh->dev; in mpeg_read() local
1775 if (atomic_inc_return(&dev->v4l_reader_count) == 1) { in mpeg_read()
1776 if (cx231xx_initialize_codec(dev) < 0) in mpeg_read()
1790 struct cx231xx *dev = fh->dev; in mpeg_poll() local
1801 mutex_lock(&dev->lock); in mpeg_poll()
1803 mutex_unlock(&dev->lock); in mpeg_poll()
1865 void cx231xx_417_unregister(struct cx231xx *dev) in cx231xx_417_unregister() argument
1870 if (video_is_registered(&dev->v4l_device)) { in cx231xx_417_unregister()
1871 video_unregister_device(&dev->v4l_device); in cx231xx_417_unregister()
1872 v4l2_ctrl_handler_free(&dev->mpeg_ctrl_handler.hdl); in cx231xx_417_unregister()
1878 struct cx231xx *dev = container_of(cxhdl, struct cx231xx, mpeg_ctrl_handler); in cx231xx_s_video_encoding() local
1888 v4l2_subdev_call(dev->sd_cx25840, pad, set_fmt, NULL, &format); in cx231xx_s_video_encoding()
1895 struct cx231xx *dev = container_of(cxhdl, struct cx231xx, mpeg_ctrl_handler); in cx231xx_s_audio_sampling_freq() local
1900 call_all(dev, audio, s_clock_freq, freqs[idx]); in cx231xx_s_audio_sampling_freq()
1912 struct cx231xx *dev, in cx231xx_video_dev_init() argument
1920 snprintf(vfd->name, sizeof(vfd->name), "%s %s (%s)", dev->name, in cx231xx_video_dev_init()
1921 type, cx231xx_boards[dev->model].name); in cx231xx_video_dev_init()
1923 vfd->v4l2_dev = &dev->v4l2_dev; in cx231xx_video_dev_init()
1924 vfd->lock = &dev->lock; in cx231xx_video_dev_init()
1926 vfd->ctrl_handler = &dev->mpeg_ctrl_handler.hdl; in cx231xx_video_dev_init()
1927 video_set_drvdata(vfd, dev); in cx231xx_video_dev_init()
1928 if (dev->tuner_type == TUNER_ABSENT) { in cx231xx_video_dev_init()
1936 int cx231xx_417_register(struct cx231xx *dev) in cx231xx_417_register() argument
1940 struct cx231xx_tsport *tsport = &dev->ts1; in cx231xx_417_register()
1945 dev->encodernorm = cx231xx_tvnorms[0]; in cx231xx_417_register()
1947 if (dev->encodernorm.id & V4L2_STD_525_60) in cx231xx_417_register()
1953 err = cx2341x_handler_init(&dev->mpeg_ctrl_handler, 50); in cx231xx_417_register()
1955 dprintk(3, "%s: can't init cx2341x controls\n", dev->name); in cx231xx_417_register()
1958 dev->mpeg_ctrl_handler.func = cx231xx_mbox_func; in cx231xx_417_register()
1959 dev->mpeg_ctrl_handler.priv = dev; in cx231xx_417_register()
1960 dev->mpeg_ctrl_handler.ops = &cx231xx_ops; in cx231xx_417_register()
1961 if (dev->sd_cx25840) in cx231xx_417_register()
1962 v4l2_ctrl_add_handler(&dev->mpeg_ctrl_handler.hdl, in cx231xx_417_register()
1963 dev->sd_cx25840->ctrl_handler, NULL); in cx231xx_417_register()
1964 if (dev->mpeg_ctrl_handler.hdl.error) { in cx231xx_417_register()
1965 err = dev->mpeg_ctrl_handler.hdl.error; in cx231xx_417_register()
1966 dprintk(3, "%s: can't add cx25840 controls\n", dev->name); in cx231xx_417_register()
1967 v4l2_ctrl_handler_free(&dev->mpeg_ctrl_handler.hdl); in cx231xx_417_register()
1970 dev->norm = V4L2_STD_NTSC; in cx231xx_417_register()
1972 dev->mpeg_ctrl_handler.port = CX2341X_PORT_SERIAL; in cx231xx_417_register()
1973 cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, false); in cx231xx_417_register()
1976 cx231xx_video_dev_init(dev, dev->udev, in cx231xx_417_register()
1977 &dev->v4l_device, &cx231xx_mpeg_template, "mpeg"); in cx231xx_417_register()
1978 err = video_register_device(&dev->v4l_device, in cx231xx_417_register()
1981 dprintk(3, "%s: can't register mpeg device\n", dev->name); in cx231xx_417_register()
1982 v4l2_ctrl_handler_free(&dev->mpeg_ctrl_handler.hdl); in cx231xx_417_register()
1987 dev->name, dev->v4l_device.num); in cx231xx_417_register()