diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-07-08 23:23:08 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-27 10:07:32 -0400 |
commit | 59d27521c0f50fadf3382e2b325a7e8a04d9a770 (patch) | |
tree | 1386bf9f8a2794b7fe34ac372adb86d76fc31ef3 /drivers/media/video/au0828 | |
parent | 452a53a247d9181bb0ec07ce1def51769619e9d2 (diff) |
V4L/DVB (8530): au0828: add support for new revision of HVR950Q
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/au0828')
-rw-r--r-- | drivers/media/video/au0828/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/au0828/au0828-cards.c | 12 | ||||
-rw-r--r-- | drivers/media/video/au0828/au0828-cards.h | 1 | ||||
-rw-r--r-- | drivers/media/video/au0828/au0828-dvb.c | 15 |
4 files changed, 29 insertions, 0 deletions
diff --git a/drivers/media/video/au0828/Kconfig b/drivers/media/video/au0828/Kconfig index 52b2491581a8..ed9a50f189fc 100644 --- a/drivers/media/video/au0828/Kconfig +++ b/drivers/media/video/au0828/Kconfig | |||
@@ -6,6 +6,7 @@ config VIDEO_AU0828 | |||
6 | select VIDEO_TVEEPROM | 6 | select VIDEO_TVEEPROM |
7 | select DVB_AU8522 if !DVB_FE_CUSTOMIZE | 7 | select DVB_AU8522 if !DVB_FE_CUSTOMIZE |
8 | select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE | 8 | select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE |
9 | select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE | ||
9 | ---help--- | 10 | ---help--- |
10 | This is a video4linux driver for Auvitek's USB device. | 11 | This is a video4linux driver for Auvitek's USB device. |
11 | 12 | ||
diff --git a/drivers/media/video/au0828/au0828-cards.c b/drivers/media/video/au0828/au0828-cards.c index 898e12395e7c..443e59009762 100644 --- a/drivers/media/video/au0828/au0828-cards.c +++ b/drivers/media/video/au0828/au0828-cards.c | |||
@@ -32,6 +32,9 @@ struct au0828_board au0828_boards[] = { | |||
32 | [AU0828_BOARD_HAUPPAUGE_HVR950Q] = { | 32 | [AU0828_BOARD_HAUPPAUGE_HVR950Q] = { |
33 | .name = "Hauppauge HVR950Q", | 33 | .name = "Hauppauge HVR950Q", |
34 | }, | 34 | }, |
35 | [AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL] = { | ||
36 | .name = "Hauppauge HVR950Q rev xxF8", | ||
37 | }, | ||
35 | [AU0828_BOARD_DVICO_FUSIONHDTV7] = { | 38 | [AU0828_BOARD_DVICO_FUSIONHDTV7] = { |
36 | .name = "DViCO FusionHDTV USB", | 39 | .name = "DViCO FusionHDTV USB", |
37 | }, | 40 | }, |
@@ -49,6 +52,7 @@ int au0828_tuner_callback(void *priv, int command, int arg) | |||
49 | switch (dev->board) { | 52 | switch (dev->board) { |
50 | case AU0828_BOARD_HAUPPAUGE_HVR850: | 53 | case AU0828_BOARD_HAUPPAUGE_HVR850: |
51 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: | 54 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: |
55 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: | ||
52 | case AU0828_BOARD_DVICO_FUSIONHDTV7: | 56 | case AU0828_BOARD_DVICO_FUSIONHDTV7: |
53 | if (command == 0) { | 57 | if (command == 0) { |
54 | /* Tuner Reset Command from xc5000 */ | 58 | /* Tuner Reset Command from xc5000 */ |
@@ -110,6 +114,7 @@ void au0828_card_setup(struct au0828_dev *dev) | |||
110 | switch (dev->board) { | 114 | switch (dev->board) { |
111 | case AU0828_BOARD_HAUPPAUGE_HVR850: | 115 | case AU0828_BOARD_HAUPPAUGE_HVR850: |
112 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: | 116 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: |
117 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: | ||
113 | if (dev->i2c_rc == 0) | 118 | if (dev->i2c_rc == 0) |
114 | hauppauge_eeprom(dev, eeprom+0xa0); | 119 | hauppauge_eeprom(dev, eeprom+0xa0); |
115 | break; | 120 | break; |
@@ -128,6 +133,7 @@ void au0828_gpio_setup(struct au0828_dev *dev) | |||
128 | switch (dev->board) { | 133 | switch (dev->board) { |
129 | case AU0828_BOARD_HAUPPAUGE_HVR850: | 134 | case AU0828_BOARD_HAUPPAUGE_HVR850: |
130 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: | 135 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: |
136 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: | ||
131 | /* GPIO's | 137 | /* GPIO's |
132 | * 4 - CS5340 | 138 | * 4 - CS5340 |
133 | * 5 - AU8522 Demodulator | 139 | * 5 - AU8522 Demodulator |
@@ -193,6 +199,12 @@ struct usb_device_id au0828_usb_id_table [] = { | |||
193 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q }, | 199 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q }, |
194 | { USB_DEVICE(0x0fd9, 0x0008), | 200 | { USB_DEVICE(0x0fd9, 0x0008), |
195 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q }, | 201 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q }, |
202 | { USB_DEVICE(0x2040, 0x7201), | ||
203 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, | ||
204 | { USB_DEVICE(0x2040, 0x7211), | ||
205 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, | ||
206 | { USB_DEVICE(0x2040, 0x7281), | ||
207 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, | ||
196 | { }, | 208 | { }, |
197 | }; | 209 | }; |
198 | 210 | ||
diff --git a/drivers/media/video/au0828/au0828-cards.h b/drivers/media/video/au0828/au0828-cards.h index e26f54a961d0..c37f5fd0fa80 100644 --- a/drivers/media/video/au0828/au0828-cards.h +++ b/drivers/media/video/au0828/au0828-cards.h | |||
@@ -23,3 +23,4 @@ | |||
23 | #define AU0828_BOARD_HAUPPAUGE_HVR950Q 1 | 23 | #define AU0828_BOARD_HAUPPAUGE_HVR950Q 1 |
24 | #define AU0828_BOARD_HAUPPAUGE_HVR850 2 | 24 | #define AU0828_BOARD_HAUPPAUGE_HVR850 2 |
25 | #define AU0828_BOARD_DVICO_FUSIONHDTV7 3 | 25 | #define AU0828_BOARD_DVICO_FUSIONHDTV7 3 |
26 | #define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4 | ||
diff --git a/drivers/media/video/au0828/au0828-dvb.c b/drivers/media/video/au0828/au0828-dvb.c index c6d470590380..584a83a94a2a 100644 --- a/drivers/media/video/au0828/au0828-dvb.c +++ b/drivers/media/video/au0828/au0828-dvb.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include "au0828.h" | 28 | #include "au0828.h" |
29 | #include "au8522.h" | 29 | #include "au8522.h" |
30 | #include "xc5000.h" | 30 | #include "xc5000.h" |
31 | #include "mxl5007t.h" | ||
31 | 32 | ||
32 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); | 33 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); |
33 | 34 | ||
@@ -45,6 +46,11 @@ static struct xc5000_config hauppauge_hvr950q_tunerconfig = { | |||
45 | .tuner_callback = au0828_tuner_callback | 46 | .tuner_callback = au0828_tuner_callback |
46 | }; | 47 | }; |
47 | 48 | ||
49 | static struct mxl5007t_config mxl5007t_hvr950q_config = { | ||
50 | .xtal_freq_hz = MxL_XTAL_24_MHZ, | ||
51 | .if_freq_hz = MxL_IF_6_MHZ, | ||
52 | }; | ||
53 | |||
48 | /*-------------------------------------------------------------------*/ | 54 | /*-------------------------------------------------------------------*/ |
49 | static void urb_completion(struct urb *purb) | 55 | static void urb_completion(struct urb *purb) |
50 | { | 56 | { |
@@ -342,6 +348,15 @@ int au0828_dvb_register(struct au0828_dev *dev) | |||
342 | &dev->i2c_adap, | 348 | &dev->i2c_adap, |
343 | &hauppauge_hvr950q_tunerconfig, dev); | 349 | &hauppauge_hvr950q_tunerconfig, dev); |
344 | break; | 350 | break; |
351 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: | ||
352 | dvb->frontend = dvb_attach(au8522_attach, | ||
353 | &hauppauge_hvr950q_config, | ||
354 | &dev->i2c_adap); | ||
355 | if (dvb->frontend != NULL) | ||
356 | dvb_attach(mxl5007t_attach, dvb->frontend, | ||
357 | &dev->i2c_adap, 0x60, | ||
358 | &mxl5007t_hvr950q_config); | ||
359 | break; | ||
345 | default: | 360 | default: |
346 | printk(KERN_WARNING "The frontend of your DVB/ATSC card " | 361 | printk(KERN_WARNING "The frontend of your DVB/ATSC card " |
347 | "isn't supported yet\n"); | 362 | "isn't supported yet\n"); |