diff options
Diffstat (limited to 'drivers/media/video/ivtv/ivtv-driver.c')
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c index 07c5c18a25cb..e421d15b0f5c 100644 --- a/drivers/media/video/ivtv/ivtv-driver.c +++ b/drivers/media/video/ivtv/ivtv-driver.c | |||
@@ -53,6 +53,7 @@ | |||
53 | #include "ivtv-cards.h" | 53 | #include "ivtv-cards.h" |
54 | #include "ivtv-vbi.h" | 54 | #include "ivtv-vbi.h" |
55 | #include "ivtv-routing.h" | 55 | #include "ivtv-routing.h" |
56 | #include "ivtv-controls.h" | ||
56 | #include "ivtv-gpio.h" | 57 | #include "ivtv-gpio.h" |
57 | 58 | ||
58 | #include <media/tveeprom.h> | 59 | #include <media/tveeprom.h> |
@@ -734,9 +735,8 @@ static int __devinit ivtv_init_struct1(struct ivtv *itv) | |||
734 | itv->open_id = 1; | 735 | itv->open_id = 1; |
735 | 736 | ||
736 | /* Initial settings */ | 737 | /* Initial settings */ |
737 | cx2341x_fill_defaults(&itv->params); | 738 | itv->cxhdl.port = CX2341X_PORT_MEMORY; |
738 | itv->params.port = CX2341X_PORT_MEMORY; | 739 | itv->cxhdl.capabilities = CX2341X_CAP_HAS_SLICED_VBI; |
739 | itv->params.capabilities = CX2341X_CAP_HAS_SLICED_VBI; | ||
740 | init_waitqueue_head(&itv->eos_waitq); | 740 | init_waitqueue_head(&itv->eos_waitq); |
741 | init_waitqueue_head(&itv->event_waitq); | 741 | init_waitqueue_head(&itv->event_waitq); |
742 | init_waitqueue_head(&itv->vsync_waitq); | 742 | init_waitqueue_head(&itv->vsync_waitq); |
@@ -1006,6 +1006,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev, | |||
1006 | retval = -ENOMEM; | 1006 | retval = -ENOMEM; |
1007 | goto err; | 1007 | goto err; |
1008 | } | 1008 | } |
1009 | retval = cx2341x_handler_init(&itv->cxhdl, 50); | ||
1010 | if (retval) | ||
1011 | goto err; | ||
1012 | itv->v4l2_dev.ctrl_handler = &itv->cxhdl.hdl; | ||
1013 | itv->cxhdl.ops = &ivtv_cxhdl_ops; | ||
1014 | itv->cxhdl.priv = itv; | ||
1015 | itv->cxhdl.func = ivtv_api_func; | ||
1009 | 1016 | ||
1010 | IVTV_DEBUG_INFO("base addr: 0x%08x\n", itv->base_addr); | 1017 | IVTV_DEBUG_INFO("base addr: 0x%08x\n", itv->base_addr); |
1011 | 1018 | ||
@@ -1127,7 +1134,7 @@ static int __devinit ivtv_probe(struct pci_dev *pdev, | |||
1127 | itv->yuv_info.v4l2_src_w = itv->yuv_info.osd_full_w; | 1134 | itv->yuv_info.v4l2_src_w = itv->yuv_info.osd_full_w; |
1128 | itv->yuv_info.v4l2_src_h = itv->yuv_info.osd_full_h; | 1135 | itv->yuv_info.v4l2_src_h = itv->yuv_info.osd_full_h; |
1129 | 1136 | ||
1130 | itv->params.video_gop_size = itv->is_60hz ? 15 : 12; | 1137 | cx2341x_handler_set_50hz(&itv->cxhdl, itv->is_50hz); |
1131 | 1138 | ||
1132 | itv->stream_buf_size[IVTV_ENC_STREAM_TYPE_MPG] = 0x08000; | 1139 | itv->stream_buf_size[IVTV_ENC_STREAM_TYPE_MPG] = 0x08000; |
1133 | itv->stream_buf_size[IVTV_ENC_STREAM_TYPE_PCM] = 0x01200; | 1140 | itv->stream_buf_size[IVTV_ENC_STREAM_TYPE_PCM] = 0x01200; |
@@ -1269,15 +1276,8 @@ int ivtv_init_on_first_open(struct ivtv *itv) | |||
1269 | IVTV_DEBUG_INFO("Getting firmware version..\n"); | 1276 | IVTV_DEBUG_INFO("Getting firmware version..\n"); |
1270 | ivtv_firmware_versions(itv); | 1277 | ivtv_firmware_versions(itv); |
1271 | 1278 | ||
1272 | if (itv->card->hw_all & IVTV_HW_CX25840) { | 1279 | if (itv->card->hw_all & IVTV_HW_CX25840) |
1273 | struct v4l2_control ctrl; | ||
1274 | |||
1275 | v4l2_subdev_call(itv->sd_video, core, load_fw); | 1280 | v4l2_subdev_call(itv->sd_video, core, load_fw); |
1276 | /* CX25840_CID_ENABLE_PVR150_WORKAROUND */ | ||
1277 | ctrl.id = V4L2_CID_PRIVATE_BASE; | ||
1278 | ctrl.value = itv->pvr150_workaround; | ||
1279 | v4l2_subdev_call(itv->sd_video, core, s_ctrl, &ctrl); | ||
1280 | } | ||
1281 | 1281 | ||
1282 | vf.tuner = 0; | 1282 | vf.tuner = 0; |
1283 | vf.type = V4L2_TUNER_ANALOG_TV; | 1283 | vf.type = V4L2_TUNER_ANALOG_TV; |
@@ -1329,6 +1329,8 @@ int ivtv_init_on_first_open(struct ivtv *itv) | |||
1329 | /* For cards with video out, this call needs interrupts enabled */ | 1329 | /* For cards with video out, this call needs interrupts enabled */ |
1330 | ivtv_s_std(NULL, &fh, &itv->tuner_std); | 1330 | ivtv_s_std(NULL, &fh, &itv->tuner_std); |
1331 | 1331 | ||
1332 | /* Setup initial controls */ | ||
1333 | cx2341x_handler_setup(&itv->cxhdl); | ||
1332 | return 0; | 1334 | return 0; |
1333 | } | 1335 | } |
1334 | 1336 | ||