From e2c1209e77562d528530701fcaa062c687f1da49 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sat, 4 Aug 2007 12:27:24 +0200 Subject: ivtv: add AverMedia M116, prepare for userspace Xceive tuner From: Hans Verkuil - Split Club3D card from Yuan PG600-2, GotView PCI DVD Lite (different composite input) - Add AVerTV MCE 116 Plus (M116) card - Allow Xceive cards to be used without Xceive support - Update Xceive support to latest userspace tuner (still not on by default, pending inclusion of userspace tuner in the kernel). - Use CONFIG_XC3028 rather than HAVE_XC3028: gentree.pl will remove them automatically. Thanks to Markus Rechberger for help with the userspace tuner support. Signed-off-by: Hans Verkuil --- linux/drivers/media/video/ivtv/ivtv-driver.c | 38 +++++++++++++++++----------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'linux/drivers/media/video/ivtv/ivtv-driver.c') diff --git a/linux/drivers/media/video/ivtv/ivtv-driver.c b/linux/drivers/media/video/ivtv/ivtv-driver.c index d5af5a188..ac0e3dee3 100644 --- a/linux/drivers/media/video/ivtv/ivtv-driver.c +++ b/linux/drivers/media/video/ivtv/ivtv-driver.c @@ -59,6 +59,9 @@ #include #include #include +#ifdef CONFIG_XC3028 +#include "tuner/tuner-stub.h" +#endif /* var to keep track of the number of array elements in use */ int ivtv_cards_active = 0; @@ -177,9 +180,9 @@ MODULE_PARM_DESC(cardtype, "\t\t\t16 = GOTVIEW PCI DVD2 Deluxe\n" "\t\t\t17 = Yuan MPC622\n" "\t\t\t18 = Digital Cowboy DCT-MTVP1\n" -#ifdef HAVE_XC3028 - "\t\t\t19 = Yuan PG600V2/GotView PCI DVD Lite/Club3D ZAP-TV1x01\n" -#endif + "\t\t\t19 = Yuan PG600V2/GotView PCI DVD Lite\n" + "\t\t\t20 = Club3D ZAP-TV1x01\n" + "\t\t\t21 = AverTV MCE 116 Plus\n" "\t\t\t 0 = Autodetect (default)\n" "\t\t\t-1 = Ignore this card\n\t\t"); MODULE_PARM_DESC(pal, "Set PAL standard: B, G, H, D, K, I, M, N, Nc, 60"); @@ -825,11 +828,23 @@ static void ivtv_load_and_init_modules(struct ivtv *itv) /* load modules */ #ifndef CONFIG_VIDEO_TUNER if (hw & IVTV_HW_TUNER) { - ivtv_request_module(itv, "tuner"); -#ifdef HAVE_XC3028 - if (itv->options.tuner == TUNER_XCEIVE_XC3028) - ivtv_request_module(itv, "xc3028-tuner"); + if (itv->options.tuner == TUNER_XCEIVE_XC3028) { +#ifdef CONFIG_XC3028 + struct tuner_config config; + + memset(&config, 0, sizeof(config)); + config.tunerid = 1; + config.clientid = -1; + itv->tunerid = tuner_register_client(&itv->i2c_adap, + ivtv_reset_tuner_gpio, itv, &config); +#else + IVTV_INFO("Xceive tuner not yet supported, only composite and S-Video inputs will be available\n"); + itv->tunerid = 1; #endif + } + else { + ivtv_request_module(itv, "tuner"); + } } #endif #ifndef CONFIG_VIDEO_CX25840 @@ -1134,19 +1149,12 @@ static int __devinit ivtv_probe(struct pci_dev *dev, if (itv->options.radio > 0) itv->v4l2_cap |= V4L2_CAP_RADIO; - if (itv->options.tuner > -1) { + if (itv->options.tuner > -1 && itv->tunerid == 0) { struct tuner_setup setup; setup.addr = ADDR_UNSET; setup.type = itv->options.tuner; setup.mode_mask = T_ANALOG_TV; /* matches TV tuners */ -#ifdef HAVE_XC3028 - setup.initmode = V4L2_TUNER_ANALOG_TV; - if (itv->options.tuner == TUNER_XCEIVE_XC3028) { - setup.gpio_write = ivtv_reset_tuner_gpio; - setup.gpio_priv = itv; - } -#endif ivtv_call_i2c_clients(itv, TUNER_SET_TYPE_ADDR, &setup); } -- cgit v1.2.3 From bbfeb8f955ffac4d035361bee48261b43d073c88 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Tue, 7 Aug 2007 11:21:26 +0200 Subject: ivtv: remove userspace tuner dependent code From: Hans Verkuil By request of mchehab I've removed the userspace tuner dependent code. Use my v4l-dvb-xc tree in the meantime for the userspace tuner support. Signed-off-by: Hans Verkuil --- linux/drivers/media/video/ivtv/ivtv-driver.c | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'linux/drivers/media/video/ivtv/ivtv-driver.c') diff --git a/linux/drivers/media/video/ivtv/ivtv-driver.c b/linux/drivers/media/video/ivtv/ivtv-driver.c index ac0e3dee3..621d830e9 100644 --- a/linux/drivers/media/video/ivtv/ivtv-driver.c +++ b/linux/drivers/media/video/ivtv/ivtv-driver.c @@ -59,9 +59,6 @@ #include #include #include -#ifdef CONFIG_XC3028 -#include "tuner/tuner-stub.h" -#endif /* var to keep track of the number of array elements in use */ int ivtv_cards_active = 0; @@ -829,18 +826,8 @@ static void ivtv_load_and_init_modules(struct ivtv *itv) #ifndef CONFIG_VIDEO_TUNER if (hw & IVTV_HW_TUNER) { if (itv->options.tuner == TUNER_XCEIVE_XC3028) { -#ifdef CONFIG_XC3028 - struct tuner_config config; - - memset(&config, 0, sizeof(config)); - config.tunerid = 1; - config.clientid = -1; - itv->tunerid = tuner_register_client(&itv->i2c_adap, - ivtv_reset_tuner_gpio, itv, &config); -#else IVTV_INFO("Xceive tuner not yet supported, only composite and S-Video inputs will be available\n"); itv->tunerid = 1; -#endif } else { ivtv_request_module(itv, "tuner"); -- cgit v1.2.3