Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
ce4b50f2
Commit
ce4b50f2
authored
Feb 07, 2006
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
parents
d43da75f
34218e06
Changes
54
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
54 changed files
with
353 additions
and
2247 deletions
+353
-2247
Documentation/video4linux/CARDLIST.cx88
Documentation/video4linux/CARDLIST.cx88
+1
-1
Documentation/video4linux/CARDLIST.saa7134
Documentation/video4linux/CARDLIST.saa7134
+3
-3
MAINTAINERS
MAINTAINERS
+7
-4
drivers/media/dvb/b2c2/Kconfig
drivers/media/dvb/b2c2/Kconfig
+1
-1
drivers/media/dvb/b2c2/flexcop-common.h
drivers/media/dvb/b2c2/flexcop-common.h
+0
-2
drivers/media/dvb/b2c2/flexcop-dma.c
drivers/media/dvb/b2c2/flexcop-dma.c
+0
-35
drivers/media/dvb/b2c2/flexcop-fe-tuner.c
drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+5
-4
drivers/media/dvb/b2c2/flexcop-misc.c
drivers/media/dvb/b2c2/flexcop-misc.c
+3
-3
drivers/media/dvb/b2c2/flexcop-pci.c
drivers/media/dvb/b2c2/flexcop-pci.c
+4
-2
drivers/media/dvb/b2c2/flexcop-reg.h
drivers/media/dvb/b2c2/flexcop-reg.h
+0
-4
drivers/media/dvb/bt8xx/bt878.c
drivers/media/dvb/bt8xx/bt878.c
+43
-1
drivers/media/dvb/bt8xx/bt878.h
drivers/media/dvb/bt8xx/bt878.h
+17
-0
drivers/media/dvb/dvb-usb/Kconfig
drivers/media/dvb/dvb-usb/Kconfig
+9
-3
drivers/media/dvb/dvb-usb/cxusb.c
drivers/media/dvb/dvb-usb/cxusb.c
+6
-6
drivers/media/dvb/dvb-usb/digitv.c
drivers/media/dvb/dvb-usb/digitv.c
+8
-5
drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
+5
-3
drivers/media/dvb/dvb-usb/dvb-usb.h
drivers/media/dvb/dvb-usb/dvb-usb.h
+0
-1
drivers/media/dvb/dvb-usb/vp702x.c
drivers/media/dvb/dvb-usb/vp702x.c
+4
-2
drivers/media/dvb/dvb-usb/vp702x.h
drivers/media/dvb/dvb-usb/vp702x.h
+0
-2
drivers/media/dvb/dvb-usb/vp7045-fe.c
drivers/media/dvb/dvb-usb/vp7045-fe.c
+4
-2
drivers/media/dvb/frontends/Kconfig
drivers/media/dvb/frontends/Kconfig
+0
-24
drivers/media/dvb/frontends/Makefile
drivers/media/dvb/frontends/Makefile
+0
-3
drivers/media/dvb/frontends/at76c651.c
drivers/media/dvb/frontends/at76c651.c
+0
-450
drivers/media/dvb/frontends/at76c651.h
drivers/media/dvb/frontends/at76c651.h
+0
-47
drivers/media/dvb/frontends/dvb-pll.c
drivers/media/dvb/frontends/dvb-pll.c
+4
-4
drivers/media/dvb/frontends/dvb-pll.h
drivers/media/dvb/frontends/dvb-pll.h
+1
-1
drivers/media/dvb/frontends/nxt2002.c
drivers/media/dvb/frontends/nxt2002.c
+0
-706
drivers/media/dvb/frontends/nxt2002.h
drivers/media/dvb/frontends/nxt2002.h
+0
-23
drivers/media/dvb/frontends/nxt200x.c
drivers/media/dvb/frontends/nxt200x.c
+50
-8
drivers/media/dvb/frontends/tda80xx.c
drivers/media/dvb/frontends/tda80xx.c
+0
-734
drivers/media/dvb/frontends/tda80xx.h
drivers/media/dvb/frontends/tda80xx.h
+0
-51
drivers/media/dvb/ttpci/av7110.c
drivers/media/dvb/ttpci/av7110.c
+13
-1
drivers/media/dvb/ttpci/av7110.h
drivers/media/dvb/ttpci/av7110.h
+0
-2
drivers/media/dvb/ttpci/av7110_ir.c
drivers/media/dvb/ttpci/av7110_ir.c
+13
-13
drivers/media/video/bttv-driver.c
drivers/media/video/bttv-driver.c
+1
-1
drivers/media/video/cx25840/cx25840-core.c
drivers/media/video/cx25840/cx25840-core.c
+20
-30
drivers/media/video/cx88/Kconfig
drivers/media/video/cx88/Kconfig
+12
-0
drivers/media/video/cx88/Makefile
drivers/media/video/cx88/Makefile
+3
-2
drivers/media/video/cx88/cx88-alsa.c
drivers/media/video/cx88/cx88-alsa.c
+3
-3
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-cards.c
+6
-0
drivers/media/video/cx88/cx88-core.c
drivers/media/video/cx88/cx88-core.c
+6
-4
drivers/media/video/cx88/cx88-input.c
drivers/media/video/cx88/cx88-input.c
+1
-0
drivers/media/video/em28xx/em28xx-core.c
drivers/media/video/em28xx/em28xx-core.c
+14
-3
drivers/media/video/em28xx/em28xx-i2c.c
drivers/media/video/em28xx/em28xx-i2c.c
+4
-4
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/em28xx/em28xx-video.c
+3
-0
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-cards.c
+23
-24
drivers/media/video/saa7134/saa7134-dvb.c
drivers/media/video/saa7134/saa7134-dvb.c
+1
-1
drivers/media/video/saa7134/saa7134.h
drivers/media/video/saa7134/saa7134.h
+1
-1
drivers/media/video/stradis.c
drivers/media/video/stradis.c
+5
-10
drivers/media/video/tda9887.c
drivers/media/video/tda9887.c
+7
-2
drivers/media/video/tuner-core.c
drivers/media/video/tuner-core.c
+7
-1
drivers/media/video/tvaudio.c
drivers/media/video/tvaudio.c
+9
-0
drivers/media/video/tvp5150.c
drivers/media/video/tvp5150.c
+23
-9
include/linux/videodev2.h
include/linux/videodev2.h
+3
-1
No files found.
Documentation/video4linux/CARDLIST.cx88
View file @
ce4b50f2
...
...
@@ -42,4 +42,4 @@
41 -> Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile) [0070:9800,0070:9802]
42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025]
43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1]
44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50]
44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50
,18ac:db54
]
Documentation/video4linux/CARDLIST.saa7134
View file @
ce4b50f2
0 -> UNKNOWN/GENERIC
1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001]
2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
3 -> LifeView
FlyVIDEO2000 [5168
:0138]
3 -> LifeView
/Typhoon FlyVIDEO2000 [5168:0138,4e42
:0138]
4 -> EMPRESS [1131:6752]
5 -> SKNet Monster TV [1131:4e85]
6 -> Tevion MD 9717
...
...
@@ -53,12 +53,12 @@
52 -> AverMedia AverTV/305 [1461:2108]
53 -> ASUS TV-FM 7135 [1043:4845]
54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214]
55 -> LifeView FlyDVB-T DUO [5168:0
502,5168:0
306]
55 -> LifeView FlyDVB-T DUO [5168:0306]
56 -> Avermedia AVerTV 307 [1461:a70a]
57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0351,1421:0370,1421:1370]
59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
60 ->
Typhoon DVB-T Duo Digital/Analog Cardbus [
4e42:0502]
60 ->
LifeView/Typhoon FlyDVB-T Duo Cardbus [5168:0502,
4e42:0502]
61 -> Philips TOUGH DVB-T reference design [1131:2004]
62 -> Compro VideoMate TV Gold+II
63 -> Kworld Xpert TV PVR7134
...
...
MAINTAINERS
View file @
ce4b50f2
...
...
@@ -540,7 +540,8 @@ S: Supported
BTTV VIDEO4LINUX DRIVER
P: Mauro Carvalho Chehab
M: mchehab@brturbo.com.br
M: mchehab@infradead.org
M: v4l-dvb-maintainer@linuxtv.org
L: video4linux-list@redhat.com
W: http://linuxtv.org
T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
...
...
@@ -837,11 +838,12 @@ S: Maintained
DVB SUBSYSTEM AND DRIVERS
P: LinuxTV.org Project
M: linux-dvb-maintainer@linuxtv.org
M: mchehab@infradead.org
M: v4l-dvb-maintainer@linuxtv.org
L: linux-dvb@linuxtv.org (subscription required)
W: http://linuxtv.org/
T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
S:
Support
ed
S:
Maintain
ed
EATA-DMA SCSI DRIVER
P: Michael Neuffer
...
...
@@ -2956,7 +2958,8 @@ S: Maintained
VIDEO FOR LINUX
P: Mauro Carvalho Chehab
M: mchehab@brturbo.com.br
M: mchehab@infradead.org
M: v4l-dvb-maintainer@linuxtv.org
L: video4linux-list@redhat.com
W: http://linuxtv.org
T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
...
...
drivers/media/dvb/b2c2/Kconfig
View file @
ce4b50f2
...
...
@@ -4,7 +4,7 @@ config DVB_B2C2_FLEXCOP
select DVB_STV0299
select DVB_MT352
select DVB_MT312
select DVB_NXT200
2
select DVB_NXT200
X
select DVB_STV0297
select DVB_BCM3510
select DVB_LGDT330X
...
...
drivers/media/dvb/b2c2/flexcop-common.h
View file @
ce4b50f2
...
...
@@ -116,11 +116,9 @@ void flexcop_dma_free(struct flexcop_dma *dma);
int
flexcop_dma_control_timer_irq
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
no
,
int
onoff
);
int
flexcop_dma_control_size_irq
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
no
,
int
onoff
);
int
flexcop_dma_control_packet_irq
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
no
,
int
onoff
);
int
flexcop_dma_config
(
struct
flexcop_device
*
fc
,
struct
flexcop_dma
*
dma
,
flexcop_dma_index_t
dma_idx
);
int
flexcop_dma_xfer_control
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
dma_idx
,
flexcop_dma_addr_index_t
index
,
int
onoff
);
int
flexcop_dma_config_timer
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
dma_idx
,
u8
cycles
);
int
flexcop_dma_config_packet_count
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
dma_idx
,
u8
packets
);
/* from flexcop-eeprom.c */
/* the PCI part uses this call to get the MAC address, the USB part has its own */
...
...
drivers/media/dvb/b2c2/flexcop-dma.c
View file @
ce4b50f2
...
...
@@ -169,38 +169,3 @@ int flexcop_dma_config_timer(struct flexcop_device *fc,
}
EXPORT_SYMBOL
(
flexcop_dma_config_timer
);
/* packet IRQ does not exist in FCII or FCIIb - according to data book and tests */
int
flexcop_dma_control_packet_irq
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
no
,
int
onoff
)
{
flexcop_ibi_value
v
=
fc
->
read_ibi_reg
(
fc
,
ctrl_208
);
deb_rdump
(
"reg: %03x: %x
\n
"
,
ctrl_208
,
v
.
raw
);
if
(
no
&
FC_DMA_1
)
v
.
ctrl_208
.
DMA1_Size_IRQ_Enable_sig
=
onoff
;
if
(
no
&
FC_DMA_2
)
v
.
ctrl_208
.
DMA2_Size_IRQ_Enable_sig
=
onoff
;
fc
->
write_ibi_reg
(
fc
,
ctrl_208
,
v
);
deb_rdump
(
"reg: %03x: %x
\n
"
,
ctrl_208
,
v
.
raw
);
return
0
;
}
EXPORT_SYMBOL
(
flexcop_dma_control_packet_irq
);
int
flexcop_dma_config_packet_count
(
struct
flexcop_device
*
fc
,
flexcop_dma_index_t
dma_idx
,
u8
packets
)
{
flexcop_ibi_register
r
=
(
dma_idx
&
FC_DMA_1
)
?
dma1_004
:
dma2_014
;
flexcop_ibi_value
v
=
fc
->
read_ibi_reg
(
fc
,
r
);
flexcop_dma_remap
(
fc
,
dma_idx
,
1
);
v
.
dma_0x4_remap
.
DMA_maxpackets
=
packets
;
fc
->
write_ibi_reg
(
fc
,
r
,
v
);
return
0
;
}
EXPORT_SYMBOL
(
flexcop_dma_config_packet_count
);
drivers/media/dvb/b2c2/flexcop-fe-tuner.c
View file @
ce4b50f2
...
...
@@ -9,7 +9,7 @@
#include "stv0299.h"
#include "mt352.h"
#include "nxt200
2
.h"
#include "nxt200
x
.h"
#include "bcm3510.h"
#include "stv0297.h"
#include "mt312.h"
...
...
@@ -343,9 +343,10 @@ static struct lgdt330x_config air2pc_atsc_hd5000_config = {
.
clock_polarity_flip
=
1
,
};
static
struct
nxt200
2
_config
samsung_tbmv_config
=
{
static
struct
nxt200
x
_config
samsung_tbmv_config
=
{
.
demod_address
=
0x0a
,
.
request_firmware
=
flexcop_fe_request_firmware
,
.
pll_address
=
0xc2
,
.
pll_desc
=
&
dvb_pll_samsung_tbmv
,
};
static
struct
bcm3510_config
air2pc_atsc_first_gen_config
=
{
...
...
@@ -505,7 +506,7 @@ int flexcop_frontend_init(struct flexcop_device *fc)
info
(
"found the mt352 at i2c address: 0x%02x"
,
samsung_tdtc9251dh0_config
.
demod_address
);
}
else
/* try the air atsc 2nd generation (nxt2002) */
if
((
fc
->
fe
=
nxt200
2
_attach
(
&
samsung_tbmv_config
,
&
fc
->
i2c_adap
))
!=
NULL
)
{
if
((
fc
->
fe
=
nxt200
x
_attach
(
&
samsung_tbmv_config
,
&
fc
->
i2c_adap
))
!=
NULL
)
{
fc
->
dev_type
=
FC_AIR_ATSC2
;
info
(
"found the nxt2002 at i2c address: 0x%02x"
,
samsung_tbmv_config
.
demod_address
);
}
else
...
...
drivers/media/dvb/b2c2/flexcop-misc.c
View file @
ce4b50f2
...
...
@@ -36,14 +36,14 @@ void flexcop_determine_revision(struct flexcop_device *fc)
/* bus parts have to decide if hw pid filtering is used or not. */
}
const
char
*
flexcop_revision_names
[]
=
{
static
const
char
*
flexcop_revision_names
[]
=
{
"Unkown chip"
,
"FlexCopII"
,
"FlexCopIIb"
,
"FlexCopIII"
,
};
const
char
*
flexcop_device_names
[]
=
{
static
const
char
*
flexcop_device_names
[]
=
{
"Unkown device"
,
"Air2PC/AirStar 2 DVB-T"
,
"Air2PC/AirStar 2 ATSC 1st generation"
,
...
...
@@ -54,7 +54,7 @@ const char *flexcop_device_names[] = {
"Air2PC/AirStar 2 ATSC 3rd generation (HD5000)"
,
};
const
char
*
flexcop_bus_names
[]
=
{
static
const
char
*
flexcop_bus_names
[]
=
{
"USB"
,
"PCI"
,
};
...
...
drivers/media/dvb/b2c2/flexcop-pci.c
View file @
ce4b50f2
...
...
@@ -161,8 +161,10 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id, struct pt_regs *regs)
fc
->
read_ibi_reg
(
fc
,
dma1_008
).
dma_0x8
.
dma_cur_addr
<<
2
;
u32
cur_pos
=
cur_addr
-
fc_pci
->
dma
[
0
].
dma_addr0
;
deb_irq
(
"%u irq: %08x cur_addr: %08x: cur_pos: %08x, last_cur_pos: %08x "
,
jiffies_to_usecs
(
jiffies
-
fc_pci
->
last_irq
),
v
.
raw
,
cur_addr
,
cur_pos
,
fc_pci
->
last_dma1_cur_pos
);
deb_irq
(
"%u irq: %08x cur_addr: %llx: cur_pos: %08x, last_cur_pos: %08x "
,
jiffies_to_usecs
(
jiffies
-
fc_pci
->
last_irq
),
v
.
raw
,
(
unsigned
long
long
)
cur_addr
,
cur_pos
,
fc_pci
->
last_dma1_cur_pos
);
fc_pci
->
last_irq
=
jiffies
;
/* buffer end was reached, restarted from the beginning
...
...
drivers/media/dvb/b2c2/flexcop-reg.h
View file @
ce4b50f2
...
...
@@ -16,8 +16,6 @@ typedef enum {
FLEXCOP_III
,
}
flexcop_revision_t
;
extern
const
char
*
flexcop_revision_names
[];
typedef
enum
{
FC_UNK
=
0
,
FC_AIR_DVB
,
...
...
@@ -34,8 +32,6 @@ typedef enum {
FC_PCI
,
}
flexcop_bus_t
;
extern
const
char
*
flexcop_device_names
[];
/* FlexCop IBI Registers */
#if defined(__LITTLE_ENDIAN)
#include "flexcop_ibi_value_le.h"
...
...
drivers/media/dvb/bt8xx/bt878.c
View file @
ce4b50f2
...
...
@@ -381,6 +381,23 @@ bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet *
EXPORT_SYMBOL
(
bt878_device_control
);
struct
cards
card_list
[]
__devinitdata
=
{
{
0x01010071
,
BTTV_BOARD_NEBULA_DIGITV
,
"Nebula Electronics DigiTV"
},
{
0x07611461
,
BTTV_BOARD_AVDVBT_761
,
"AverMedia AverTV DVB-T 761"
},
{
0x001c11bd
,
BTTV_BOARD_PINNACLESAT
,
"Pinnacle PCTV Sat"
},
{
0x002611bd
,
BTTV_BOARD_TWINHAN_DST
,
"Pinnacle PCTV SAT CI"
},
{
0x00011822
,
BTTV_BOARD_TWINHAN_DST
,
"Twinhan VisionPlus DVB"
},
{
0xfc00270f
,
BTTV_BOARD_TWINHAN_DST
,
"ChainTech digitop DST-1000 DVB-S"
},
{
0x07711461
,
BTTV_BOARD_AVDVBT_771
,
"AVermedia AverTV DVB-T 771"
},
{
0xdb1018ac
,
BTTV_BOARD_DVICO_DVBT_LITE
,
"DViCO FusionHDTV DVB-T Lite"
},
{
0xd50018ac
,
BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE
,
"DViCO FusionHDTV 5 Lite"
},
{
0x20007063
,
BTTV_BOARD_PC_HDTV
,
"pcHDTV HD-2000 TV"
},
{
0
,
-
1
,
NULL
}
};
/***********************/
/* PCI device handling */
/***********************/
...
...
@@ -388,18 +405,41 @@ EXPORT_SYMBOL(bt878_device_control);
static
int
__devinit
bt878_probe
(
struct
pci_dev
*
dev
,
const
struct
pci_device_id
*
pci_id
)
{
int
result
;
int
result
=
0
,
has_dvb
=
0
,
i
;
unsigned
char
lat
;
struct
bt878
*
bt
;
#if defined(__powerpc__)
unsigned
int
cmd
;
#endif
unsigned
int
cardid
;
unsigned
short
id
;
struct
cards
*
dvb_cards
;
printk
(
KERN_INFO
"bt878: Bt878 AUDIO function found (%d).
\n
"
,
bt878_num
);
if
(
pci_enable_device
(
dev
))
return
-
EIO
;
pci_read_config_word
(
dev
,
PCI_SUBSYSTEM_ID
,
&
id
);
cardid
=
id
<<
16
;
pci_read_config_word
(
dev
,
PCI_SUBSYSTEM_VENDOR_ID
,
&
id
);
cardid
|=
id
;
for
(
i
=
0
,
dvb_cards
=
card_list
;
i
<
ARRAY_SIZE
(
card_list
);
i
++
,
dvb_cards
++
)
{
if
(
cardid
==
dvb_cards
->
pci_id
)
{
printk
(
"%s: card id=[0x%x],[ %s ] has DVB functions.
\n
"
,
__func__
,
cardid
,
dvb_cards
->
name
);
has_dvb
=
1
;
}
}
if
(
!
has_dvb
)
{
printk
(
"%s: card id=[0x%x], Unknown card.
\n
Exiting..
\n
"
,
__func__
,
cardid
);
result
=
-
EINVAL
;
goto
fail0
;
}
bt
=
&
bt878
[
bt878_num
];
bt
->
dev
=
dev
;
bt
->
nr
=
bt878_num
;
...
...
@@ -416,6 +456,8 @@ static int __devinit bt878_probe(struct pci_dev *dev,
pci_read_config_byte
(
dev
,
PCI_CLASS_REVISION
,
&
bt
->
revision
);
pci_read_config_byte
(
dev
,
PCI_LATENCY_TIMER
,
&
lat
);
printk
(
KERN_INFO
"bt878(%d): Bt%x (rev %d) at %02x:%02x.%x, "
,
bt878_num
,
bt
->
id
,
bt
->
revision
,
dev
->
bus
->
number
,
PCI_SLOT
(
dev
->
devfn
),
PCI_FUNC
(
dev
->
devfn
));
...
...
drivers/media/dvb/bt8xx/bt878.h
View file @
ce4b50f2
...
...
@@ -88,6 +88,23 @@
#define BT878_RISC_SYNC_MASK (1 << 15)
#define BTTV_BOARD_UNKNOWN 0x00
#define BTTV_BOARD_PINNACLESAT 0x5e
#define BTTV_BOARD_NEBULA_DIGITV 0x68
#define BTTV_BOARD_PC_HDTV 0x70
#define BTTV_BOARD_TWINHAN_DST 0x71
#define BTTV_BOARD_AVDVBT_771 0x7b
#define BTTV_BOARD_AVDVBT_761 0x7c
#define BTTV_BOARD_DVICO_DVBT_LITE 0x80
#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87
struct
cards
{
__u32
pci_id
;
__u16
card_id
;
char
*
name
;
};
extern
int
bt878_num
;
struct
bt878
{
...
...
drivers/media/dvb/dvb-usb/Kconfig
View file @
ce4b50f2
...
...
@@ -83,12 +83,18 @@ config DVB_USB_UMT_010
Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
config DVB_USB_CXUSB
tristate "
Medion MD95700 hybrid USB2.0 (Conexant)
support"
tristate "
Conexant USB2.0 hybrid reference design
support"
depends on DVB_USB
select DVB_CX22702
select DVB_LGDT330X
select DVB_MT352
help
Say Y here to support the Medion MD95700 hybrid USB2.0 device. Currently
only the DVB-T part is supported.
Say Y here to support the Conexant USB2.0 hybrid reference design.
Currently, only DVB and ATSC modes are supported, analog mode
shall be added in the future. Devices that require this module:
Medion MD95700 hybrid USB2.0 device.
DViCO FusionHDTV (Bluebird) USB2.0 devices
config DVB_USB_DIGITV
tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support"
...
...
drivers/media/dvb/dvb-usb/cxusb.c
View file @
ce4b50f2
...
...
@@ -184,7 +184,7 @@ static int cxusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
return
0
;
}
struct
dvb_usb_rc_key
dvico_mce_rc_keys
[]
=
{
st
atic
st
ruct
dvb_usb_rc_key
dvico_mce_rc_keys
[]
=
{
{
0xfe
,
0x02
,
KEY_TV
},
{
0xfe
,
0x0e
,
KEY_MP3
},
{
0xfe
,
0x1a
,
KEY_DVD
},
...
...
@@ -234,7 +234,7 @@ struct dvb_usb_rc_key dvico_mce_rc_keys[] = {
static
int
cxusb_dee1601_demod_init
(
struct
dvb_frontend
*
fe
)
{
static
u8
clock_config
[]
=
{
CLOCK_CTL
,
0x38
,
0x
3
8
};
static
u8
clock_config
[]
=
{
CLOCK_CTL
,
0x38
,
0x
2
8
};
static
u8
reset
[]
=
{
RESET
,
0x80
};
static
u8
adc_ctl_1_cfg
[]
=
{
ADC_CTL_1
,
0x40
};
static
u8
agc_cfg
[]
=
{
AGC_TARGET
,
0x28
,
0x20
};
...
...
@@ -255,7 +255,7 @@ static int cxusb_dee1601_demod_init(struct dvb_frontend* fe)
static
int
cxusb_mt352_demod_init
(
struct
dvb_frontend
*
fe
)
{
/* used in both lgz201 and th7579 */
static
u8
clock_config
[]
=
{
CLOCK_CTL
,
0x38
,
0x
3
9
};
static
u8
clock_config
[]
=
{
CLOCK_CTL
,
0x38
,
0x
2
9
};
static
u8
reset
[]
=
{
RESET
,
0x80
};
static
u8
adc_ctl_1_cfg
[]
=
{
ADC_CTL_1
,
0x40
};
static
u8
agc_cfg
[]
=
{
AGC_TARGET
,
0x24
,
0x20
};
...
...
@@ -273,7 +273,7 @@ static int cxusb_mt352_demod_init(struct dvb_frontend* fe)
return
0
;
}
struct
cx22702_config
cxusb_cx22702_config
=
{
st
atic
st
ruct
cx22702_config
cxusb_cx22702_config
=
{
.
demod_address
=
0x63
,
.
output_mode
=
CX22702_PARALLEL_OUTPUT
,
...
...
@@ -282,13 +282,13 @@ struct cx22702_config cxusb_cx22702_config = {
.
pll_set
=
dvb_usb_pll_set_i2c
,
};
struct
lgdt330x_config
cxusb_lgdt330x_config
=
{
st
atic
st
ruct
lgdt330x_config
cxusb_lgdt330x_config
=
{
.
demod_address
=
0x0e
,
.
demod_chip
=
LGDT3303
,
.
pll_set
=
dvb_usb_pll_set_i2c
,
};
struct
mt352_config
cxusb_dee1601_config
=
{
st
atic
st
ruct
mt352_config
cxusb_dee1601_config
=
{
.
demod_address
=
0x0f
,
.
demod_init
=
cxusb_dee1601_demod_init
,
.
pll_set
=
dvb_usb_pll_set
,
...
...
drivers/media/dvb/dvb-usb/digitv.c
View file @
ce4b50f2
...
...
@@ -175,11 +175,13 @@ static int digitv_probe(struct usb_interface *intf,
if
((
ret
=
dvb_usb_device_init
(
intf
,
&
digitv_properties
,
THIS_MODULE
,
&
d
))
==
0
)
{
u8
b
[
4
]
=
{
0
};
b
[
0
]
=
1
;
digitv_ctrl_msg
(
d
,
USB_WRITE_REMOTE_TYPE
,
0
,
b
,
4
,
NULL
,
0
);
if
(
d
!=
NULL
)
{
/* do that only when the firmware is loaded */
b
[
0
]
=
1
;
digitv_ctrl_msg
(
d
,
USB_WRITE_REMOTE_TYPE
,
0
,
b
,
4
,
NULL
,
0
);
b
[
0
]
=
0
;
digitv_ctrl_msg
(
d
,
USB_WRITE_REMOTE
,
0
,
b
,
4
,
NULL
,
0
);
b
[
0
]
=
0
;
digitv_ctrl_msg
(
d
,
USB_WRITE_REMOTE
,
0
,
b
,
4
,
NULL
,
0
);
}
}
return
ret
;
}
...
...
@@ -194,7 +196,7 @@ static struct dvb_usb_properties digitv_properties = {
.
caps
=
DVB_USB_IS_AN_I2C_ADAPTER
,
.
usb_ctrl
=
CYPRESS_FX2
,
.
firmware
=
"dvb-usb-digitv-0
1
.fw"
,
.
firmware
=
"dvb-usb-digitv-0
2
.fw"
,
.
size_of_priv
=
0
,
...
...
@@ -229,6 +231,7 @@ static struct dvb_usb_properties digitv_properties = {
{
&
digitv_table
[
0
],
NULL
},
{
NULL
},
},
{
NULL
},
}
};
...
...
drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
View file @
ce4b50f2
...
...
@@ -24,6 +24,9 @@ static struct usb_cypress_controller cypress[] = {
{
.
id
=
CYPRESS_FX2
,
.
name
=
"Cypress FX2"
,
.
cpu_cs_register
=
0xe600
},
};
static
int
dvb_usb_get_hexline
(
const
struct
firmware
*
fw
,
struct
hexline
*
hx
,
int
*
pos
);
/*
* load a firmware packet to the device
*/
...
...
@@ -112,7 +115,8 @@ int dvb_usb_download_firmware(struct usb_device *udev, struct dvb_usb_properties
return
ret
;
}
int
dvb_usb_get_hexline
(
const
struct
firmware
*
fw
,
struct
hexline
*
hx
,
int
*
pos
)
static
int
dvb_usb_get_hexline
(
const
struct
firmware
*
fw
,
struct
hexline
*
hx
,
int
*
pos
)
{
u8
*
b
=
(
u8
*
)
&
fw
->
data
[
*
pos
];
int
data_offs
=
4
;
...
...
@@ -142,5 +146,3 @@ int dvb_usb_get_hexline(const struct firmware *fw, struct hexline *hx, int *pos)
return
*
pos
;
}
EXPORT_SYMBOL
(
dvb_usb_get_hexline
);
drivers/media/dvb/dvb-usb/dvb-usb.h
View file @
ce4b50f2
...
...
@@ -341,7 +341,6 @@ struct hexline {
u8
data
[
255
];
u8
chk
;
};
extern
int
dvb_usb_get_hexline
(
const
struct
firmware
*
,
struct
hexline
*
,
int
*
);
extern
int
usb_cypress_load_firmware
(
struct
usb_device
*
udev
,
const
struct
firmware
*
fw
,
int
type
);
#endif
drivers/media/dvb/dvb-usb/vp702x.c
View file @
ce4b50f2
...
...
@@ -53,7 +53,8 @@ int vp702x_usb_in_op(struct dvb_usb_device *d, u8 req, u16 value, u16 index, u8
return
ret
;
}
int
vp702x_usb_out_op
(
struct
dvb_usb_device
*
d
,
u8
req
,
u16
value
,
u16
index
,
u8
*
b
,
int
blen
)
static
int
vp702x_usb_out_op
(
struct
dvb_usb_device
*
d
,
u8
req
,
u16
value
,
u16
index
,
u8
*
b
,
int
blen
)
{
deb_xfer
(
"out: req. %x, val: %x, ind: %x, buffer: "
,
req
,
value
,
index
);
debug_dump
(
b
,
blen
,
deb_xfer
);
...
...
@@ -88,7 +89,8 @@ int vp702x_usb_inout_op(struct dvb_usb_device *d, u8 *o, int olen, u8 *i, int il
return
ret
;
}
int
vp702x_usb_inout_cmd
(
struct
dvb_usb_device
*
d
,
u8
cmd
,
u8
*
o
,
int
olen
,
u8
*
i
,
int
ilen
,
int
msec
)
static
int
vp702x_usb_inout_cmd
(
struct
dvb_usb_device
*
d
,
u8
cmd
,
u8
*
o
,
int
olen
,
u8
*
i
,
int
ilen
,
int
msec
)
{
u8
bout
[
olen
+
2
];
u8
bin
[
ilen
+
1
];
...
...
drivers/media/dvb/dvb-usb/vp702x.h
View file @
ce4b50f2
...
...
@@ -101,8 +101,6 @@ extern int dvb_usb_vp702x_debug;
extern
struct
dvb_frontend
*
vp702x_fe_attach
(
struct
dvb_usb_device
*
d
);
extern
int
vp702x_usb_inout_op
(
struct
dvb_usb_device
*
d
,
u8
*
o
,
int
olen
,
u8
*
i
,
int
ilen
,
int
msec
);
extern
int
vp702x_usb_inout_cmd
(
struct
dvb_usb_device
*
d
,
u8
cmd
,
u8
*
o
,
int
olen
,
u8
*
i
,
int
ilen
,
int
msec
);
extern
int
vp702x_usb_in_op
(
struct
dvb_usb_device
*
d
,
u8
req
,
u16
value
,
u16
index
,
u8
*
b
,
int
blen
);
extern
int
vp702x_usb_out_op
(
struct
dvb_usb_device
*
d
,
u8
req
,
u16
value
,
u16
index
,
u8
*
b
,
int
blen
);
#endif
drivers/media/dvb/dvb-usb/vp7045-fe.c
View file @
ce4b50f2
...
...
@@ -23,10 +23,11 @@
struct
vp7045_fe_state
{
struct
dvb_frontend
fe
;
struct
dvb_frontend_ops
ops
;
struct
dvb_usb_device
*
d
;
};
static
int
vp7045_fe_read_status
(
struct
dvb_frontend
*
fe
,
fe_status_t
*
status
)
{
struct
vp7045_fe_state
*
state
=
fe
->
demodulator_priv
;
...
...
@@ -150,7 +151,8 @@ struct dvb_frontend * vp7045_fe_attach(struct dvb_usb_device *d)
goto
error
;
s
->
d
=
d
;
s
->
fe
.
ops
=
&
vp7045_fe_ops
;
memcpy
(
&
s
->
ops
,
&
vp7045_fe_ops
,
sizeof
(
struct
dvb_frontend_ops
));
s
->
fe
.
ops
=
&
s
->
ops
;
s
->
fe
.
demodulator_priv
=
s
;
goto
success
;
...
...
drivers/media/dvb/frontends/Kconfig
View file @
ce4b50f2
...
...
@@ -28,12 +28,6 @@ config DVB_TDA8083
help
A DVB-S tuner module. Say Y when you want to support this frontend.
config DVB_TDA80XX
tristate "Philips TDA8044 or TDA8083 based"
depends on DVB_CORE
help
A DVB-S tuner module. Say Y when you want to support this frontend.
config DVB_MT312
tristate "Zarlink MT312 based"
depends on DVB_CORE
...
...
@@ -139,12 +133,6 @@ config DVB_DIB3000MC
comment "DVB-C (cable) frontends"
depends on DVB_CORE
config DVB_ATMEL_AT76C651
tristate "Atmel AT76C651 based"
depends on DVB_CORE
help
A DVB-C tuner module. Say Y when you want to support this frontend.
config DVB_VES1820
tristate "VLSI VES1820 based"
depends on DVB_CORE
...
...
@@ -166,18 +154,6 @@ config DVB_STV0297
comment "ATSC (North American/Korean Terresterial DTV) frontends"
depends on DVB_CORE
config DVB_NXT2002
tristate "Nxt2002 based"
depends on DVB_CORE
select FW_LOADER
help
An ATSC 8VSB tuner module. Say Y when you want to support this frontend.
This driver needs external firmware. Please use the command
"<kerneldir>/Documentation/dvb/get_dvb_firmware nxt2002" to
download/extract it, and then copy it to /usr/lib/hotplug/firmware
or /lib/firmware (depending on configuration of firmware hotplug).
config DVB_NXT200X
tristate "Nextwave NXT2002/NXT2004 based"
depends on DVB_CORE
...
...
drivers/media/dvb/frontends/Makefile
View file @
ce4b50f2
...
...
@@ -8,7 +8,6 @@ obj-$(CONFIG_DVB_CORE) += dvb-pll.o
obj-$(CONFIG_DVB_STV0299)
+=
stv0299.o
obj-$(CONFIG_DVB_SP8870)
+=
sp8870.o
obj-$(CONFIG_DVB_CX22700)
+=
cx22700.o
obj-$(CONFIG_DVB_ATMEL_AT76C651)
+=
at76c651.o
obj-$(CONFIG_DVB_CX24110)
+=
cx24110.o
obj-$(CONFIG_DVB_TDA8083)
+=
tda8083.o
obj-$(CONFIG_DVB_L64781)
+=
l64781.o
...
...
@@ -22,10 +21,8 @@ obj-$(CONFIG_DVB_SP887X) += sp887x.o
obj-$(CONFIG_DVB_NXT6000)
+=
nxt6000.o
obj-$(CONFIG_DVB_MT352)
+=
mt352.o
obj-$(CONFIG_DVB_CX22702)
+=
cx22702.o
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_NXT200X)
+=
nxt200x.o
obj-$(CONFIG_DVB_OR51211)
+=
or51211.o
obj-$(CONFIG_DVB_OR51132)
+=
or51132.o
...
...
drivers/media/dvb/frontends/at76c651.c
deleted
100644 → 0
View file @
d43da75f
This diff is collapsed.
Click to expand it.
drivers/media/dvb/frontends/at76c651.h
deleted
100644 → 0
View file @
d43da75f
/*
* at76c651.c
*
* Atmel DVB-C Frontend Driver (at76c651)
*
* Copyright (C) 2001 fnbrd <fnbrd@gmx.de>
* & 2002-2004 Andreas Oberritter <obi@linuxtv.org>
* & 2003 Wolfram Joost <dbox2@frokaschwei.de>
*
* 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.
*
* AT76C651
* http://www.nalanda.nitc.ac.in/industry/datasheets/atmel/acrobat/doc1293.pdf
* http://www.atmel.com/atmel/acrobat/doc1320.pdf
*/
#ifndef AT76C651_H
#define AT76C651_H
#include <linux/dvb/frontend.h>
struct
at76c651_config
{
/* the demodulator's i2c address */
u8
demod_address
;
/* PLL maintenance */
int
(
*
pll_init
)(
struct
dvb_frontend
*
fe
);
int
(
*
pll_set
)(
struct
dvb_frontend
*
fe
,
struct
dvb_frontend_parameters
*
params
);
};
extern
struct
dvb_frontend
*
at76c651_attach
(
const
struct
at76c651_config
*
config
,
struct
i2c_adapter
*
i2c
);
#endif // AT76C651_H
drivers/media/dvb/frontends/dvb-pll.c
View file @
ce4b50f2
...
...
@@ -326,11 +326,11 @@ struct dvb_pll_desc dvb_pll_tuv1236d = {
};
EXPORT_SYMBOL
(
dvb_pll_tuv1236d
);
/* Samsung TBMV30111IN
/* Samsung TBMV30111IN
/ TBMV30712IN1
* used in Air2PC ATSC - 2nd generation (nxt2002)
*/
struct
dvb_pll_desc
dvb_pll_
tbmv30111in
=
{
.
name
=
"Samsung TBMV30111IN"
,
struct
dvb_pll_desc
dvb_pll_
samsung_tbmv
=
{
.
name
=
"Samsung TBMV30111IN
/ TBMV30712IN1
"
,
.
min
=
54000000
,
.
max
=
860000000
,
.
count
=
6
,
...
...
@@ -343,7 +343,7 @@ struct dvb_pll_desc dvb_pll_tbmv30111in = {
{
999999999
,
44000000
,
166666
,
0xfc
,
0x02
},
}
};
EXPORT_SYMBOL
(
dvb_pll_
tbmv30111in
);
EXPORT_SYMBOL
(
dvb_pll_
samsung_tbmv
);
/*
* Philips SD1878 Tuner.
...
...
drivers/media/dvb/frontends/dvb-pll.h
View file @
ce4b50f2
...
...
@@ -38,7 +38,7 @@ extern struct dvb_pll_desc dvb_pll_tded4;
extern
struct
dvb_pll_desc
dvb_pll_tuv1236d
;
extern
struct
dvb_pll_desc
dvb_pll_tdhu2
;
extern
struct
dvb_pll_desc
dvb_pll_
tbmv30111in
;
extern
struct
dvb_pll_desc
dvb_pll_
samsung_tbmv
;
extern
struct
dvb_pll_desc
dvb_pll_philips_sd1878_tda8261
;
int
dvb_pll_configure
(
struct
dvb_pll_desc
*
desc
,
u8
*
buf
,
...
...
drivers/media/dvb/frontends/nxt2002.c
deleted
100644 → 0
View file @
d43da75f
This diff is collapsed.
Click to expand it.
drivers/media/dvb/frontends/nxt2002.h
deleted
100644 → 0
View file @
d43da75f
/*
Driver for the Nxt2002 demodulator
*/
#ifndef NXT2002_H
#define NXT2002_H
#include <linux/dvb/frontend.h>
#include <linux/firmware.h>
struct
nxt2002_config
{
/* the demodulator's i2c address */
u8
demod_address
;
/* request firmware for device */
int
(
*
request_firmware
)(
struct
dvb_frontend
*
fe
,
const
struct
firmware
**
fw
,
char
*
name
);
};
extern
struct
dvb_frontend
*
nxt2002_attach
(
const
struct
nxt2002_config
*
config
,
struct
i2c_adapter
*
i2c
);
#endif // NXT2002_H
drivers/media/dvb/frontends/nxt200x.c
View file @
ce4b50f2
/*
* Support for NXT2002 and NXT2004 - VSB/QAM
*
* Copyright (C) 2005 Kirk Lapray (kirk.lapray@gmail.com)
* Copyright (C) 2005 Kirk Lapray <kirk.lapray@gmail.com>
* Copyright (C) 2006 Michael Krufky <mkrufky@m1k.net>
* based on nxt2002 by Taylor Jacob <rtjacob@earthlink.net>
* and nxt2004 by Jean-Francois Thibert
(jeanfrancois@sagetv.com)
* 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
...
...
@@ -614,7 +615,17 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
/* write sdm1 input */
buf
[
0
]
=
0x10
;
buf
[
1
]
=
0x00
;
nxt200x_writebytes
(
state
,
0x58
,
buf
,
2
);
switch
(
state
->
demod_chip
)
{
case
NXT2002
:
nxt200x_writereg_multibyte
(
state
,
0x58
,
buf
,
2
);
break
;
case
NXT2004
:
nxt200x_writebytes
(
state
,
0x58
,
buf
,
2
);
break
;
default:
return
-
EINVAL
;
break
;
}
/* write sdmx input */
switch
(
p
->
u
.
vsb
.
modulation
)
{
...
...
@@ -632,7 +643,17 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
break
;
}
buf
[
1
]
=
0x00
;
nxt200x_writebytes
(
state
,
0x5C
,
buf
,
2
);
switch
(
state
->
demod_chip
)
{
case
NXT2002
:
nxt200x_writereg_multibyte
(
state
,
0x5C
,
buf
,
2
);
break
;
case
NXT2004
:
nxt200x_writebytes
(
state
,
0x5C
,
buf
,
2
);
break
;
default:
return
-
EINVAL
;
break
;
}
/* write adc power lpf fc */
buf
[
0
]
=
0x05
;
...
...
@@ -648,7 +669,17 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
/* write accumulator2 input */
buf
[
0
]
=
0x80
;
buf
[
1
]
=
0x00
;
nxt200x_writebytes
(
state
,
0x4B
,
buf
,
2
);
switch
(
state
->
demod_chip
)
{
case
NXT2002
:
nxt200x_writereg_multibyte
(
state
,
0x4B
,
buf
,
2
);
break
;
case
NXT2004
:
nxt200x_writebytes
(
state
,
0x4B
,
buf
,
2
);
break
;
default:
return
-
EINVAL
;
break
;
}
/* write kg1 */
buf
[
0
]
=
0x00
;
...
...
@@ -714,8 +745,19 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
/* write accumulator2 input */
buf
[
0
]
=
0x80
;
buf
[
1
]
=
0x00
;
nxt200x_writebytes
(
state
,
0x49
,
buf
,
2
);
nxt200x_writebytes
(
state
,
0x4B
,
buf
,
2
);
switch
(
state
->
demod_chip
)
{
case
NXT2002
:
nxt200x_writereg_multibyte
(
state
,
0x49
,
buf
,
2
);
nxt200x_writereg_multibyte
(
state
,
0x4B
,
buf
,
2
);
break
;
case
NXT2004
:
nxt200x_writebytes
(
state
,
0x49
,
buf
,
2
);
nxt200x_writebytes
(
state
,
0x4B
,
buf
,
2
);
break
;
default:
return
-
EINVAL
;
break
;
}
/* write agc control reg */
buf
[
0
]
=
0x04
;
...
...
@@ -1199,7 +1241,7 @@ module_param(debug, int, 0644);
MODULE_PARM_DESC
(
debug
,
"Turn on/off frontend debugging (default:off)."
);
MODULE_DESCRIPTION
(
"NXT200X (ATSC 8VSB & ITU-T J.83 AnnexB 64/256 QAM) Demodulator Driver"
);
MODULE_AUTHOR
(
"Kirk Lapray, Jean-Francois Thibert, and Taylor Jacob"
);
MODULE_AUTHOR
(
"Kirk Lapray,
Michael Krufky,
Jean-Francois Thibert, and Taylor Jacob"
);
MODULE_LICENSE
(
"GPL"
);
EXPORT_SYMBOL
(
nxt200x_attach
);
...
...
drivers/media/dvb/frontends/tda80xx.c
deleted
100644 → 0
View file @
d43da75f
This diff is collapsed.
Click to expand it.
drivers/media/dvb/frontends/tda80xx.h
deleted
100644 → 0
View file @
d43da75f
/*
* tda80xx.c
*
* Philips TDA8044 / TDA8083 QPSK demodulator driver
*
* Copyright (C) 2001 Felix Domke <tmbinc@elitedvb.net>
* Copyright (C) 2002-2004 Andreas Oberritter <obi@linuxtv.org>
*
* 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 TDA80XX_H
#define TDA80XX_H
#include <linux/dvb/frontend.h>
struct
tda80xx_config
{
/* the demodulator's i2c address */
u8
demod_address
;
/* IRQ to use (0=>no IRQ used) */
u32
irq
;
/* Register setting to use for 13v */
u8
volt13setting
;
/* Register setting to use for 18v */
u8
volt18setting
;
/* PLL maintenance */
int
(
*
pll_init
)(
struct
dvb_frontend
*
fe
);
int
(
*
pll_set
)(
struct
dvb_frontend
*
fe
,
struct
dvb_frontend_parameters
*
params
);
};
extern
struct
dvb_frontend
*
tda80xx_attach
(
const
struct
tda80xx_config
*
config
,
struct
i2c_adapter
*
i2c
);
#endif // TDA80XX_H
drivers/media/dvb/ttpci/av7110.c
View file @
ce4b50f2
...
...
@@ -2329,6 +2329,17 @@ static int frontend_init(struct av7110 *av7110)
av7110
->
fe
=
ves1820_attach
(
&
alps_tdbe2_config
,
&
av7110
->
i2c_adap
,
read_pwm
(
av7110
));
break
;
case
0x0004
:
// Galaxis DVB-S rev1.3
/* ALPS BSRV2 */
av7110
->
fe
=
ves1x93_attach
(
&
alps_bsrv2_config
,
&
av7110
->
i2c_adap
);
if
(
av7110
->
fe
)
{
av7110
->
fe
->
ops
->
diseqc_send_master_cmd
=
av7110_diseqc_send_master_cmd
;
av7110
->
fe
->
ops
->
diseqc_send_burst
=
av7110_diseqc_send_burst
;
av7110
->
fe
->
ops
->
set_tone
=
av7110_set_tone
;
av7110
->
recover
=
dvb_s_recover
;
}
break
;
case
0x0006
:
/* Fujitsu-Siemens DVB-S rev 1.6 */
/* Grundig 29504-451 */
av7110
->
fe
=
tda8083_attach
(
&
grundig_29504_451_config
,
&
av7110
->
i2c_adap
);
...
...
@@ -2930,6 +2941,7 @@ MAKE_AV7110_INFO(tts_1_3se, "Technotrend/Hauppauge WinTV DVB-S rev1.3 SE");
MAKE_AV7110_INFO
(
ttt
,
"Technotrend/Hauppauge DVB-T"
);
MAKE_AV7110_INFO
(
fsc
,
"Fujitsu Siemens DVB-C"
);
MAKE_AV7110_INFO
(
fss
,
"Fujitsu Siemens DVB-S rev1.6"
);
MAKE_AV7110_INFO
(
gxs_1_3
,
"Galaxis DVB-S rev1.3"
);
static
struct
pci_device_id
pci_tbl
[]
=
{
MAKE_EXTENSION_PCI
(
fsc
,
0x110a
,
0x0000
),
...
...
@@ -2937,13 +2949,13 @@ static struct pci_device_id pci_tbl[] = {
MAKE_EXTENSION_PCI
(
ttt_1_X
,
0x13c2
,
0x0001
),
MAKE_EXTENSION_PCI
(
ttc_2_X
,
0x13c2
,
0x0002
),
MAKE_EXTENSION_PCI
(
tts_2_X
,
0x13c2
,
0x0003
),
MAKE_EXTENSION_PCI
(
gxs_1_3
,
0x13c2
,
0x0004
),
MAKE_EXTENSION_PCI
(
fss
,
0x13c2
,
0x0006
),
MAKE_EXTENSION_PCI
(
ttt
,
0x13c2
,
0x0008
),
MAKE_EXTENSION_PCI
(
ttc_1_X
,
0x13c2
,
0x000a
),
MAKE_EXTENSION_PCI
(
tts_2_3
,
0x13c2
,
0x000e
),
MAKE_EXTENSION_PCI
(
tts_1_3se
,
0x13c2
,
0x1002
),
/* MAKE_EXTENSION_PCI(???, 0x13c2, 0x0004), UNDEFINED CARD */
// Galaxis DVB PC-Sat-Carte
/* MAKE_EXTENSION_PCI(???, 0x13c2, 0x0005), UNDEFINED CARD */
// Technisat SkyStar1
/* MAKE_EXTENSION_PCI(???, 0x13c2, 0x0009), UNDEFINED CARD */
// TT/Hauppauge WinTV Nexus-CA v????
...
...
drivers/media/dvb/ttpci/av7110.h
View file @
ce4b50f2
...
...
@@ -273,8 +273,6 @@ struct av7110 {
extern
int
ChangePIDs
(
struct
av7110
*
av7110
,
u16
vpid
,
u16
apid
,
u16
ttpid
,
u16
subpid
,
u16
pcrpid
);
extern
int
av7110_setup_irc_config
(
struct
av7110
*
av7110
,
u32
ir_config
);
extern
int
av7110_ir_init
(
struct
av7110
*
av7110
);
extern
void
av7110_ir_exit
(
struct
av7110
*
av7110
);
...
...
drivers/media/dvb/ttpci/av7110_ir.c
View file @
ce4b50f2
...
...
@@ -155,6 +155,19 @@ static void input_repeat_key(unsigned long data)
}
static
int
av7110_setup_irc_config
(
struct
av7110
*
av7110
,
u32
ir_config
)
{
int
ret
=
0
;
dprintk
(
4
,
"%p
\n
"
,
av7110
);
if
(
av7110
)
{
ret
=
av7110_fw_cmd
(
av7110
,
COMTYPE_PIDFILTER
,
SetIR
,
1
,
ir_config
);
av7110
->
ir_config
=
ir_config
;
}
return
ret
;
}
static
int
av7110_ir_write_proc
(
struct
file
*
file
,
const
char
__user
*
buffer
,
unsigned
long
count
,
void
*
data
)
{
...
...
@@ -187,19 +200,6 @@ static int av7110_ir_write_proc(struct file *file, const char __user *buffer,
}
int
av7110_setup_irc_config
(
struct
av7110
*
av7110
,
u32
ir_config
)
{
int
ret
=
0
;
dprintk
(
4
,
"%p
\n
"
,
av7110
);
if
(
av7110
)
{
ret
=
av7110_fw_cmd
(
av7110
,
COMTYPE_PIDFILTER
,
SetIR
,
1
,
ir_config
);
av7110
->
ir_config
=
ir_config
;
}
return
ret
;
}
static
void
ir_handler
(
struct
av7110
*
av7110
,
u32
ircom
)
{
dprintk
(
4
,
"ircommand = %08x
\n
"
,
ircom
);
...
...
drivers/media/video/bttv-driver.c
View file @
ce4b50f2
...
...
@@ -214,7 +214,7 @@ const struct bttv_tvnorm bttv_tvnorms[] = {
we can capture, of the first and second field. */
.
vbistart
=
{
7
,
320
},
},{
.
v4l2_id
=
V4L2_STD_NTSC_M
,
.
v4l2_id
=
V4L2_STD_NTSC_M
|
V4L2_STD_NTSC_M_KR
,
.
name
=
"NTSC"
,
.
Fsc
=
28636363
,
.
swidth
=
768
,
...
...
drivers/media/video/cx25840/cx25840-core.c
View file @
ce4b50f2
...
...
@@ -220,33 +220,23 @@ static void input_change(struct i2c_client *client)
cx25840_write
(
client
,
0x808
,
0xff
);
cx25840_write
(
client
,
0x80b
,
0x10
);
}
else
if
(
std
&
V4L2_STD_NTSC
)
{
/* NTSC */
if
(
state
->
pvr150_workaround
)
{
/* Certain Hauppauge PVR150 models have a hardware bug
that causes audio to drop out. For these models the
audio standard must be set explicitly.
To be precise: it affects cards with tuner models
85, 99 and 112 (model numbers from tveeprom). */
if
(
std
==
V4L2_STD_NTSC_M_JP
)
{
/* Japan uses EIAJ audio standard */
cx25840_write
(
client
,
0x808
,
0x2f
);
}
else
{
/* Others use the BTSC audio standard */
cx25840_write
(
client
,
0x808
,
0x1f
);
}
/* South Korea uses the A2-M (aka Zweiton M) audio
standard, and should set 0x808 to 0x3f, but I don't
know how to detect this. */
}
else
if
(
std
==
V4L2_STD_NTSC_M_JP
)
{
/* Certain Hauppauge PVR150 models have a hardware bug
that causes audio to drop out. For these models the
audio standard must be set explicitly.
To be precise: it affects cards with tuner models
85, 99 and 112 (model numbers from tveeprom). */
int
hw_fix
=
state
->
pvr150_workaround
;
if
(
std
==
V4L2_STD_NTSC_M_JP
)
{
/* Japan uses EIAJ audio standard */
cx25840_write
(
client
,
0x808
,
0xf7
);
cx25840_write
(
client
,
0x808
,
hw_fix
?
0x2f
:
0xf7
);
}
else
if
(
std
==
V4L2_STD_NTSC_M_KR
)
{
/* South Korea uses A2 audio standard */
cx25840_write
(
client
,
0x808
,
hw_fix
?
0x3f
:
0xf8
);
}
else
{
/* Others use the BTSC audio standard */
cx25840_write
(
client
,
0x808
,
0xf6
);
cx25840_write
(
client
,
0x808
,
hw_fix
?
0x1f
:
0xf6
);
}
/* South Korea uses the A2-M (aka Zweiton M) audio standard,
and should set 0x808 to 0xf8, but I don't know how to
detect this. */
cx25840_write
(
client
,
0x80b
,
0x00
);
}
...
...
@@ -330,17 +320,17 @@ static int set_v4lstd(struct i2c_client *client, v4l2_std_id std)
u8
fmt
=
0
;
/* zero is autodetect */
/* First tests should be against specific std */
if
(
std
&
V4L2_STD_NTSC_M_JP
)
{
if
(
std
==
V4L2_STD_NTSC_M_JP
)
{
fmt
=
0x2
;
}
else
if
(
std
&
V4L2_STD_NTSC_443
)
{
}
else
if
(
std
==
V4L2_STD_NTSC_443
)
{
fmt
=
0x3
;
}
else
if
(
std
&
V4L2_STD_PAL_M
)
{
}
else
if
(
std
==
V4L2_STD_PAL_M
)
{
fmt
=
0x5
;
}
else
if
(
std
&
V4L2_STD_PAL_N
)
{
}
else
if
(
std
==
V4L2_STD_PAL_N
)
{
fmt
=
0x6
;
}
else
if
(
std
&
V4L2_STD_PAL_Nc
)
{
}
else
if
(
std
==
V4L2_STD_PAL_Nc
)
{
fmt
=
0x7
;
}
else
if
(
std
&
V4L2_STD_PAL_60
)
{
}
else
if
(
std
==
V4L2_STD_PAL_60
)
{
fmt
=
0x8
;
}
else
{
/* Then, test against generic ones */
...
...
@@ -369,7 +359,7 @@ v4l2_std_id cx25840_get_v4lstd(struct i2c_client * client)
}
switch
(
fmt
)
{
case
0x1
:
return
V4L2_STD_NTSC_M
;
case
0x1
:
return
V4L2_STD_NTSC_M
|
V4L2_STD_NTSC_M_KR
;
case
0x2
:
return
V4L2_STD_NTSC_M_JP
;
case
0x3
:
return
V4L2_STD_NTSC_443
;
case
0x4
:
return
V4L2_STD_PAL
;
...
...
drivers/media/video/cx88/Kconfig
View file @
ce4b50f2
...
...
@@ -32,6 +32,7 @@ config VIDEO_CX88_DVB
config VIDEO_CX88_ALSA
tristate "ALSA DMA audio support"
depends on VIDEO_CX88 && SND && EXPERIMENTAL
select SND_PCM
---help---
This is a video4linux driver for direct (DMA) audio on
Conexant 2388x based TV cards.
...
...
@@ -48,6 +49,7 @@ config VIDEO_CX88_DVB_ALL_FRONTENDS
default y
depends on VIDEO_CX88_DVB
select DVB_MT352
select VIDEO_CX88_VP3054
select DVB_OR51132
select DVB_CX22702
select DVB_LGDT330X
...
...
@@ -69,6 +71,16 @@ config VIDEO_CX88_DVB_MT352
This adds DVB-T support for cards based on the
Connexant 2388x chip and the MT352 demodulator.
config VIDEO_CX88_VP3054
tristate "VP-3054 Secondary I2C Bus Support"
default m
depends on DVB_MT352
---help---
This adds DVB-T support for cards based on the
Connexant 2388x chip and the MT352 demodulator,
which also require support for the VP-3054
Secondary I2C bus, such at DNTV Live! DVB-T Pro.
config VIDEO_CX88_DVB_OR51132
bool "OR51132 ATSC Support"
default y
...
...
drivers/media/video/cx88/Makefile
View file @
ce4b50f2
...
...
@@ -4,8 +4,9 @@ cx8800-objs := cx88-video.o cx88-vbi.o
cx8802-objs
:=
cx88-mpeg.o
obj-$(CONFIG_VIDEO_CX88)
+=
cx88xx.o cx8800.o cx8802.o cx88-blackbird.o
obj-$(CONFIG_VIDEO_CX88_DVB)
+=
cx88-dvb.o
cx88-vp3054-i2c.o
obj-$(CONFIG_VIDEO_CX88_DVB)
+=
cx88-dvb.o
obj-$(CONFIG_VIDEO_CX88_ALSA)
+=
cx88-alsa.o
obj-$(CONFIG_VIDEO_CX88_VP3054)
+=
cx88-vp3054-i2c.o
EXTRA_CFLAGS
+=
-I
$(src)
/..
EXTRA_CFLAGS
+=
-I
$(srctree)
/drivers/media/dvb/dvb-core
...
...
@@ -18,6 +19,6 @@ extra-cflags-$(CONFIG_DVB_LGDT330X) += -DHAVE_LGDT330X=1
extra-cflags-$(CONFIG_DVB_MT352)
+=
-DHAVE_MT352
=
1
extra-cflags-$(CONFIG_DVB_NXT200X)
+=
-DHAVE_NXT200X
=
1
extra-cflags-$(CONFIG_DVB_CX24123)
+=
-DHAVE_CX24123
=
1
extra-cflags-$(CONFIG_VIDEO_CX88_
DVB
)
+=
-DHAVE_VP3054_I2C
=
1
extra-cflags-$(CONFIG_VIDEO_CX88_
VP3054
)
+=
-DHAVE_VP3054_I2C
=
1
EXTRA_CFLAGS
+=
$
(
extra-cflags-y
)
$
(
extra-cflags-m
)
drivers/media/video/cx88/cx88-alsa.c
View file @
ce4b50f2
...
...
@@ -128,7 +128,7 @@ MODULE_PARM_DESC(debug,"enable debug messages");
* BOARD Specific: Sets audio DMA
*/
int
_cx88_start_audio_dma
(
snd_cx88_card_t
*
chip
)
static
int
_cx88_start_audio_dma
(
snd_cx88_card_t
*
chip
)
{
struct
cx88_buffer
*
buf
=
chip
->
buf
;
struct
cx88_core
*
core
=
chip
->
core
;
...
...
@@ -173,7 +173,7 @@ int _cx88_start_audio_dma(snd_cx88_card_t *chip)
/*
* BOARD Specific: Resets audio DMA
*/
int
_cx88_stop_audio_dma
(
snd_cx88_card_t
*
chip
)
static
int
_cx88_stop_audio_dma
(
snd_cx88_card_t
*
chip
)
{
struct
cx88_core
*
core
=
chip
->
core
;
dprintk
(
1
,
"Stopping audio DMA
\n
"
);
...
...
@@ -613,7 +613,7 @@ static snd_kcontrol_new_t snd_cx88_capture_volume = {
* Only boards with eeprom and byte 1 at eeprom=1 have it
*/
struct
pci_device_id
cx88_audio_pci_tbl
[]
=
{
st
atic
st
ruct
pci_device_id
cx88_audio_pci_tbl
[]
=
{
{
0x14f1
,
0x8801
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
0x14f1
,
0x8811
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
0
,
}
...
...
drivers/media/video/cx88/cx88-cards.c
View file @
ce4b50f2
...
...
@@ -1244,6 +1244,11 @@ struct cx88_subid cx88_subids[] = {
.
subvendor
=
0x18ac
,
.
subdevice
=
0xdb50
,
.
card
=
CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL
,
},{
.
subvendor
=
0x18ac
,
.
subdevice
=
0xdb54
,
.
card
=
CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL
,
/* Re-branded DViCO: DigitalNow DVB-T Dual */
},{
.
subvendor
=
0x18ac
,
.
subdevice
=
0xdb11
,
...
...
@@ -1293,6 +1298,7 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
switch
(
tv
.
model
)
{
case
28552
:
/* WinTV-PVR 'Roslyn' (No IR) */
case
34519
:
/* WinTV-PCI-FM */
case
90002
:
/* Nova-T-PCI (9002) */
case
92001
:
/* Nova-S-Plus (Video and IR) */
case
92002
:
/* Nova-S-Plus (Video and IR) */
...
...
drivers/media/video/cx88/cx88-core.c
View file @
ce4b50f2
...
...
@@ -787,12 +787,14 @@ static int set_pll(struct cx88_core *core, int prescale, u32 ofreq)
int
cx88_start_audio_dma
(
struct
cx88_core
*
core
)
{
/* constant 128 made buzz in analog Nicam-stereo for bigger fifo_size */
int
bpl
=
cx88_sram_channels
[
SRAM_CH25
].
fifo_size
/
4
;
/* setup fifo + format */
cx88_sram_channel_setup
(
core
,
&
cx88_sram_channels
[
SRAM_CH25
],
128
,
0
);
cx88_sram_channel_setup
(
core
,
&
cx88_sram_channels
[
SRAM_CH26
],
128
,
0
);
cx88_sram_channel_setup
(
core
,
&
cx88_sram_channels
[
SRAM_CH25
],
bpl
,
0
);
cx88_sram_channel_setup
(
core
,
&
cx88_sram_channels
[
SRAM_CH26
],
bpl
,
0
);
cx_write
(
MO_AUDD_LNGTH
,
128
);
/* fifo bpl size */
cx_write
(
MO_AUDR_LNGTH
,
128
);
/* fifo bpl size */
cx_write
(
MO_AUDD_LNGTH
,
bpl
);
/* fifo bpl size */
cx_write
(
MO_AUDR_LNGTH
,
bpl
);
/* fifo bpl size */
/* start dma */
cx_write
(
MO_AUD_DMACNTRL
,
0x0003
);
/* Up and Down fifo enable */
...
...
drivers/media/video/cx88/cx88-input.c
View file @
ce4b50f2
...
...
@@ -482,6 +482,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
switch
(
core
->
board
)
{
case
CX88_BOARD_DNTV_LIVE_DVB_T
:
case
CX88_BOARD_KWORLD_DVB_T
:
case
CX88_BOARD_KWORLD_DVB_T_CX22702
:
ir_codes
=
ir_codes_dntv_live_dvb_t
;
ir
->
gpio_addr
=
MO_GP1_IO
;
ir
->
mask_keycode
=
0x1f
;
...
...
drivers/media/video/em28xx/em28xx-core.c
View file @
ce4b50f2
...
...
@@ -139,6 +139,9 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
{
int
ret
,
byte
;
if
(
dev
->
state
&
DEV_DISCONNECTED
)
return
(
-
ENODEV
);
em28xx_regdbg
(
"req=%02x, reg=%02x "
,
req
,
reg
);
ret
=
usb_control_msg
(
dev
->
udev
,
usb_rcvctrlpipe
(
dev
->
udev
,
0
),
req
,
...
...
@@ -165,6 +168,9 @@ int em28xx_read_reg_req(struct em28xx *dev, u8 req, u16 reg)
u8
val
;
int
ret
;
if
(
dev
->
state
&
DEV_DISCONNECTED
)
return
(
-
ENODEV
);
em28xx_regdbg
(
"req=%02x, reg=%02x:"
,
req
,
reg
);
ret
=
usb_control_msg
(
dev
->
udev
,
usb_rcvctrlpipe
(
dev
->
udev
,
0
),
req
,
...
...
@@ -195,7 +201,12 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
int
ret
;
/*usb_control_msg seems to expect a kmalloced buffer */
unsigned
char
*
bufs
=
kmalloc
(
len
,
GFP_KERNEL
);
unsigned
char
*
bufs
;
if
(
dev
->
state
&
DEV_DISCONNECTED
)
return
(
-
ENODEV
);
bufs
=
kmalloc
(
len
,
GFP_KERNEL
);
em28xx_regdbg
(
"req=%02x reg=%02x:"
,
req
,
reg
);
...
...
@@ -212,7 +223,7 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
ret
=
usb_control_msg
(
dev
->
udev
,
usb_sndctrlpipe
(
dev
->
udev
,
0
),
req
,
USB_DIR_OUT
|
USB_TYPE_VENDOR
|
USB_RECIP_DEVICE
,
0x0000
,
reg
,
bufs
,
len
,
HZ
);
m
delay
(
5
);
/* FIXME: magic number */
m
sleep
(
5
);
/* FIXME: magic number */
kfree
(
bufs
);
return
ret
;
}
...
...
@@ -253,7 +264,7 @@ int em28xx_write_ac97(struct em28xx *dev, u8 reg, u8 * val)
if
((
ret
=
em28xx_read_reg
(
dev
,
AC97BUSY_REG
))
<
0
)
return
ret
;
else
if
(((
u8
)
ret
)
&
0x01
)
{
em28xx_warn
(
"AC97 command still being exec
t
uted: not handled properly!
\n
"
);
em28xx_warn
(
"AC97 command still being executed: not handled properly!
\n
"
);
}
return
0
;
}
...
...
drivers/media/video/em28xx/em28xx-i2c.c
View file @
ce4b50f2
...
...
@@ -78,7 +78,7 @@ static int em2800_i2c_send_max4(struct em28xx *dev, unsigned char addr,
ret
=
dev
->
em28xx_read_reg
(
dev
,
0x05
);
if
(
ret
==
0x80
+
len
-
1
)
return
len
;
m
delay
(
5
);
m
sleep
(
5
);
}
em28xx_warn
(
"i2c write timed out
\n
"
);
return
-
EIO
;
...
...
@@ -138,7 +138,7 @@ static int em2800_i2c_check_for_device(struct em28xx *dev, unsigned char addr)
return
-
ENODEV
;
else
if
(
msg
==
0x84
)
return
0
;
m
delay
(
5
);
m
sleep
(
5
);
}
return
-
ENODEV
;
}
...
...
@@ -278,9 +278,9 @@ static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap,
msgs
[
i
].
buf
,
msgs
[
i
].
len
,
i
==
num
-
1
);
if
(
rc
<
0
)
goto
err
;
}
if
(
rc
<
0
)
goto
err
;
if
(
i2c_debug
>=
2
)
printk
(
"
\n
"
);
}
...
...
drivers/media/video/em28xx/em28xx-video.c
View file @
ce4b50f2
...
...
@@ -6,6 +6,9 @@
Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Sascha Sommer <saschasommer@freenet.de>
Some parts based on SN9C10x PC Camera Controllers GPL driver made
by Luca Risolia <luca.risolia@studio.unibo.it>
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
...
...
drivers/media/video/saa7134/saa7134-cards.c
View file @
ce4b50f2
...
...
@@ -136,7 +136,7 @@ struct saa7134_board saa7134_boards[] = {
},
[
SAA7134_BOARD_FLYVIDEO2000
]
=
{
/* "TC Wan" <tcwan@cs.usm.my> */
.
name
=
"LifeView FlyVIDEO2000"
,
.
name
=
"LifeView
/Typhoon
FlyVIDEO2000"
,
.
audio_clock
=
0x00200000
,
.
tuner_type
=
TUNER_LG_PAL_NEW_TAPC
,
.
radio_type
=
UNSET
,
...
...
@@ -1884,44 +1884,38 @@ struct saa7134_board saa7134_boards[] = {
.
gpio
=
0x000
,
},
},
[
SAA7134_BOARD_
THYPHOON_
DVBT_DUO_CARDBUS
]
=
{
.
name
=
"
Typhoon DVB-T Duo Digital/Analog
Cardbus"
,
[
SAA7134_BOARD_
FLY
DVBT_DUO_CARDBUS
]
=
{
.
name
=
"
LifeView/Typhoon FlyDVB-T Duo
Cardbus"
,
.
audio_clock
=
0x00200000
,
.
tuner_type
=
TUNER_PHILIPS_TDA8290
,
.
radio_type
=
UNSET
,
.
tuner_addr
=
ADDR_UNSET
,
.
radio_addr
=
ADDR_UNSET
,
.
mpeg
=
SAA7134_MPEG_DVB
,
/* .gpiomask = 0xe000, */
.
gpiomask
=
0x00200000
,
.
inputs
=
{{
.
name
=
name_tv
,
.
vmux
=
1
,
.
amux
=
TV
,
/* .gpio = 0x0000,
*/
.
gpio
=
0x200000
,
/* GPIO21=High for TV input
*/
.
tv
=
1
,
},{
.
name
=
name_svideo
,
/* S-Video signal on S-Video input */
.
vmux
=
8
,
.
amux
=
LINE2
,
},{
.
name
=
name_comp1
,
/* Composite signal on S-Video input */
.
vmux
=
0
,
.
amux
=
LINE2
,
/* .gpio = 0x4000, */
},{
.
name
=
name_comp2
,
/* Composite input */
.
vmux
=
3
,
.
amux
=
LINE2
,
/* .gpio = 0x4000, */
},{
.
name
=
name_svideo
,
/* S-Video signal on S-Video input */
.
vmux
=
8
,
.
amux
=
LINE2
,
/* .gpio = 0x4000, */
}},
.
radio
=
{
.
name
=
name_radio
,
.
amux
=
LINE2
,
},
.
mute
=
{
.
name
=
name_mute
,
.
amux
=
LINE1
,
.
amux
=
TV
,
.
gpio
=
0x000000
,
/* GPIO21=Low for FM radio antenna */
},
},
[
SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII
]
=
{
...
...
@@ -2699,6 +2693,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
.
subvendor
=
0x5168
,
.
subdevice
=
0x0138
,
.
driver_data
=
SAA7134_BOARD_FLYVIDEO2000
,
},{
.
vendor
=
PCI_VENDOR_ID_PHILIPS
,
.
device
=
PCI_DEVICE_ID_PHILIPS_SAA7130
,
.
subvendor
=
0x4e42
,
/* Typhoon */
.
subdevice
=
0x0138
,
/* LifeView FlyTV Prime30 OEM */
.
driver_data
=
SAA7134_BOARD_FLYVIDEO2000
,
},{
.
vendor
=
PCI_VENDOR_ID_PHILIPS
,
.
device
=
PCI_DEVICE_ID_PHILIPS_SAA7133
,
...
...
@@ -2935,7 +2935,7 @@ struct pci_device_id saa7134_pci_tbl[] = {
.
device
=
PCI_DEVICE_ID_PHILIPS_SAA7133
,
.
subvendor
=
0x5168
,
.
subdevice
=
0x0502
,
/* Cardbus version */
.
driver_data
=
SAA7134_BOARD_FLYDVBT
DUO
,
.
driver_data
=
SAA7134_BOARD_FLYDVBT
_DUO_CARDBUS
,
},{
.
vendor
=
PCI_VENDOR_ID_PHILIPS
,
.
device
=
PCI_DEVICE_ID_PHILIPS_SAA7133
,
...
...
@@ -2980,12 +2980,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
.
subdevice
=
0x1370
,
/* cardbus version */
.
driver_data
=
SAA7134_BOARD_ADS_INSTANT_TV
,
},{
/* Typhoon DVB-T Duo Digital/Analog Cardbus */
},{
.
vendor
=
PCI_VENDOR_ID_PHILIPS
,
.
device
=
PCI_DEVICE_ID_PHILIPS_SAA7133
,
.
subvendor
=
0x4e42
,
.
subdevice
=
0x0502
,
.
driver_data
=
SAA7134_BOARD_
THYPHOON_
DVBT_DUO_CARDBUS
,
.
subvendor
=
0x4e42
,
/* Typhoon */
.
subdevice
=
0x0502
,
/* LifeView LR502 OEM */
.
driver_data
=
SAA7134_BOARD_
FLY
DVBT_DUO_CARDBUS
,
},{
.
vendor
=
PCI_VENDOR_ID_PHILIPS
,
.
device
=
PCI_DEVICE_ID_PHILIPS_SAA7133
,
...
...
@@ -3206,8 +3206,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
saa_andorl
(
SAA7134_GPIO_GPMODE0
>>
2
,
0x00040000
,
0x00040000
);
saa_andorl
(
SAA7134_GPIO_GPSTATUS0
>>
2
,
0x00040000
,
0x00000004
);
break
;
case
SAA7134_BOARD_FLYDVBTDUO
:
case
SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS
:
case
SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
:
/* turn the fan on */
saa_writeb
(
SAA7134_GPIO_GPMODE3
,
0x08
);
saa_writeb
(
SAA7134_GPIO_GPSTATUS3
,
0x06
);
...
...
drivers/media/video/saa7134/saa7134-dvb.c
View file @
ce4b50f2
...
...
@@ -861,7 +861,7 @@ static int dvb_init(struct saa7134_dev *dev)
dev
->
dvb
.
frontend
=
tda10046_attach
(
&
tda827x_lifeview_config
,
&
dev
->
i2c_adap
);
break
;
case
SAA7134_BOARD_
THYPHOON_
DVBT_DUO_CARDBUS
:
case
SAA7134_BOARD_
FLY
DVBT_DUO_CARDBUS
:
dev
->
dvb
.
frontend
=
tda10046_attach
(
&
tda827x_lifeview_config
,
&
dev
->
i2c_adap
);
break
;
...
...
drivers/media/video/saa7134/saa7134.h
View file @
ce4b50f2
...
...
@@ -185,7 +185,7 @@ struct saa7134_format {
#define SAA7134_BOARD_AVERMEDIA_GO_007_FM 57
#define SAA7134_BOARD_ADS_INSTANT_TV 58
#define SAA7134_BOARD_KWORLD_VSTREAM_XPERT 59
#define SAA7134_BOARD_
THYPHOON_
DVBT_DUO_CARDBUS 60
#define SAA7134_BOARD_
FLY
DVBT_DUO_CARDBUS 60
#define SAA7134_BOARD_PHILIPS_TOUGH 61
#define SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII 62
#define SAA7134_BOARD_KWORLD_XPERT 63
...
...
drivers/media/video/stradis.c
View file @
ce4b50f2
...
...
@@ -2012,7 +2012,6 @@ static int __devinit init_saa7146(struct pci_dev *pdev)
{
struct
saa7146
*
saa
=
pci_get_drvdata
(
pdev
);
memset
(
saa
,
0
,
sizeof
(
*
saa
));
saa
->
user
=
0
;
/* reset the saa7146 */
saawrite
(
0xffff0000
,
SAA7146_MC1
);
...
...
@@ -2062,16 +2061,16 @@ static int __devinit init_saa7146(struct pci_dev *pdev)
}
if
(
saa
->
audbuf
==
NULL
&&
(
saa
->
audbuf
=
vmalloc
(
65536
))
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"%d: malloc failed
\n
"
,
saa
->
nr
);
goto
err
vid
;
goto
err
free
;
}
if
(
saa
->
osdbuf
==
NULL
&&
(
saa
->
osdbuf
=
vmalloc
(
131072
))
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"%d: malloc failed
\n
"
,
saa
->
nr
);
goto
err
aud
;
goto
err
free
;
}
/* allocate 81920 byte buffer for clipping */
if
((
saa
->
dmavid2
=
kzalloc
(
VIDEO_CLIPMAP_SIZE
,
GFP_KERNEL
))
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"%d: clip kmalloc failed
\n
"
,
saa
->
nr
);
goto
err
osd
;
goto
err
free
;
}
/* setup clipping registers */
saawrite
(
virt_to_bus
(
saa
->
dmavid2
),
SAA7146_BASE_EVEN2
);
...
...
@@ -2085,15 +2084,11 @@ static int __devinit init_saa7146(struct pci_dev *pdev)
I2CBusScan
(
saa
);
return
0
;
err
osd
:
err
free
:
vfree
(
saa
->
osdbuf
);
saa
->
osdbuf
=
NULL
;
erraud:
vfree
(
saa
->
audbuf
);
saa
->
audbuf
=
NULL
;
errvid:
vfree
(
saa
->
vidbuf
);
saa
->
vidbuf
=
NULL
;
saa
->
audbuf
=
saa
->
osdbuf
=
saa
->
vidbuf
=
NULL
;
err:
return
-
ENOMEM
;
}
...
...
drivers/media/video/tda9887.c
View file @
ce4b50f2
...
...
@@ -231,7 +231,7 @@ static struct tvnorm tvnorms[] = {
cAudioIF_6_5
|
cVideoIF_38_90
),
},{
.
std
=
V4L2_STD_NTSC_M
,
.
std
=
V4L2_STD_NTSC_M
|
V4L2_STD_NTSC_M_KR
,
.
name
=
"NTSC-M"
,
.
b
=
(
cNegativeFmTV
|
cQSS
),
...
...
@@ -619,6 +619,11 @@ static int tda9887_fixup_std(struct tda9887 *t)
tda9887_dbg
(
"insmod fixup: NTSC => NTSC_M_JP
\n
"
);
t
->
std
=
V4L2_STD_NTSC_M_JP
;
break
;
case
'k'
:
case
'K'
:
tda9887_dbg
(
"insmod fixup: NTSC => NTSC_M_KR
\n
"
);
t
->
std
=
V4L2_STD_NTSC_M_KR
;
break
;
case
'-'
:
/* default parameter, do nothing */
break
;
...
...
@@ -876,7 +881,7 @@ static int tda9887_resume(struct device * dev)
/* ----------------------------------------------------------------------- */
static
struct
i2c_driver
driver
=
{
.
id
=
-
1
,
/* FIXME */
.
id
=
I2C_DRIVERID_TDA9887
,
.
attach_adapter
=
tda9887_probe
,
.
detach_client
=
tda9887_detach
,
.
command
=
tda9887_command
,
...
...
drivers/media/video/tuner-core.c
View file @
ce4b50f2
...
...
@@ -216,6 +216,7 @@ static void set_type(struct i2c_client *c, unsigned int type,
buffer
[
3
]
=
0xa4
;
i2c_master_send
(
c
,
buffer
,
4
);
default_tuner_init
(
c
);
break
;
default:
default_tuner_init
(
c
);
break
;
...
...
@@ -365,6 +366,11 @@ static int tuner_fixup_std(struct tuner *t)
tuner_dbg
(
"insmod fixup: NTSC => NTSC_M_JP
\n
"
);
t
->
std
=
V4L2_STD_NTSC_M_JP
;
break
;
case
'k'
:
case
'K'
:
tuner_dbg
(
"insmod fixup: NTSC => NTSC_M_KR
\n
"
);
t
->
std
=
V4L2_STD_NTSC_M_KR
;
break
;
case
'-'
:
/* default parameter, do nothing */
break
;
...
...
@@ -448,7 +454,7 @@ static int tuner_attach(struct i2c_adapter *adap, int addr, int kind)
printk
(
"%02x "
,
buffer
[
i
]);
printk
(
"
\n
"
);
}
/*
TEA5767 autodetection code - only for addr = 0xc0
*/
/*
autodetection code based on the i2c addr
*/
if
(
!
no_autodetect
)
{
switch
(
addr
)
{
case
0x42
:
...
...
drivers/media/video/tvaudio.c
View file @
ce4b50f2
...
...
@@ -390,6 +390,14 @@ static void tda9840_setmode(struct CHIPSTATE *chip, int mode)
chip_write
(
chip
,
TDA9840_SW
,
t
);
}
static
int
tda9840_checkit
(
struct
CHIPSTATE
*
chip
)
{
int
rc
;
rc
=
chip_read
(
chip
);
/* lower 5 bits should be 0 */
return
((
rc
&
0x1f
)
==
0
)
?
1
:
0
;
}
/* ---------------------------------------------------------------------- */
/* audio chip descriptions - defines+functions for tda985x */
...
...
@@ -1264,6 +1272,7 @@ static struct CHIPDESC chiplist[] = {
.
addr_hi
=
I2C_TDA9840
>>
1
,
.
registers
=
5
,
.
checkit
=
tda9840_checkit
,
.
getmode
=
tda9840_getmode
,
.
setmode
=
tda9840_setmode
,
.
checkmode
=
generic_checkmode
,
...
...
drivers/media/video/tvp5150.c
View file @
ce4b50f2
...
...
@@ -746,24 +746,27 @@ static int tvp5150_set_std(struct i2c_client *c, v4l2_std_id std)
static
inline
void
tvp5150_reset
(
struct
i2c_client
*
c
)
{
u8
type
,
ver_656
,
msb_id
,
lsb_id
,
msb_rom
,
lsb_rom
;
u8
msb_id
,
lsb_id
,
msb_rom
,
lsb_rom
;
struct
tvp5150
*
decoder
=
i2c_get_clientdata
(
c
);
type
=
tvp5150_read
(
c
,
TVP5150_AUTOSW_MSK
);
msb_id
=
tvp5150_read
(
c
,
TVP5150_MSB_DEV_ID
);
lsb_id
=
tvp5150_read
(
c
,
TVP5150_LSB_DEV_ID
);
msb_rom
=
tvp5150_read
(
c
,
TVP5150_ROM_MAJOR_VER
);
lsb_rom
=
tvp5150_read
(
c
,
TVP5150_ROM_MINOR_VER
);
if
(
type
==
0xdc
)
{
ver_656
=
tvp5150_read
(
c
,
TVP5150_REV_SELECT
);
tvp5150_info
(
"tvp%02x%02xam1 detected 656 version is %d.
\n
"
,
msb_id
,
lsb_id
,
ver_656
);
}
else
if
(
type
==
0xfc
)
{
tvp5150_
info
(
"tvp%02x%02xa detected.
\n
"
,
msb_id
,
lsb_id
);
if
(
(
msb_rom
==
4
)
&&
(
lsb_rom
==
0
))
{
/* Is TVP5150AM1 */
tvp5150_info
(
"tvp%02x%02xam1 detected.
\n
"
,
msb_id
,
lsb_id
);
/* ITU-T BT.656.4 timing */
tvp5150_
write
(
c
,
TVP5150_REV_SELECT
,
0
);
}
else
{
tvp5150_info
(
"unknown tvp%02x%02x chip detected(%d).
\n
"
,
msb_id
,
lsb_id
,
type
);
if
((
msb_rom
==
3
)
||
(
lsb_rom
==
0x21
))
{
/* Is TVP5150A */
tvp5150_info
(
"tvp%02x%02xa detected.
\n
"
,
msb_id
,
lsb_id
);
}
else
{
tvp5150_info
(
"*** unknown tvp%02x%02x chip detected.
\n
"
,
msb_id
,
lsb_id
);
tvp5150_info
(
"*** Rom ver is %d.%d
\n
"
,
msb_rom
,
lsb_rom
);
}
}
tvp5150_info
(
"Rom ver is %d.%d
\n
"
,
msb_rom
,
lsb_rom
);
/* Initializes TVP5150 to its default values */
tvp5150_write_inittab
(
c
,
tvp5150_init_default
);
...
...
@@ -893,6 +896,17 @@ static int tvp5150_command(struct i2c_client *c,
}
case
DECODER_GET_STATUS
:
{
int
*
iarg
=
arg
;
int
status
;
int
res
=
0
;
status
=
tvp5150_read
(
c
,
0x88
);
if
(
status
&
0x08
){
res
|=
DECODER_STATUS_COLOR
;
}
if
(
status
&
0x04
&&
status
&
0x02
){
res
|=
DECODER_STATUS_GOOD
;
}
*
iarg
=
res
;
break
;
}
...
...
include/linux/videodev2.h
View file @
ce4b50f2
...
...
@@ -629,6 +629,7 @@ typedef __u64 v4l2_std_id;
#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000)
#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000)
#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000)
#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000)
#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
...
...
@@ -661,7 +662,8 @@ typedef __u64 v4l2_std_id;
V4L2_STD_PAL_H |\
V4L2_STD_PAL_I)
#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
V4L2_STD_NTSC_M_JP)
V4L2_STD_NTSC_M_JP |\
V4L2_STD_NTSC_M_KR)
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
V4L2_STD_SECAM_K |\
V4L2_STD_SECAM_K1)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment