diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-12-21 19:33:36 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:04:15 -0500 |
commit | 0e614cd1a5a09b36a3b6d0fff8a08a97800d3cce (patch) | |
tree | ae5eb3832437a256976353302e57313579f580c3 /drivers/media/video/ivtv/ivtv-driver.c | |
parent | 3f51451b516eeb19d3c1ea311ee8845fc80b5135 (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.c | 19 |
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 */ |
64 | int ivtv_cards_active = 0; | 65 | int 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) |