mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-12 08:48:48 +00:00
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>
This commit is contained in:
parent
452a53a247
commit
59d27521c0
@ -2,3 +2,4 @@
|
|||||||
1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721f,2040:7280,0fd9:0008]
|
1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721f,2040:7280,0fd9:0008]
|
||||||
2 -> Hauppauge HVR850 (au0828) [2040:7240]
|
2 -> Hauppauge HVR850 (au0828) [2040:7240]
|
||||||
3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
|
3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
|
||||||
|
4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281]
|
||||||
|
@ -6,6 +6,7 @@ config VIDEO_AU0828
|
|||||||
select VIDEO_TVEEPROM
|
select VIDEO_TVEEPROM
|
||||||
select DVB_AU8522 if !DVB_FE_CUSTOMIZE
|
select DVB_AU8522 if !DVB_FE_CUSTOMIZE
|
||||||
select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
|
select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
|
||||||
|
select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE
|
||||||
---help---
|
---help---
|
||||||
This is a video4linux driver for Auvitek's USB device.
|
This is a video4linux driver for Auvitek's USB device.
|
||||||
|
|
||||||
|
@ -32,6 +32,9 @@ struct au0828_board au0828_boards[] = {
|
|||||||
[AU0828_BOARD_HAUPPAUGE_HVR950Q] = {
|
[AU0828_BOARD_HAUPPAUGE_HVR950Q] = {
|
||||||
.name = "Hauppauge HVR950Q",
|
.name = "Hauppauge HVR950Q",
|
||||||
},
|
},
|
||||||
|
[AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL] = {
|
||||||
|
.name = "Hauppauge HVR950Q rev xxF8",
|
||||||
|
},
|
||||||
[AU0828_BOARD_DVICO_FUSIONHDTV7] = {
|
[AU0828_BOARD_DVICO_FUSIONHDTV7] = {
|
||||||
.name = "DViCO FusionHDTV USB",
|
.name = "DViCO FusionHDTV USB",
|
||||||
},
|
},
|
||||||
@ -49,6 +52,7 @@ int au0828_tuner_callback(void *priv, int command, int arg)
|
|||||||
switch (dev->board) {
|
switch (dev->board) {
|
||||||
case AU0828_BOARD_HAUPPAUGE_HVR850:
|
case AU0828_BOARD_HAUPPAUGE_HVR850:
|
||||||
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
|
||||||
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
|
||||||
case AU0828_BOARD_DVICO_FUSIONHDTV7:
|
case AU0828_BOARD_DVICO_FUSIONHDTV7:
|
||||||
if (command == 0) {
|
if (command == 0) {
|
||||||
/* Tuner Reset Command from xc5000 */
|
/* Tuner Reset Command from xc5000 */
|
||||||
@ -110,6 +114,7 @@ void au0828_card_setup(struct au0828_dev *dev)
|
|||||||
switch (dev->board) {
|
switch (dev->board) {
|
||||||
case AU0828_BOARD_HAUPPAUGE_HVR850:
|
case AU0828_BOARD_HAUPPAUGE_HVR850:
|
||||||
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
|
||||||
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
|
||||||
if (dev->i2c_rc == 0)
|
if (dev->i2c_rc == 0)
|
||||||
hauppauge_eeprom(dev, eeprom+0xa0);
|
hauppauge_eeprom(dev, eeprom+0xa0);
|
||||||
break;
|
break;
|
||||||
@ -128,6 +133,7 @@ void au0828_gpio_setup(struct au0828_dev *dev)
|
|||||||
switch (dev->board) {
|
switch (dev->board) {
|
||||||
case AU0828_BOARD_HAUPPAUGE_HVR850:
|
case AU0828_BOARD_HAUPPAUGE_HVR850:
|
||||||
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q:
|
||||||
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
|
||||||
/* GPIO's
|
/* GPIO's
|
||||||
* 4 - CS5340
|
* 4 - CS5340
|
||||||
* 5 - AU8522 Demodulator
|
* 5 - AU8522 Demodulator
|
||||||
@ -193,6 +199,12 @@ struct usb_device_id au0828_usb_id_table [] = {
|
|||||||
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
|
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
|
||||||
{ USB_DEVICE(0x0fd9, 0x0008),
|
{ USB_DEVICE(0x0fd9, 0x0008),
|
||||||
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
|
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
|
||||||
|
{ USB_DEVICE(0x2040, 0x7201),
|
||||||
|
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
|
||||||
|
{ USB_DEVICE(0x2040, 0x7211),
|
||||||
|
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
|
||||||
|
{ USB_DEVICE(0x2040, 0x7281),
|
||||||
|
.driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,3 +23,4 @@
|
|||||||
#define AU0828_BOARD_HAUPPAUGE_HVR950Q 1
|
#define AU0828_BOARD_HAUPPAUGE_HVR950Q 1
|
||||||
#define AU0828_BOARD_HAUPPAUGE_HVR850 2
|
#define AU0828_BOARD_HAUPPAUGE_HVR850 2
|
||||||
#define AU0828_BOARD_DVICO_FUSIONHDTV7 3
|
#define AU0828_BOARD_DVICO_FUSIONHDTV7 3
|
||||||
|
#define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include "au0828.h"
|
#include "au0828.h"
|
||||||
#include "au8522.h"
|
#include "au8522.h"
|
||||||
#include "xc5000.h"
|
#include "xc5000.h"
|
||||||
|
#include "mxl5007t.h"
|
||||||
|
|
||||||
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
|
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
|
||||||
|
|
||||||
@ -45,6 +46,11 @@ static struct xc5000_config hauppauge_hvr950q_tunerconfig = {
|
|||||||
.tuner_callback = au0828_tuner_callback
|
.tuner_callback = au0828_tuner_callback
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct mxl5007t_config mxl5007t_hvr950q_config = {
|
||||||
|
.xtal_freq_hz = MxL_XTAL_24_MHZ,
|
||||||
|
.if_freq_hz = MxL_IF_6_MHZ,
|
||||||
|
};
|
||||||
|
|
||||||
/*-------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------*/
|
||||||
static void urb_completion(struct urb *purb)
|
static void urb_completion(struct urb *purb)
|
||||||
{
|
{
|
||||||
@ -342,6 +348,15 @@ int au0828_dvb_register(struct au0828_dev *dev)
|
|||||||
&dev->i2c_adap,
|
&dev->i2c_adap,
|
||||||
&hauppauge_hvr950q_tunerconfig, dev);
|
&hauppauge_hvr950q_tunerconfig, dev);
|
||||||
break;
|
break;
|
||||||
|
case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
|
||||||
|
dvb->frontend = dvb_attach(au8522_attach,
|
||||||
|
&hauppauge_hvr950q_config,
|
||||||
|
&dev->i2c_adap);
|
||||||
|
if (dvb->frontend != NULL)
|
||||||
|
dvb_attach(mxl5007t_attach, dvb->frontend,
|
||||||
|
&dev->i2c_adap, 0x60,
|
||||||
|
&mxl5007t_hvr950q_config);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
printk(KERN_WARNING "The frontend of your DVB/ATSC card "
|
printk(KERN_WARNING "The frontend of your DVB/ATSC card "
|
||||||
"isn't supported yet\n");
|
"isn't supported yet\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user