[PATCH] dvb: add nxt200x frontend module

* nxt200x.c, nxt200x.h
- New frontend module that supports both NXT2002 and NXT2004.
  So far, only tested on NXT2004.  After testing on NXT2002, we should
  deprecate the nxt2002 module, and implement this one instead on the
  applicable cards.

* get_dvb_firmware:
- Added support for the NXT2004 firmware. This firmware works with both
  the ATI HDTV Wonder and the AVerTVHD MCE a180.
  This was originally written by Jean-Francois Thibert

* dvb-pll.c
- Fixed minimum frequency for tuv1236d. It seems that the data sheets
  are wrong.

Signed-off-by: Kirk Lapray <kirk.lapray@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Cc: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Kirk Lapray 2005-11-08 21:35:46 -08:00 committed by Linus Torvalds
parent 7f44dcda3f
commit 04a45929e7
6 changed files with 1289 additions and 2 deletions

View File

@ -22,7 +22,7 @@ use File::Temp qw/ tempdir /;
use IO::Handle;
@components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t",
"dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002",
"dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
"or51211", "or51132_qam", "or51132_vsb");
# Check args
@ -252,6 +252,23 @@ sub nxt2002 {
$outfile;
}
sub nxt2004 {
my $sourcefile = "AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip";
my $url = "http://www.aver.com/support/Drivers/$sourcefile";
my $hash = "111cb885b1e009188346d72acfed024c";
my $outfile = "dvb-fe-nxt2004.fw";
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
checkstandard();
wgetfile($sourcefile, $url);
unzip($sourcefile, $tmpdir);
verify("$tmpdir/3xHybrid.sys", $hash);
extract("$tmpdir/3xHybrid.sys", 465304, 9584, $outfile);
$outfile;
}
sub or51211 {
my $fwfile = "dvb-fe-or51211.fw";
my $url = "http://linuxtv.org/downloads/firmware/$fwfile";

View File

@ -164,6 +164,14 @@ config DVB_NXT2002
help
An ATSC 8VSB tuner module. Say Y when you want to support this frontend.
config DVB_NXT200X
tristate "Nextwave NXT2002/NXT2004 based"
depends on DVB_CORE
select FW_LOADER
help
An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
to support this frontend.
config DVB_OR51211
tristate "or51211 based (pcHDTV HD2000 card)"
depends on DVB_CORE

View File

@ -26,6 +26,7 @@ obj-$(CONFIG_DVB_TDA80XX) += tda80xx.o
obj-$(CONFIG_DVB_TDA10021) += tda10021.o
obj-$(CONFIG_DVB_STV0297) += stv0297.o
obj-$(CONFIG_DVB_NXT2002) += nxt2002.o
obj-$(CONFIG_DVB_NXT2002) += nxt200x.o
obj-$(CONFIG_DVB_OR51211) += or51211.o
obj-$(CONFIG_DVB_OR51132) += or51132.o
obj-$(CONFIG_DVB_BCM3510) += bcm3510.o

View File

@ -314,7 +314,7 @@ EXPORT_SYMBOL(dvb_pll_tdhu2);
*/
struct dvb_pll_desc dvb_pll_tuv1236d = {
.name = "Philips TUV1236D",
.min = 57000000,
.min = 54000000,
.max = 864000000,
.count = 3,
.entries = {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,58 @@
/*
* Support for NXT2002 and NXT2004 - VSB/QAM
*
* Copyright (C) 2005 Kirk Lapray (kirk.lapray@gmail.com)
* based on nxt2002 by Taylor Jacob <rtjacob@earthlink.net>
* and nxt2004 by Jean-Francois Thibert (jeanfrancois@sagetv.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifndef NXT200X_H
#define NXT200X_H
#include <linux/dvb/frontend.h>
#include <linux/firmware.h>
typedef enum nxt_chip_t {
NXTUNDEFINED,
NXT2002,
NXT2004
}nxt_chip_type;
struct nxt200x_config
{
/* the demodulator's i2c address */
u8 demod_address;
/* tuner information */
u8 pll_address;
struct dvb_pll_desc *pll_desc;
/* need to set device param for start_dma */
int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
};
extern struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
struct i2c_adapter* i2c);
#endif /* NXT200X_H */
/*
* Local variables:
* c-basic-offset: 8
* End:
*/