aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/ivtv/ivtv-driver.c
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-12-21 19:33:36 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 16:04:15 -0500
commit0e614cd1a5a09b36a3b6d0fff8a08a97800d3cce (patch)
treeae5eb3832437a256976353302e57313579f580c3 /drivers/media/video/ivtv/ivtv-driver.c
parent3f51451b516eeb19d3c1ea311ee8845fc80b5135 (diff)
V4L/DVB (6896): ivtv: add XC2028 support for Club3D cards
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/ivtv/ivtv-driver.c')
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index 2765624b230f..0cb832a21357 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -59,6 +59,7 @@
59#include <media/tveeprom.h> 59#include <media/tveeprom.h>
60#include <media/saa7115.h> 60#include <media/saa7115.h>
61#include <media/v4l2-chip-ident.h> 61#include <media/v4l2-chip-ident.h>
62#include "tuner-xc2028.h"
62 63
63/* var to keep track of the number of array elements in use */ 64/* var to keep track of the number of array elements in use */
64int ivtv_cards_active = 0; 65int ivtv_cards_active = 0;
@@ -844,11 +845,6 @@ static void ivtv_load_and_init_modules(struct ivtv *itv)
844 unsigned i; 845 unsigned i;
845 846
846 /* load modules */ 847 /* load modules */
847 if ((hw & IVTV_HW_TUNER) && itv->options.tuner == TUNER_XC2028) {
848 IVTV_INFO("Xceive tuner not yet supported, only composite\n");
849 IVTV_INFO("and S-Video inputs will be available\n");
850 hw &= ~IVTV_HW_TUNER;
851 }
852#ifndef CONFIG_VIDEO_TUNER 848#ifndef CONFIG_VIDEO_TUNER
853 hw = ivtv_request_module(itv, hw, "tuner", IVTV_HW_TUNER); 849 hw = ivtv_request_module(itv, hw, "tuner", IVTV_HW_TUNER);
854#endif 850#endif
@@ -1150,7 +1146,20 @@ static int __devinit ivtv_probe(struct pci_dev *dev,
1150 setup.addr = ADDR_UNSET; 1146 setup.addr = ADDR_UNSET;
1151 setup.type = itv->options.tuner; 1147 setup.type = itv->options.tuner;
1152 setup.mode_mask = T_ANALOG_TV; /* matches TV tuners */ 1148 setup.mode_mask = T_ANALOG_TV; /* matches TV tuners */
1149 setup.tuner_callback = (setup.type == TUNER_XC2028) ?
1150 ivtv_reset_tuner_gpio : NULL;
1153 ivtv_call_i2c_clients(itv, TUNER_SET_TYPE_ADDR, &setup); 1151 ivtv_call_i2c_clients(itv, TUNER_SET_TYPE_ADDR, &setup);
1152 if (setup.type == TUNER_XC2028) {
1153 static struct xc2028_ctrl ctrl = {
1154 .fname = XC2028_DEFAULT_FIRMWARE,
1155 .max_len = 64,
1156 };
1157 struct v4l2_priv_tun_config cfg = {
1158 .tuner = itv->options.tuner,
1159 .priv = &ctrl,
1160 };
1161 ivtv_call_i2c_clients(itv, TUNER_SET_CONFIG, &cfg);
1162 }
1154 } 1163 }
1155 1164
1156 /* The tuner is fixed to the standard. The other inputs (e.g. S-Video) 1165 /* The tuner is fixed to the standard. The other inputs (e.g. S-Video)