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
nexedi
linux
Commits
71029f06
Commit
71029f06
authored
Dec 01, 2002
by
Art Haas
Committed by
Linus Torvalds
Dec 01, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] C99 initializers for drivers/media/video
parent
5331dd5f
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1678 additions
and
1679 deletions
+1678
-1679
drivers/media/video/adv7175.c
drivers/media/video/adv7175.c
+18
-18
drivers/media/video/bttv-cards.c
drivers/media/video/bttv-cards.c
+1071
-1071
drivers/media/video/bttv-driver.c
drivers/media/video/bttv-driver.c
+254
-254
drivers/media/video/bttv-if.c
drivers/media/video/bttv-if.c
+15
-15
drivers/media/video/bttv-vbi.c
drivers/media/video/bttv-vbi.c
+4
-4
drivers/media/video/bw-qcam.c
drivers/media/video/bw-qcam.c
+11
-11
drivers/media/video/c-qcam.c
drivers/media/video/c-qcam.c
+11
-11
drivers/media/video/cpia.c
drivers/media/video/cpia.c
+12
-12
drivers/media/video/cpia_usb.c
drivers/media/video/cpia_usb.c
+4
-4
drivers/media/video/msp3400.c
drivers/media/video/msp3400.c
+9
-9
drivers/media/video/planb.c
drivers/media/video/planb.c
+10
-10
drivers/media/video/pms.c
drivers/media/video/pms.c
+11
-11
drivers/media/video/saa5249.c
drivers/media/video/saa5249.c
+10
-10
drivers/media/video/stradis.c
drivers/media/video/stradis.c
+10
-10
drivers/media/video/tuner.c
drivers/media/video/tuner.c
+10
-10
drivers/media/video/tvaudio.c
drivers/media/video/tvaudio.c
+142
-142
drivers/media/video/tvmixer.c
drivers/media/video/tvmixer.c
+10
-10
drivers/media/video/video-buf.c
drivers/media/video/video-buf.c
+3
-3
drivers/media/video/videodev.c
drivers/media/video/videodev.c
+3
-3
drivers/media/video/vino.c
drivers/media/video/vino.c
+8
-8
drivers/media/video/w9966.c
drivers/media/video/w9966.c
+18
-19
drivers/media/video/zr36067.c
drivers/media/video/zr36067.c
+11
-11
drivers/media/video/zr36120.c
drivers/media/video/zr36120.c
+23
-23
No files found.
drivers/media/video/adv7175.c
View file @
71029f06
...
...
@@ -410,30 +410,30 @@ static void adv717x_dec_use(struct i2c_client *client)
/* ----------------------------------------------------------------------- */
static
struct
i2c_driver
i2c_driver_adv7175
=
{
name:
"adv7175"
,
/* name */
id:
I2C_DRIVERID_ADV717x
,
/* ID */
flags:
I2C_DF_NOTIFY
,
//I2C_ADV7175, I2C_ADV7175 + 3,
attach_adapter:
adv717x_probe
,
detach_client:
adv717x_detach
,
command:
adv717x_command
,
inc_use:
&
adv717x_inc_use
,
dec_use:
&
adv717x_dec_use
.
name
=
"adv7175"
,
/* name */
.
id
=
I2C_DRIVERID_ADV717x
,
/* ID */
.
flags
=
I2C_DF_NOTIFY
,
//I2C_ADV7175, I2C_ADV7175 + 3,
.
attach_adapter
=
adv717x_probe
,
.
detach_client
=
adv717x_detach
,
.
command
=
adv717x_command
,
.
inc_use
=
&
adv717x_inc_use
,
.
dec_use
=
&
adv717x_dec_use
};
static
struct
i2c_driver
i2c_driver_adv7176
=
{
name:
"adv7176"
,
/* name */
id:
I2C_DRIVERID_ADV717x
,
/* ID */
flags:
I2C_DF_NOTIFY
,
//I2C_ADV7176, I2C_ADV7176 + 3,
attach_adapter:
adv717x_probe
,
detach_client:
adv717x_detach
,
command:
adv717x_command
,
inc_use:
&
adv717x_inc_use
,
dec_use:
&
adv717x_dec_use
.
name
=
"adv7176"
,
/* name */
.
id
=
I2C_DRIVERID_ADV717x
,
/* ID */
.
flags
=
I2C_DF_NOTIFY
,
//I2C_ADV7176, I2C_ADV7176 + 3,
.
attach_adapter
=
adv717x_probe
,
.
detach_client
=
adv717x_detach
,
.
command
=
adv717x_command
,
.
inc_use
=
&
adv717x_inc_use
,
.
dec_use
=
&
adv717x_dec_use
};
static
struct
i2c_client
client_template
=
{
name:
"adv7175_client"
,
driver:
&
i2c_driver_adv7175
.
name
=
"adv7175_client"
,
.
driver
=
&
i2c_driver_adv7175
};
static
int
adv717x_init
(
void
)
...
...
drivers/media/video/bttv-cards.c
View file @
71029f06
...
...
@@ -208,350 +208,350 @@ static struct CARD {
struct
tvcard
bttv_tvcards
[]
=
{
{
/* ---- card 0x00 ---------------------------------- */
name:
" *** UNKNOWN/GENERIC *** "
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
muxsel:
{
2
,
3
,
1
,
0
},
tuner_type:
-
1
,
},{
name:
"MIRO PCTV"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
2
,
0
,
0
,
0
,
10
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"Hauppauge (bt848)"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
7
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
1
,
2
,
3
,
4
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"STB, Gateway P/N 6000699 (bt848)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
7
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
4
,
0
,
2
,
3
,
1
},
no_msp34xx:
1
,
needs_tvaudio:
1
,
tuner_type:
TUNER_PHILIPS_NTSC
,
pll:
PLL_28
,
has_radio:
1
,
.
name
=
" *** UNKNOWN/GENERIC *** "
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
tuner_type
=
-
1
,
},{
.
name
=
"MIRO PCTV"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
2
,
0
,
0
,
0
,
10
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Hauppauge (bt848)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
1
,
2
,
3
,
4
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"STB, Gateway P/N 6000699 (bt848)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
4
,
0
,
2
,
3
,
1
},
.
no_msp34xx
=
1
,
.
needs_tvaudio
=
1
,
.
tuner_type
=
TUNER_PHILIPS_NTSC
,
.
pll
=
PLL_28
,
.
has_radio
=
1
,
},{
/* ---- card 0x04 ---------------------------------- */
name:
"Intel Create and Share PCI/ Smart Video Recorder III"
,
video_inputs:
4
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
2
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
},
needs_tvaudio:
0
,
tuner_type:
4
,
},{
name:
"Diamond DTV2000"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
3
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
0
,
1
,
0
,
1
,
3
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"AVerMedia TVPhone"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
3
,
muxsel:
{
2
,
3
,
1
,
1
},
gpiomask:
0x0f
,
audiomux:
{
0x0c
,
0x04
,
0x08
,
0x04
,
0
},
.
name
=
"Intel Create and Share PCI/ Smart Video Recorder III"
,
.
video_inputs
=
4
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
2
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
0
,
.
tuner_type
=
4
,
},{
.
name
=
"Diamond DTV2000"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
3
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
0
,
1
,
0
,
1
,
3
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"AVerMedia TVPhone"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
3
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
gpiomask
=
0x0f
,
.
audiomux
=
{
0x0c
,
0x04
,
0x08
,
0x04
,
0
},
/* 0x04 for some cards ?? */
needs_tvaudio:
1
,
tuner_type:
-
1
,
audio_hook:
avermedia_tvphone_audio
,
},{
name:
"MATRIX-Vision MV-Delta"
,
video_inputs:
5
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
3
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
0
,
0
},
audiomux:
{
0
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
.
audio_hook
=
avermedia_tvphone_audio
,
},{
.
name
=
"MATRIX-Vision MV-Delta"
,
.
video_inputs
=
5
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
3
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
0
,
0
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x08 ---------------------------------- */
name:
"Lifeview FlyVideo II (Bt848) LR26"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xc00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0xc00
,
0x800
,
0x400
,
0xc00
,
0
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"IMS/IXmicro TurboTV"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
3
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
1
,
1
,
2
,
3
,
0
},
needs_tvaudio:
0
,
pll:
PLL_28
,
tuner_type:
TUNER_TEMIC_PAL
,
},{
name:
"Hauppauge (bt878)"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x0f
,
/* old: 7 */
muxsel:
{
2
,
0
,
1
,
1
},
audiomux:
{
0
,
1
,
2
,
3
,
4
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"MIRO PCTV pro"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x3014f
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x20001
,
0x10001
,
0
,
0
,
10
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
.
name
=
"Lifeview FlyVideo II (Bt848) LR26"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xc00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0xc00
,
0x800
,
0x400
,
0xc00
,
0
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"IMS/IXmicro TurboTV"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
3
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
1
,
1
,
2
,
3
,
0
},
.
needs_tvaudio
=
0
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_TEMIC_PAL
,
},{
.
name
=
"Hauppauge (bt878)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x0f
,
/* old: 7 */
.
muxsel
=
{
2
,
0
,
1
,
1
},
.
audiomux
=
{
0
,
1
,
2
,
3
,
4
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"MIRO PCTV pro"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x3014f
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x20001
,
0x10001
,
0
,
0
,
10
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x0c ---------------------------------- */
name:
"ADS Technologies Channel Surfer TV (bt848)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
13
,
14
,
11
,
7
,
0
,
0
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"AVerMedia TVCapture 98"
,
video_inputs:
3
,
audio_inputs:
4
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
13
,
14
,
11
,
7
,
0
,
0
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL
,
},{
name:
"Aimslab Video Highway Xtreme (VHX)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
7
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
2
,
1
,
3
,
4
},
/* old: { 0, 1, 2, 3, 4} */
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Zoltrix TV-Max"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0
,
1
,
0
,
10
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
.
name
=
"ADS Technologies Channel Surfer TV (bt848)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
13
,
14
,
11
,
7
,
0
,
0
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"AVerMedia TVCapture 98"
,
.
video_inputs
=
3
,
.
audio_inputs
=
4
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
13
,
14
,
11
,
7
,
0
,
0
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
},{
.
name
=
"Aimslab Video Highway Xtreme (VHX)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
2
,
1
,
3
,
4
},
/* old: { 0, 1, 2, 3, 4} */
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Zoltrix TV-Max"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0
,
1
,
0
,
10
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x10 ---------------------------------- */
name:
"Prolink Pixelview PlayTV (bt878)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x01fe00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x01c000
,
0
,
0x018000
,
0x014000
,
0x002000
,
0
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Leadtek WinView 601"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x8300f8
,
muxsel:
{
2
,
3
,
1
,
1
,
0
},
audiomux:
{
0x4fa007
,
0xcfa007
,
0xcfa007
,
0xcfa007
,
0xcfa007
,
0xcfa007
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
audio_hook:
winview_audio
,
has_radio:
1
,
},{
name:
"AVEC Intercapture"
,
video_inputs:
3
,
audio_inputs:
2
,
tuner:
0
,
svhs:
2
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
1
,
0
,
0
,
0
,
0
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
-
1
,
gpiomask:
0x8dff00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
},
no_msp34xx:
1
,
tuner_type:
-
1
,
.
name
=
"Prolink Pixelview PlayTV (bt878)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x01fe00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x01c000
,
0
,
0x018000
,
0x014000
,
0x002000
,
0
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Leadtek WinView 601"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x8300f8
,
.
muxsel
=
{
2
,
3
,
1
,
1
,
0
},
.
audiomux
=
{
0x4fa007
,
0xcfa007
,
0xcfa007
,
0xcfa007
,
0xcfa007
,
0xcfa007
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
.
audio_hook
=
winview_audio
,
.
has_radio
=
1
,
},{
.
name
=
"AVEC Intercapture"
,
.
video_inputs
=
3
,
.
audio_inputs
=
2
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
1
,
0
,
0
,
0
,
0
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
-
1
,
.
gpiomask
=
0x8dff00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
},
.
no_msp34xx
=
1
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x14 ---------------------------------- */
name:
"CEI Raffles Card"
,
video_inputs:
3
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
muxsel:
{
2
,
3
,
1
,
1
},
tuner_type:
-
1
,
},{
name:
"Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50"
,
video_inputs:
4
,
audio_inputs:
2
,
// tuner, line in
tuner:
0
,
svhs:
2
,
gpiomask:
0x1800
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
},
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL_I
,
},{
name:
"Askey CPH050/ Phoebe Tv Master + FM"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xc00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
1
,
0x800
,
0x400
,
0xc00
,
0
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Modular Technology MM205 PCTV, bt878"
,
video_inputs:
2
,
audio_inputs:
1
,
tuner:
0
,
svhs:
-
1
,
gpiomask:
7
,
muxsel:
{
2
,
3
},
audiomux:
{
0
,
0
,
0
,
0
,
0
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_ALPS_TSBB5_PAL_I
,
.
name
=
"CEI Raffles Card"
,
.
video_inputs
=
3
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
tuner_type
=
-
1
,
},{
.
name
=
"Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50"
,
.
video_inputs
=
4
,
.
audio_inputs
=
2
,
// tuner, line in
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1800
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
},
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL_I
,
},{
.
name
=
"Askey CPH050/ Phoebe Tv Master + FM"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xc00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
1
,
0x800
,
0x400
,
0xc00
,
0
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Modular Technology MM205 PCTV, bt878"
,
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
-
1
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
3
},
.
audiomux
=
{
0
,
0
,
0
,
0
,
0
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_ALPS_TSBB5_PAL_I
,
},{
/* ---- card 0x18 ---------------------------------- */
name:
"Askey CPH05X/06X (bt878) [many vendors]"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xe00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x400
,
0x400
,
0x400
,
0x400
,
0xc00
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1f0fff
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x20000
,
0x30000
,
0x10000
,
0
,
0x40000
},
needs_tvaudio:
0
,
tuner_type:
TUNER_PHILIPS_PAL
,
audio_hook:
terratv_audio
,
},{
name:
"Hauppauge WinCam newer (bt878)"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
3
,
gpiomask:
7
,
muxsel:
{
2
,
0
,
1
,
1
},
audiomux:
{
0
,
1
,
2
,
3
,
4
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50"
,
video_inputs:
4
,
audio_inputs:
2
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1800
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
},
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_SECAM
,
.
name
=
"Askey CPH05X/06X (bt878) [many vendors]"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xe00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x400
,
0x400
,
0x400
,
0x400
,
0xc00
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1f0fff
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x20000
,
0x30000
,
0x10000
,
0
,
0x40000
},
.
needs_tvaudio
=
0
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
.
audio_hook
=
terratv_audio
,
},{
.
name
=
"Hauppauge WinCam newer (bt878)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
3
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
0
,
1
,
1
},
.
audiomux
=
{
0
,
1
,
2
,
3
,
4
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50"
,
.
video_inputs
=
4
,
.
audio_inputs
=
2
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1800
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
},
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_SECAM
,
},{
/* ---- card 0x1c ---------------------------------- */
name:
"Terratec TerraTV+ Version 1.1 (bt878)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1f0fff
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x20000
,
0x30000
,
0x10000
,
0x00000
,
0x40000
},
needs_tvaudio:
0
,
tuner_type:
TUNER_PHILIPS_PAL
,
audio_hook:
terratv_audio
,
.
name
=
"Terratec TerraTV+ Version 1.1 (bt878)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1f0fff
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x20000
,
0x30000
,
0x10000
,
0x00000
,
0x40000
},
.
needs_tvaudio
=
0
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
.
audio_hook
=
terratv_audio
,
/* GPIO wiring:
External 20 pin connector (for Active Radio Upgrade board)
gpio00: i2c-sda
...
...
@@ -585,71 +585,71 @@ struct tvcard bttv_tvcards[] = {
},{
/* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */
name:
"Imagenation PXC200"
,
video_inputs:
5
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
1
,
/* was: 4 */
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
0
,
0
},
audiomux:
{
0
},
needs_tvaudio:
1
,
tuner_type:
-
1
,
},{
name:
"Lifeview FlyVideo 98 LR50"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1800
,
//0x8dfe00
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0x0800
,
0x1000
,
0x1000
,
0x1800
,
0
},
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Formac iProTV"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
1
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
1
,
0
,
0
,
0
,
0
},
tuner_type:
-
1
,
.
name
=
"Imagenation PXC200"
,
.
video_inputs
=
5
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
1
,
/* was: 4 */
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
0
,
0
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
1
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Lifeview FlyVideo 98 LR50"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1800
,
//0x8dfe00
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0x0800
,
0x1000
,
0x1000
,
0x1800
,
0
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Formac iProTV"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
1
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
1
,
0
,
0
,
0
,
0
},
.
tuner_type
=
-
1
,
},{
/* ---- card 0x20 ---------------------------------- */
name:
"Intel Create and Share PCI/ Smart Video Recorder III"
,
video_inputs:
4
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
2
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
},
needs_tvaudio:
0
,
tuner_type:
4
,
},{
name:
"Terratec TerraTValue Version Bt878"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xffff00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x500
,
0
,
0x300
,
0x900
,
0x900
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL
,
},{
name:
"Leadtek WinFast 2000/ WinFast 2000 XP"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xc33000
,
muxsel:
{
2
,
3
,
1
,
1
,
0
},
// TV, CVid, SVid, CVid over SVid connector
audiomux:
{
0x422000
,
0x1000
,
0x0000
,
0x620000
,
0x800000
},
.
name
=
"Intel Create and Share PCI/ Smart Video Recorder III"
,
.
video_inputs
=
4
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
2
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
0
,
.
tuner_type
=
4
,
},{
.
name
=
"Terratec TerraTValue Version Bt878"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xffff00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x500
,
0
,
0x300
,
0x900
,
0x900
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
},{
.
name
=
"Leadtek WinFast 2000/ WinFast 2000 XP"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xc33000
,
.
muxsel
=
{
2
,
3
,
1
,
1
,
0
},
// TV, CVid, SVid, CVid over SVid connector
.
audiomux
=
{
0x422000
,
0x1000
,
0x0000
,
0x620000
,
0x800000
},
/* Audio Routing for "WinFast 2000 XP" (no tv stereo !)
gpio23 -- hef4052:nEnable (0x800000)
gpio12 -- hef4052:A1
...
...
@@ -661,216 +661,216 @@ struct tvcard bttv_tvcards[] = {
Note: There exists another variant "Winfast 2000" with tv stereo !?
Note: eeprom only contains FF and pci subsystem id 107d:6606
*/
needs_tvaudio:
0
,
pll:
PLL_28
,
has_radio:
1
,
tuner_type:
5
,
// default for now, gpio reads BFFF06 for Pal bg+dk
audio_hook:
winfast2000_audio
,
},{
name:
"Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II"
,
video_inputs:
4
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1800
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
},
pll:
PLL_28
,
tuner_type:
-
1
,
.
needs_tvaudio
=
0
,
.
pll
=
PLL_28
,
.
has_radio
=
1
,
.
tuner_type
=
5
,
// default for now, gpio reads BFFF06 for Pal bg+dk
.
audio_hook
=
winfast2000_audio
,
},{
.
name
=
"Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II"
,
.
video_inputs
=
4
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1800
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x24 ---------------------------------- */
name:
"Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner"
,
video_inputs:
4
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1800
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
,
0
},
pll:
PLL_28
,
tuner_type:
-
1
,
has_radio:
1
,
},{
name:
"Prolink PixelView PlayTV pro"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xff
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x21
,
0x20
,
0x24
,
0x2c
,
0x29
,
0x29
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Askey CPH06X TView99"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x551e00
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
0x551400
,
0x551200
,
0
,
0
,
0x551c00
,
0x551200
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Pinnacle PCTV Studio/Rave"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x03000F
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
2
,
0
,
0
,
0
,
1
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
.
name
=
"Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner"
,
.
video_inputs
=
4
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1800
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
,
0
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
has_radio
=
1
,
},{
.
name
=
"Prolink PixelView PlayTV pro"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xff
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x21
,
0x20
,
0x24
,
0x2c
,
0x29
,
0x29
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Askey CPH06X TView99"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x551e00
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
0x551400
,
0x551200
,
0
,
0
,
0x551c00
,
0x551200
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Pinnacle PCTV Studio/Rave"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x03000F
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
2
,
0
,
0
,
0
,
1
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x28 ---------------------------------- */
name:
"STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
7
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
4
,
0
,
2
,
3
,
1
},
no_msp34xx:
1
,
needs_tvaudio:
1
,
tuner_type:
TUNER_PHILIPS_NTSC
,
pll:
PLL_28
,
has_radio:
1
,
},{
name:
"AVerMedia TVPhone 98"
,
video_inputs:
3
,
audio_inputs:
4
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
13
,
4
,
11
,
7
,
0
,
0
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
has_radio:
1
,
},{
name:
"ProVideo PV951"
,
/* pic16c54 */
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0
,
0
,
0
,
0
},
needs_tvaudio:
1
,
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
1
,
},{
name:
"Little OnAir TV"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xe00b
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0xff9ff6
,
0xff9ff6
,
0xff1ff7
,
0
,
0xff3ffc
},
no_msp34xx:
1
,
tuner_type:
-
1
,
.
name
=
"STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
4
,
0
,
2
,
3
,
1
},
.
no_msp34xx
=
1
,
.
needs_tvaudio
=
1
,
.
tuner_type
=
TUNER_PHILIPS_NTSC
,
.
pll
=
PLL_28
,
.
has_radio
=
1
,
},{
.
name
=
"AVerMedia TVPhone 98"
,
.
video_inputs
=
3
,
.
audio_inputs
=
4
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
13
,
4
,
11
,
7
,
0
,
0
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
has_radio
=
1
,
},{
.
name
=
"ProVideo PV951"
,
/* pic16c54 */
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0
,
0
,
0
,
0
},
.
needs_tvaudio
=
1
,
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
1
,
},{
.
name
=
"Little OnAir TV"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xe00b
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0xff9ff6
,
0xff9ff6
,
0xff1ff7
,
0
,
0xff3ffc
},
.
no_msp34xx
=
1
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x2c ---------------------------------- */
name:
"Sigma TVII-FM"
,
video_inputs:
2
,
audio_inputs:
1
,
tuner:
0
,
svhs:
-
1
,
gpiomask:
3
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
1
,
1
,
0
,
2
,
3
},
no_msp34xx:
1
,
pll:
PLL_NONE
,
tuner_type:
-
1
,
},{
name:
"MATRIX-Vision MV-Delta 2"
,
video_inputs:
5
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
3
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
0
,
0
},
audiomux:
{
0
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Zoltrix Genie TV/FM"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xbcf03f
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0xbc803f
,
0xbc903f
,
0xbcb03f
,
0
,
0xbcb03f
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
21
,
},{
name:
"Terratec TV/Radio+"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x70000
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x20000
,
0x30000
,
0x10000
,
0
,
0x40000
,
0x20000
},
needs_tvaudio:
1
,
no_msp34xx:
1
,
pll:
PLL_35
,
tuner_type:
1
,
has_radio:
1
,
.
name
=
"Sigma TVII-FM"
,
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
-
1
,
.
gpiomask
=
3
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
1
,
1
,
0
,
2
,
3
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_NONE
,
.
tuner_type
=
-
1
,
},{
.
name
=
"MATRIX-Vision MV-Delta 2"
,
.
video_inputs
=
5
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
3
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
0
,
0
},
.
audiomux
=
{
0
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Zoltrix Genie TV/FM"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xbcf03f
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0xbc803f
,
0xbc903f
,
0xbcb03f
,
0
,
0xbcb03f
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
21
,
},{
.
name
=
"Terratec TV/Radio+"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x70000
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x20000
,
0x30000
,
0x10000
,
0
,
0x40000
,
0x20000
},
.
needs_tvaudio
=
1
,
.
no_msp34xx
=
1
,
.
pll
=
PLL_35
,
.
tuner_type
=
1
,
.
has_radio
=
1
,
},{
/* ---- card 0x30 ---------------------------------- */
name:
"Askey CPH03x/ Dynalink Magic TView"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
2
,
0
,
0
,
0
,
1
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"IODATA GV-BCTV3/PCI"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x010f00
,
muxsel:
{
2
,
3
,
0
,
0
},
audiomux:
{
0x10000
,
0
,
0x10000
,
0
,
0
,
0
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_ALPS_TSHC6_NTSC
,
audio_hook:
gvbctv3pci_audio
,
},{
name:
"Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
3
,
gpiomask:
0xAA0000
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x20000
,
0
,
0x80000
,
0x80000
,
0xa8000
,
0x46000
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL_I
,
.
name
=
"Askey CPH03x/ Dynalink Magic TView"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
2
,
0
,
0
,
0
,
1
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"IODATA GV-BCTV3/PCI"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x010f00
,
.
muxsel
=
{
2
,
3
,
0
,
0
},
.
audiomux
=
{
0x10000
,
0
,
0x10000
,
0
,
0
,
0
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_ALPS_TSHC6_NTSC
,
.
audio_hook
=
gvbctv3pci_audio
,
},{
.
name
=
"Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
3
,
.
gpiomask
=
0xAA0000
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x20000
,
0
,
0x80000
,
0x80000
,
0xa8000
,
0x46000
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL_I
,
/* GPIO wiring: (different from Rev.4C !)
GPIO17: U4.A0 (first hef4052bt)
GPIO19: U4.A1
...
...
@@ -881,28 +881,28 @@ struct tvcard bttv_tvcards[] = {
Note: At i2c=0x8a is a Bt832 chip, which changes to 0x88 after being reset via GPIO22
*/
},{
name:
"Eagle Wireless Capricorn2 (bt878A)"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
7
,
muxsel:
{
2
,
0
,
1
,
1
},
audiomux:
{
0
,
1
,
2
,
3
,
4
},
pll:
PLL_28
,
tuner_type:
-
1
/* TUNER_ALPS_TMDH2_NTSC */
,
.
name
=
"Eagle Wireless Capricorn2 (bt878A)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
0
,
1
,
1
},
.
audiomux
=
{
0
,
1
,
2
,
3
,
4
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
/* TUNER_ALPS_TMDH2_NTSC */
,
},{
/* ---- card 0x34 ---------------------------------- */
/* David Hrdeman <david@2gen.com> */
name:
"Pinnacle PCTV Studio Pro"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x03000F
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
1
,
0x10001
,
0
,
0
,
10
},
.
name
=
"Pinnacle PCTV Studio Pro"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x03000F
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
1
,
0x10001
,
0
,
0
,
10
},
/* sound path (5 sources):
MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable)
0= ext. Audio IN
...
...
@@ -912,273 +912,273 @@ struct tvcard bttv_tvcards[] = {
MUX2 (mask 0x30000):
0,2,3= from MSP34xx
1= FM stereo Radio from Tuner */
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
/* Claas Langbehn <claas@bigfoot.com>,
Sven Grothklags <sven@upb.de> */
name:
"Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS"
,
video_inputs:
3
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1c
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0
,
0x10
,
8
,
4
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL_I
,
has_radio:
1
,
.
name
=
"Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS"
,
.
video_inputs
=
3
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1c
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0
,
0x10
,
8
,
4
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL_I
,
.
has_radio
=
1
,
},{
/* Tim Rstermundt <rosterm@uni-muenster.de>
in de.comp.os.unix.linux.hardware:
options bttv card=0 pll=1 radio=1 gpiomask=0x18e0
audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff
options tuner type=5 */
name:
"Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x18e0
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x0000
,
0x0800
,
0x1000
,
0x1000
,
0x18e0
},
.
name
=
"Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x18e0
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x0000
,
0x0800
,
0x1000
,
0x1000
,
0x18e0
},
/* For cards with tda9820/tda9821:
0x0000: Tuner normal stereo
0x0080: Tuner A2 SAP (second audio program = Zweikanalton)
0x0880: Tuner A2 stereo */
pll:
PLL_28
,
tuner_type:
-
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
/* Miguel Angel Alvarez <maacruz@navegalia.com>
old Easy TV BT848 version (model CPH031) */
name:
"Askey CPH031/ BESTBUY Easy TV"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xF
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
2
,
0
,
0
,
0
,
10
},
needs_tvaudio:
0
,
pll:
PLL_28
,
tuner_type:
TUNER_TEMIC_PAL
,
.
name
=
"Askey CPH031/ BESTBUY Easy TV"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xF
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
2
,
0
,
0
,
0
,
10
},
.
needs_tvaudio
=
0
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_TEMIC_PAL
,
},{
/* ---- card 0x38 ---------------------------------- */
/* Gordon Heydon <gjheydon@bigfoot.com ('98) */
name:
"Lifeview FlyVideo 98FM LR50"
,
video_inputs:
4
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1800
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
,
0
},
pll:
PLL_28
,
tuner_type:
5
,
.
name
=
"Lifeview FlyVideo 98FM LR50"
,
.
video_inputs
=
4
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1800
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0x800
,
0x1000
,
0x1000
,
0x1800
,
0
},
.
pll
=
PLL_28
,
.
tuner_type
=
5
,
},{
/* This is the ultimate cheapo capture card
* just a BT848A on a small PCB!
* Steve Hosgood <steve@equiinet.com> */
name:
"GrandTec 'Grand Video Capture' (Bt848)"
,
video_inputs:
2
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
1
,
gpiomask:
0
,
muxsel:
{
3
,
1
},
audiomux:
{
0
},
needs_tvaudio:
0
,
no_msp34xx:
1
,
pll:
PLL_35
,
tuner_type:
-
1
,
.
name
=
"GrandTec 'Grand Video Capture' (Bt848)"
,
.
video_inputs
=
2
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
gpiomask
=
0
,
.
muxsel
=
{
3
,
1
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
0
,
.
no_msp34xx
=
1
,
.
pll
=
PLL_35
,
.
tuner_type
=
-
1
,
},{
/* Daniel Herrington <daniel.herrington@home.com> */
name:
"Askey CPH060/ Phoebe TV Master Only (No FM)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xe00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x400
,
0x400
,
0x400
,
0x400
,
0x800
,
0x400
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_TEMIC_4036FY5_NTSC
,
.
name
=
"Askey CPH060/ Phoebe TV Master Only (No FM)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xe00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x400
,
0x400
,
0x400
,
0x400
,
0x800
,
0x400
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_TEMIC_4036FY5_NTSC
,
},{
/* Matti Mottus <mottus@physic.ut.ee> */
name:
"Askey CPH03x TV Capturer"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x03000F
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
2
,
0
,
0
,
0
,
1
},
pll:
PLL_28
,
tuner_type:
0
,
.
name
=
"Askey CPH03x TV Capturer"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x03000F
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
2
,
0
,
0
,
0
,
1
},
.
pll
=
PLL_28
,
.
tuner_type
=
0
,
},{
/* ---- card 0x3c ---------------------------------- */
/* Philip Blundell <philb@gnu.org> */
name:
"Modular Technology MM100PCTV"
,
video_inputs:
2
,
audio_inputs:
2
,
tuner:
0
,
svhs:
-
1
,
gpiomask:
11
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
2
,
0
,
0
,
1
,
8
},
pll:
PLL_35
,
tuner_type:
TUNER_TEMIC_PAL
,
.
name
=
"Modular Technology MM100PCTV"
,
.
video_inputs
=
2
,
.
audio_inputs
=
2
,
.
tuner
=
0
,
.
svhs
=
-
1
,
.
gpiomask
=
11
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
2
,
0
,
0
,
1
,
8
},
.
pll
=
PLL_35
,
.
tuner_type
=
TUNER_TEMIC_PAL
,
},{
/* Adrian Cox <adrian@humboldt.co.uk */
name:
"AG Electronics GMV1"
,
video_inputs:
2
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
1
,
gpiomask:
0xF
,
muxsel:
{
2
,
2
},
audiomux:
{
},
no_msp34xx:
1
,
needs_tvaudio:
0
,
pll:
PLL_28
,
tuner_type:
-
1
,
.
name
=
"AG Electronics GMV1"
,
.
video_inputs
=
2
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
gpiomask
=
0xF
,
.
muxsel
=
{
2
,
2
},
.
audiomux
=
{
},
.
no_msp34xx
=
1
,
.
needs_tvaudio
=
0
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
/* Miguel Angel Alvarez <maacruz@navegalia.com>
new Easy TV BT878 version (model CPH061)
special thanks to Informatica Mieres for providing the card */
name:
"Askey CPH061/ BESTBUY Easy TV (bt878)"
,
video_inputs:
3
,
audio_inputs:
2
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xFF
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
1
,
0
,
4
,
4
,
9
},
needs_tvaudio:
0
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL
,
.
name
=
"Askey CPH061/ BESTBUY Easy TV (bt878)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
2
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xFF
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
1
,
0
,
4
,
4
,
9
},
.
needs_tvaudio
=
0
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
},{
/* Lukas Gebauer <geby@volny.cz> */
name:
"ATI TV-Wonder"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xf03f
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
0xbffe
,
0
,
0xbfff
,
0
,
0xbffe
},
pll:
PLL_28
,
tuner_type:
TUNER_TEMIC_4006FN5_MULTI_PAL
,
.
name
=
"ATI TV-Wonder"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xf03f
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
0xbffe
,
0
,
0xbfff
,
0
,
0xbffe
},
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_TEMIC_4006FN5_MULTI_PAL
,
},{
/* ---- card 0x40 ---------------------------------- */
/* Lukas Gebauer <geby@volny.cz> */
name:
"ATI TV-Wonder VE"
,
video_inputs:
2
,
audio_inputs:
1
,
tuner:
0
,
svhs:
-
1
,
gpiomask:
1
,
muxsel:
{
2
,
3
,
0
,
1
},
audiomux:
{
0
,
0
,
1
,
0
,
0
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_TEMIC_4006FN5_MULTI_PAL
,
.
name
=
"ATI TV-Wonder VE"
,
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
-
1
,
.
gpiomask
=
1
,
.
muxsel
=
{
2
,
3
,
0
,
1
},
.
audiomux
=
{
0
,
0
,
1
,
0
,
0
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_TEMIC_4006FN5_MULTI_PAL
,
},{
/* DeeJay <deejay@westel900.net (2000S) */
name:
"Lifeview FlyVideo 2000S LR90"
,
video_inputs:
3
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x18e0
,
muxsel:
{
2
,
3
,
0
,
1
},
.
name
=
"Lifeview FlyVideo 2000S LR90"
,
.
video_inputs
=
3
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x18e0
,
.
muxsel
=
{
2
,
3
,
0
,
1
},
/* Radio changed from 1e80 to 0x800 to make
FlyVideo2000S in .hu happy (gm)*/
/* -dk-???: set mute=0x1800 for tda9874h daughterboard */
audiomux:
{
0x0000
,
0x0800
,
0x1000
,
0x1000
,
0x1800
,
0x1080
},
audio_hook:
fv2000s_audio
,
no_msp34xx:
1
,
no_tda9875:
1
,
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
5
,
},{
name:
"Terratec TValueRadio"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0xffff00
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x500
,
0x500
,
0x300
,
0x900
,
0x900
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_PAL
,
has_radio:
1
,
.
audiomux
=
{
0x0000
,
0x0800
,
0x1000
,
0x1000
,
0x1800
,
0x1080
},
.
audio_hook
=
fv2000s_audio
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
5
,
},{
.
name
=
"Terratec TValueRadio"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0xffff00
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x500
,
0x500
,
0x300
,
0x900
,
0x900
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
.
has_radio
=
1
,
},{
/* TANAKA Kei <peg00625@nifty.com> */
name:
"IODATA GV-BCTV4/PCI"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x010f00
,
muxsel:
{
2
,
3
,
0
,
0
},
audiomux:
{
0x10000
,
0
,
0x10000
,
0
,
0
,
0
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_SHARP_2U5JF5540_NTSC
,
audio_hook:
gvbctv3pci_audio
,
.
name
=
"IODATA GV-BCTV4/PCI"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x010f00
,
.
muxsel
=
{
2
,
3
,
0
,
0
},
.
audiomux
=
{
0x10000
,
0
,
0x10000
,
0
,
0
,
0
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_SHARP_2U5JF5540_NTSC
,
.
audio_hook
=
gvbctv3pci_audio
,
},{
/* ---- card 0x44 ---------------------------------- */
name:
"3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)"
,
.
name
=
"3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)"
,
// try "insmod msp3400 simple=0" if you have
// sound problems with this card.
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
-
1
,
gpiomask:
0x4f8a00
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
-
1
,
.
gpiomask
=
0x4f8a00
,
// 0x100000: 1=MSP enabled (0=disable again)
// 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC)
audiomux:
{
0x947fff
,
0x987fff
,
0x947fff
,
0x947fff
,
0x947fff
},
.
audiomux
=
{
0x947fff
,
0x987fff
,
0x947fff
,
0x947fff
,
0x947fff
},
// tvtuner, radio, external,internal, mute, stereo
/* tuner, Composit, SVid, Composit-on-Svid-adapter*/
muxsel:
{
2
,
3
,
0
,
1
},
tuner_type:
TUNER_MT2032
,
pll:
PLL_28
,
has_radio:
1
,
.
muxsel
=
{
2
,
3
,
0
,
1
},
.
tuner_type
=
TUNER_MT2032
,
.
pll
=
PLL_28
,
.
has_radio
=
1
,
},{
/* Philip Blundell <pb@nexus.co.uk> */
name:
"Active Imaging AIMMS"
,
video_inputs:
1
,
audio_inputs:
0
,
tuner:
-
1
,
tuner_type:
-
1
,
pll:
PLL_28
,
muxsel:
{
2
},
gpiomask:
0
.
name
=
"Active Imaging AIMMS"
,
.
video_inputs
=
1
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
tuner_type
=
-
1
,
.
pll
=
PLL_28
,
.
muxsel
=
{
2
},
.
gpiomask
=
0
},{
/* Tomasz Pyra <hellfire@sedez.iq.pl> */
name:
"Prolink Pixelview PV-BT878P+ (Rev.4C)"
,
video_inputs:
3
,
audio_inputs:
4
,
tuner:
0
,
svhs:
2
,
gpiomask:
15
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
0
,
11
,
7
,
13
,
0
},
// TV and Radio with same GPIO !
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
25
,
.
name
=
"Prolink Pixelview PV-BT878P+ (Rev.4C)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
4
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
15
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
0
,
11
,
7
,
13
,
0
},
// TV and Radio with same GPIO !
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
25
,
/* GPIO wiring:
GPIO0: U4.A0 (hef4052bt)
GPIO1: U4.A1
...
...
@@ -1187,33 +1187,33 @@ struct tvcard bttv_tvcards[] = {
GPIO8-15: vrd866b ?
*/
},{
name:
"Lifeview FlyVideo 98EZ (capture only) LR51"
,
video_inputs:
4
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
2
,
muxsel:
{
2
,
3
,
1
,
1
},
// AV1, AV2, SVHS, CVid adapter on SVHS
pll:
PLL_28
,
no_msp34xx:
1
,
.
name
=
"Lifeview FlyVideo 98EZ (capture only) LR51"
,
.
video_inputs
=
4
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
2
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
// AV1, AV2, SVHS, CVid adapter on SVHS
.
pll
=
PLL_28
,
.
no_msp34xx
=
1
,
},{
/* ---- card 0x48 ---------------------------------- */
/* Dariusz Kowalewski <darekk@automex.pl> */
name:
"Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x3f
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0x01
,
0x00
,
0x03
,
0x03
,
0x09
,
0x02
},
needs_tvaudio:
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
pll:
PLL_28
,
tuner_type:
5
,
audio_hook:
pvbt878p9b_audio
,
// Note: not all cards have stereo
has_radio:
1
,
// Note: not all cards have radio
.
name
=
"Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x3f
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0x01
,
0x00
,
0x03
,
0x03
,
0x09
,
0x02
},
.
needs_tvaudio
=
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
5
,
.
audio_hook
=
pvbt878p9b_audio
,
// Note: not all cards have stereo
.
has_radio
=
1
,
// Note: not all cards have radio
/* GPIO wiring:
GPIO0: A0 hef4052
GPIO1: A1 hef4052
...
...
@@ -1224,91 +1224,91 @@ struct tvcard bttv_tvcards[] = {
},{
/* Clay Kunz <ckunz@mail.arc.nasa.gov> */
/* you must jumper JP5 for the card to work */
name:
"Sensoray 311"
,
video_inputs:
5
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
4
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
0
,
0
},
audiomux:
{
0
},
needs_tvaudio:
0
,
tuner_type:
-
1
,
.
name
=
"Sensoray 311"
,
.
video_inputs
=
5
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
4
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
0
,
0
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
0
,
.
tuner_type
=
-
1
,
},{
/* Miguel Freitas <miguel@cetuc.puc-rio.br> */
name:
"RemoteVision MX (RV605)"
,
video_inputs:
16
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
-
1
,
gpiomask:
0x00
,
gpiomask2:
0x07ff
,
muxsel:
{
0x33
,
0x13
,
0x23
,
0x43
,
0xf3
,
0x73
,
0xe3
,
0x03
,
.
name
=
"RemoteVision MX (RV605)"
,
.
video_inputs
=
16
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
-
1
,
.
gpiomask
=
0x00
,
.
gpiomask2
=
0x07ff
,
.
muxsel
=
{
0x33
,
0x13
,
0x23
,
0x43
,
0xf3
,
0x73
,
0xe3
,
0x03
,
0xd3
,
0xb3
,
0xc3
,
0x63
,
0x93
,
0x53
,
0x83
,
0xa3
},
no_msp34xx:
1
,
no_tda9875:
1
,
tuner_type:
-
1
,
muxsel_hook:
rv605_muxsel
,
},{
name:
"Powercolor MTV878/ MTV878R/ MTV878F"
,
video_inputs:
3
,
audio_inputs:
2
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x1C800F
,
// Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset
muxsel:
{
2
,
1
,
1
,
},
audiomux:
{
0
,
1
,
2
,
2
,
4
},
needs_tvaudio:
0
,
tuner_type:
TUNER_PHILIPS_PAL
,
pll:
PLL_28
,
has_radio:
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
tuner_type
=
-
1
,
.
muxsel_hook
=
rv605_muxsel
,
},{
.
name
=
"Powercolor MTV878/ MTV878R/ MTV878F"
,
.
video_inputs
=
3
,
.
audio_inputs
=
2
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x1C800F
,
// Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset
.
muxsel
=
{
2
,
1
,
1
,
},
.
audiomux
=
{
0
,
1
,
2
,
2
,
4
},
.
needs_tvaudio
=
0
,
.
tuner_type
=
TUNER_PHILIPS_PAL
,
.
pll
=
PLL_28
,
.
has_radio
=
1
,
},{
/* ---- card 0x4c ---------------------------------- */
/* Masaki Suzuki <masaki@btree.org> */
name:
"Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x140007
,
muxsel:
{
2
,
3
,
1
,
1
},
audiomux:
{
0
,
1
,
2
,
3
,
4
,
0
},
tuner_type:
TUNER_PHILIPS_NTSC
,
audio_hook:
windvr_audio
,
},{
name:
"GrandTec Multi Capture Card (Bt878)"
,
video_inputs:
4
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
-
1
,
gpiomask:
0
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
0
},
needs_tvaudio:
0
,
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
},{
name:
"Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF"
,
video_inputs:
4
,
audio_inputs:
3
,
tuner:
0
,
svhs:
2
,
gpiomask:
7
,
muxsel:
{
2
,
3
,
1
,
1
},
// Tuner, SVid, SVHS, SVid to SVHS connector
audiomux:
{
0
,
0
,
4
,
4
,
4
,
4
},
// Yes, this tuner uses the same audio output for TV and FM radio!
.
name
=
"Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x140007
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
.
audiomux
=
{
0
,
1
,
2
,
3
,
4
,
0
},
.
tuner_type
=
TUNER_PHILIPS_NTSC
,
.
audio_hook
=
windvr_audio
,
},{
.
name
=
"GrandTec Multi Capture Card (Bt878)"
,
.
video_inputs
=
4
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
-
1
,
.
gpiomask
=
0
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
0
},
.
needs_tvaudio
=
0
,
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
.
name
=
"Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF"
,
.
video_inputs
=
4
,
.
audio_inputs
=
3
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
7
,
.
muxsel
=
{
2
,
3
,
1
,
1
},
// Tuner, SVid, SVHS, SVid to SVHS connector
.
audiomux
=
{
0
,
0
,
4
,
4
,
4
,
4
},
// Yes, this tuner uses the same audio output for TV and FM radio!
// This card lacks external Audio In, so we mute it on Ext. & Int.
// The PCB can take a sbx1637/sbx1673, wiring unknown.
// This card lacks PCI subsystem ID, sigh.
// audiomux=1: lower volume, 2+3: mute
// btwincap uses 0x80000/0x80003
needs_tvaudio:
0
,
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
5
,
// Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and
.
needs_tvaudio
=
0
,
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
5
,
// Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and
// radio signal strength indicators work fine.
has_radio:
1
,
.
has_radio
=
1
,
/* GPIO Info:
GPIO0,1: HEF4052 A0,A1
GPIO2: HEF4052 nENABLE
...
...
@@ -1320,199 +1320,199 @@ struct tvcard bttv_tvcards[] = {
?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/
},{
/* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */
name:
"DSP Design TCVIDEO"
,
video_inputs:
4
,
svhs:
-
1
,
muxsel:
{
2
,
3
,
1
,
0
},
pll:
PLL_28
,
tuner_type:
-
1
,
.
name
=
"DSP Design TCVIDEO"
,
.
video_inputs
=
4
,
.
svhs
=
-
1
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
},{
/* ---- card 0x50 ---------------------------------- */
name:
"Hauppauge WinTV PVR"
,
video_inputs:
4
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
muxsel:
{
2
,
0
,
1
,
1
},
needs_tvaudio:
1
,
pll:
PLL_28
,
tuner_type:
-
1
,
gpiomask:
7
,
audiomux:
{
7
},
},{
name:
"GV-BCTV5/PCI"
,
video_inputs:
3
,
audio_inputs:
1
,
tuner:
0
,
svhs:
2
,
gpiomask:
0x010f00
,
muxsel:
{
2
,
3
,
1
,
0
},
audiomux:
{
0x10000
,
0
,
0x10000
,
0
,
0
,
0
},
no_msp34xx:
1
,
pll:
PLL_28
,
tuner_type:
TUNER_PHILIPS_NTSC_M
,
audio_hook:
gvbctv3pci_audio
,
},{
name:
"Osprey 100/150 (878)"
,
/* 0x1(2|3)-45C6-C1 */
video_inputs:
4
,
/* id-inputs-clock */
audio_inputs:
0
,
tuner:
-
1
,
svhs:
3
,
muxsel:
{
3
,
2
,
0
,
1
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 100/150 (848)"
,
/* 0x04-54C0-C1 & older boards */
video_inputs:
3
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
2
,
muxsel:
{
2
,
3
,
1
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
.
name
=
"Hauppauge WinTV PVR"
,
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
muxsel
=
{
2
,
0
,
1
,
1
},
.
needs_tvaudio
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
gpiomask
=
7
,
.
audiomux
=
{
7
},
},{
.
name
=
"GV-BCTV5/PCI"
,
.
video_inputs
=
3
,
.
audio_inputs
=
1
,
.
tuner
=
0
,
.
svhs
=
2
,
.
gpiomask
=
0x010f00
,
.
muxsel
=
{
2
,
3
,
1
,
0
},
.
audiomux
=
{
0x10000
,
0
,
0x10000
,
0
,
0
,
0
},
.
no_msp34xx
=
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
TUNER_PHILIPS_NTSC_M
,
.
audio_hook
=
gvbctv3pci_audio
,
},{
.
name
=
"Osprey 100/150 (878)"
,
/* 0x1(2|3)-45C6-C1 */
.
video_inputs
=
4
,
/* id-inputs-clock */
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
3
,
.
muxsel
=
{
3
,
2
,
0
,
1
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 100/150 (848)"
,
/* 0x04-54C0-C1 & older boards */
.
video_inputs
=
3
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
2
,
.
muxsel
=
{
2
,
3
,
1
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
/* ---- card 0x54 ---------------------------------- */
name:
"Osprey 101 (848)"
,
/* 0x05-40C0-C1 */
video_inputs:
2
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
1
,
muxsel:
{
3
,
1
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 101/151"
,
/* 0x1(4|5)-0004-C4 */
video_inputs:
1
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
-
1
,
muxsel:
{
0
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 101/151 w/ svid"
,
/* 0x(16|17|20)-00C4-C1 */
video_inputs:
2
,
audio_inputs:
0
,
tuner:
-
1
,
svhs:
1
,
muxsel:
{
0
,
1
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 200/201/250/251"
,
/* 0x1(8|9|E|F)-0004-C4 */
video_inputs:
1
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
-
1
,
muxsel:
{
0
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
.
name
=
"Osprey 101 (848)"
,
/* 0x05-40C0-C1 */
.
video_inputs
=
2
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
muxsel
=
{
3
,
1
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 101/151"
,
/* 0x1(4|5)-0004-C4 */
.
video_inputs
=
1
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
-
1
,
.
muxsel
=
{
0
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 101/151 w/ svid"
,
/* 0x(16|17|20)-00C4-C1 */
.
video_inputs
=
2
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
muxsel
=
{
0
,
1
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 200/201/250/251"
,
/* 0x1(8|9|E|F)-0004-C4 */
.
video_inputs
=
1
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
-
1
,
.
muxsel
=
{
0
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
/* ---- card 0x58 ---------------------------------- */
name:
"Osprey 200/250"
,
/* 0x1(A|B)-00C4-C1 */
video_inputs:
2
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
1
,
muxsel:
{
0
,
1
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 210/220"
,
/* 0x1(A|B)-04C0-C1 */
video_inputs:
2
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
1
,
muxsel:
{
2
,
3
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 500"
,
/* 500 */
video_inputs:
2
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
1
,
muxsel:
{
2
,
3
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
},{
name:
"Osprey 540"
,
/* 540 */
video_inputs:
4
,
audio_inputs:
1
,
tuner:
-
1
,
.
name
=
"Osprey 200/250"
,
/* 0x1(A|B)-00C4-C1 */
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
muxsel
=
{
0
,
1
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 210/220"
,
/* 0x1(A|B)-04C0-C1 */
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
muxsel
=
{
2
,
3
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 500"
,
/* 500 */
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
muxsel
=
{
2
,
3
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
},{
.
name
=
"Osprey 540"
,
/* 540 */
.
video_inputs
=
4
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
#if 0 /* TODO ... */
svhs:
OSPREY540_SVID_ANALOG,
muxsel:
{ [OSPREY540_COMP_ANALOG] = 2,
.svhs =
OSPREY540_SVID_ANALOG,
.muxsel =
{ [OSPREY540_COMP_ANALOG] = 2,
[OSPREY540_SVID_ANALOG] = 3, },
#endif
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
#if 0 /* TODO ... */
muxsel_hook:
osprey_540_muxsel,
picture_hook:
osprey_540_set_picture,
.muxsel_hook =
osprey_540_muxsel,
.picture_hook =
osprey_540_set_picture,
#endif
},{
/* ---- card 0x5C ---------------------------------- */
name:
"Osprey 2000"
,
/* 2000 */
video_inputs:
2
,
audio_inputs:
1
,
tuner:
-
1
,
svhs:
1
,
muxsel:
{
2
,
3
},
pll:
PLL_28
,
tuner_type:
-
1
,
no_msp34xx:
1
,
no_tda9875:
1
,
no_tda7432:
1
,
/* must avoid, conflicts with the bt860 */
.
name
=
"Osprey 2000"
,
/* 2000 */
.
video_inputs
=
2
,
.
audio_inputs
=
1
,
.
tuner
=
-
1
,
.
svhs
=
1
,
.
muxsel
=
{
2
,
3
},
.
pll
=
PLL_28
,
.
tuner_type
=
-
1
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
no_tda7432
=
1
,
/* must avoid, conflicts with the bt860 */
},{
/* M G Berberich <berberic@forwiss.uni-passau.de> */
name:
"IDS Eagle"
,
video_inputs:
4
,
audio_inputs:
0
,
tuner:
-
1
,
tuner_type:
-
1
,
svhs:
-
1
,
gpiomask:
0
,
muxsel:
{
0
,
1
,
2
,
3
},
muxsel_hook:
eagle_muxsel
,
no_msp34xx:
1
,
no_tda9875:
1
,
pll:
PLL_28
,
.
name
=
"IDS Eagle"
,
.
video_inputs
=
4
,
.
audio_inputs
=
0
,
.
tuner
=
-
1
,
.
tuner_type
=
-
1
,
.
svhs
=
-
1
,
.
gpiomask
=
0
,
.
muxsel
=
{
0
,
1
,
2
,
3
},
.
muxsel_hook
=
eagle_muxsel
,
.
no_msp34xx
=
1
,
.
no_tda9875
=
1
,
.
pll
=
PLL_28
,
}};
const
int
bttv_num_tvcards
=
(
sizeof
(
bttv_tvcards
)
/
sizeof
(
struct
tvcard
));
...
...
drivers/media/video/bttv-driver.c
View file @
71029f06
...
...
@@ -274,154 +274,154 @@ const int BTTV_TVNORMS = (sizeof(bttv_tvnorms)/sizeof(struct bttv_tvnorm));
packed pixel formats must come first */
const
struct
bttv_format
bttv_formats
[]
=
{
{
name:
"8 bpp, gray"
,
palette:
VIDEO_PALETTE_GREY
,
fourcc:
V4L2_PIX_FMT_GREY
,
btformat:
BT848_COLOR_FMT_Y8
,
depth:
8
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"8 bpp, gray"
,
.
palette
=
VIDEO_PALETTE_GREY
,
.
fourcc
=
V4L2_PIX_FMT_GREY
,
.
btformat
=
BT848_COLOR_FMT_Y8
,
.
depth
=
8
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"8 bpp, dithered color"
,
palette:
VIDEO_PALETTE_HI240
,
fourcc:
V4L2_PIX_FMT_HI240
,
btformat:
BT848_COLOR_FMT_RGB8
,
depth:
8
,
flags:
FORMAT_FLAGS_PACKED
|
FORMAT_FLAGS_DITHER
,
.
name
=
"8 bpp, dithered color"
,
.
palette
=
VIDEO_PALETTE_HI240
,
.
fourcc
=
V4L2_PIX_FMT_HI240
,
.
btformat
=
BT848_COLOR_FMT_RGB8
,
.
depth
=
8
,
.
flags
=
FORMAT_FLAGS_PACKED
|
FORMAT_FLAGS_DITHER
,
},{
name:
"15 bpp RGB, le"
,
palette:
VIDEO_PALETTE_RGB555
,
fourcc:
V4L2_PIX_FMT_RGB555
,
btformat:
BT848_COLOR_FMT_RGB15
,
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"15 bpp RGB, le"
,
.
palette
=
VIDEO_PALETTE_RGB555
,
.
fourcc
=
V4L2_PIX_FMT_RGB555
,
.
btformat
=
BT848_COLOR_FMT_RGB15
,
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"15 bpp RGB, be"
,
palette:
-
1
,
fourcc:
V4L2_PIX_FMT_RGB555X
,
btformat:
BT848_COLOR_FMT_RGB15
,
btswap:
0x03
,
/* byteswap */
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"15 bpp RGB, be"
,
.
palette
=
-
1
,
.
fourcc
=
V4L2_PIX_FMT_RGB555X
,
.
btformat
=
BT848_COLOR_FMT_RGB15
,
.
btswap
=
0x03
,
/* byteswap */
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"16 bpp RGB, le"
,
palette:
VIDEO_PALETTE_RGB565
,
fourcc:
V4L2_PIX_FMT_RGB565
,
btformat:
BT848_COLOR_FMT_RGB16
,
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"16 bpp RGB, le"
,
.
palette
=
VIDEO_PALETTE_RGB565
,
.
fourcc
=
V4L2_PIX_FMT_RGB565
,
.
btformat
=
BT848_COLOR_FMT_RGB16
,
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"16 bpp RGB, be"
,
palette:
-
1
,
fourcc:
V4L2_PIX_FMT_RGB565X
,
btformat:
BT848_COLOR_FMT_RGB16
,
btswap:
0x03
,
/* byteswap */
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"16 bpp RGB, be"
,
.
palette
=
-
1
,
.
fourcc
=
V4L2_PIX_FMT_RGB565X
,
.
btformat
=
BT848_COLOR_FMT_RGB16
,
.
btswap
=
0x03
,
/* byteswap */
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"24 bpp RGB, le"
,
palette:
VIDEO_PALETTE_RGB24
,
fourcc:
V4L2_PIX_FMT_BGR24
,
btformat:
BT848_COLOR_FMT_RGB24
,
depth:
24
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"24 bpp RGB, le"
,
.
palette
=
VIDEO_PALETTE_RGB24
,
.
fourcc
=
V4L2_PIX_FMT_BGR24
,
.
btformat
=
BT848_COLOR_FMT_RGB24
,
.
depth
=
24
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"32 bpp RGB, le"
,
palette:
VIDEO_PALETTE_RGB32
,
fourcc:
V4L2_PIX_FMT_BGR32
,
btformat:
BT848_COLOR_FMT_RGB32
,
depth:
32
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"32 bpp RGB, le"
,
.
palette
=
VIDEO_PALETTE_RGB32
,
.
fourcc
=
V4L2_PIX_FMT_BGR32
,
.
btformat
=
BT848_COLOR_FMT_RGB32
,
.
depth
=
32
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"32 bpp RGB, be"
,
palette:
-
1
,
fourcc:
V4L2_PIX_FMT_RGB32
,
btformat:
BT848_COLOR_FMT_RGB32
,
btswap:
0x0f
,
/* byte+word swap */
depth:
32
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"32 bpp RGB, be"
,
.
palette
=
-
1
,
.
fourcc
=
V4L2_PIX_FMT_RGB32
,
.
btformat
=
BT848_COLOR_FMT_RGB32
,
.
btswap
=
0x0f
,
/* byte+word swap */
.
depth
=
32
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"4:2:2, packed, YUYV"
,
palette:
VIDEO_PALETTE_YUV422
,
fourcc:
V4L2_PIX_FMT_YUYV
,
btformat:
BT848_COLOR_FMT_YUY2
,
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"4:2:2, packed, YUYV"
,
.
palette
=
VIDEO_PALETTE_YUV422
,
.
fourcc
=
V4L2_PIX_FMT_YUYV
,
.
btformat
=
BT848_COLOR_FMT_YUY2
,
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"4:2:2, packed, YUYV"
,
palette:
VIDEO_PALETTE_YUYV
,
fourcc:
V4L2_PIX_FMT_YUYV
,
btformat:
BT848_COLOR_FMT_YUY2
,
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"4:2:2, packed, YUYV"
,
.
palette
=
VIDEO_PALETTE_YUYV
,
.
fourcc
=
V4L2_PIX_FMT_YUYV
,
.
btformat
=
BT848_COLOR_FMT_YUY2
,
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"4:2:2, packed, UYVY"
,
palette:
VIDEO_PALETTE_UYVY
,
fourcc:
V4L2_PIX_FMT_UYVY
,
btformat:
BT848_COLOR_FMT_YUY2
,
btswap:
0x03
,
/* byteswap */
depth:
16
,
flags:
FORMAT_FLAGS_PACKED
,
.
name
=
"4:2:2, packed, UYVY"
,
.
palette
=
VIDEO_PALETTE_UYVY
,
.
fourcc
=
V4L2_PIX_FMT_UYVY
,
.
btformat
=
BT848_COLOR_FMT_YUY2
,
.
btswap
=
0x03
,
/* byteswap */
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PACKED
,
},{
name:
"4:2:2, planar, Y-Cb-Cr"
,
palette:
VIDEO_PALETTE_YUV422P
,
fourcc:
V4L2_PIX_FMT_YUV422P
,
btformat:
BT848_COLOR_FMT_YCrCb422
,
depth:
16
,
flags:
FORMAT_FLAGS_PLANAR
,
hshift:
1
,
vshift:
0
,
.
name
=
"4:2:2, planar, Y-Cb-Cr"
,
.
palette
=
VIDEO_PALETTE_YUV422P
,
.
fourcc
=
V4L2_PIX_FMT_YUV422P
,
.
btformat
=
BT848_COLOR_FMT_YCrCb422
,
.
depth
=
16
,
.
flags
=
FORMAT_FLAGS_PLANAR
,
.
hshift
=
1
,
.
vshift
=
0
,
},{
name:
"4:2:0, planar, Y-Cb-Cr"
,
palette:
VIDEO_PALETTE_YUV420P
,
fourcc:
V4L2_PIX_FMT_YUV420
,
btformat:
BT848_COLOR_FMT_YCrCb422
,
depth:
12
,
flags:
FORMAT_FLAGS_PLANAR
,
hshift:
1
,
vshift:
1
,
.
name
=
"4:2:0, planar, Y-Cb-Cr"
,
.
palette
=
VIDEO_PALETTE_YUV420P
,
.
fourcc
=
V4L2_PIX_FMT_YUV420
,
.
btformat
=
BT848_COLOR_FMT_YCrCb422
,
.
depth
=
12
,
.
flags
=
FORMAT_FLAGS_PLANAR
,
.
hshift
=
1
,
.
vshift
=
1
,
},{
name:
"4:2:0, planar, Y-Cr-Cb"
,
palette:
-
1
,
fourcc:
V4L2_PIX_FMT_YVU420
,
btformat:
BT848_COLOR_FMT_YCrCb422
,
depth:
12
,
flags:
FORMAT_FLAGS_PLANAR
|
FORMAT_FLAGS_CrCb
,
hshift:
1
,
vshift:
1
,
.
name
=
"4:2:0, planar, Y-Cr-Cb"
,
.
palette
=
-
1
,
.
fourcc
=
V4L2_PIX_FMT_YVU420
,
.
btformat
=
BT848_COLOR_FMT_YCrCb422
,
.
depth
=
12
,
.
flags
=
FORMAT_FLAGS_PLANAR
|
FORMAT_FLAGS_CrCb
,
.
hshift
=
1
,
.
vshift
=
1
,
},{
name:
"4:1:1, planar, Y-Cb-Cr"
,
palette:
VIDEO_PALETTE_YUV411P
,
fourcc:
V4L2_PIX_FMT_YUV411P
,
btformat:
BT848_COLOR_FMT_YCrCb411
,
depth:
12
,
flags:
FORMAT_FLAGS_PLANAR
,
hshift:
2
,
vshift:
0
,
.
name
=
"4:1:1, planar, Y-Cb-Cr"
,
.
palette
=
VIDEO_PALETTE_YUV411P
,
.
fourcc
=
V4L2_PIX_FMT_YUV411P
,
.
btformat
=
BT848_COLOR_FMT_YCrCb411
,
.
depth
=
12
,
.
flags
=
FORMAT_FLAGS_PLANAR
,
.
hshift
=
2
,
.
vshift
=
0
,
},{
name:
"4:1:0, planar, Y-Cb-Cr"
,
palette:
VIDEO_PALETTE_YUV410P
,
fourcc:
V4L2_PIX_FMT_YUV410
,
btformat:
BT848_COLOR_FMT_YCrCb411
,
depth:
9
,
flags:
FORMAT_FLAGS_PLANAR
,
hshift:
2
,
vshift:
2
,
.
name
=
"4:1:0, planar, Y-Cb-Cr"
,
.
palette
=
VIDEO_PALETTE_YUV410P
,
.
fourcc
=
V4L2_PIX_FMT_YUV410
,
.
btformat
=
BT848_COLOR_FMT_YCrCb411
,
.
depth
=
9
,
.
flags
=
FORMAT_FLAGS_PLANAR
,
.
hshift
=
2
,
.
vshift
=
2
,
},{
name:
"4:1:0, planar, Y-Cr-Cb"
,
palette:
-
1
,
fourcc:
V4L2_PIX_FMT_YVU410
,
btformat:
BT848_COLOR_FMT_YCrCb411
,
depth:
9
,
flags:
FORMAT_FLAGS_PLANAR
|
FORMAT_FLAGS_CrCb
,
hshift:
2
,
vshift:
2
,
.
name
=
"4:1:0, planar, Y-Cr-Cb"
,
.
palette
=
-
1
,
.
fourcc
=
V4L2_PIX_FMT_YVU410
,
.
btformat
=
BT848_COLOR_FMT_YCrCb411
,
.
depth
=
9
,
.
flags
=
FORMAT_FLAGS_PLANAR
|
FORMAT_FLAGS_CrCb
,
.
hshift
=
2
,
.
vshift
=
2
,
},{
name:
"raw scanlines"
,
palette:
VIDEO_PALETTE_RAW
,
fourcc:
-
1
,
btformat:
BT848_COLOR_FMT_RAW
,
depth:
8
,
flags:
FORMAT_FLAGS_RAW
,
.
name
=
"raw scanlines"
,
.
palette
=
VIDEO_PALETTE_RAW
,
.
fourcc
=
-
1
,
.
btformat
=
BT848_COLOR_FMT_RAW
,
.
depth
=
8
,
.
flags
=
FORMAT_FLAGS_RAW
,
}
};
const
int
BTTV_FORMATS
=
(
sizeof
(
bttv_formats
)
/
sizeof
(
struct
bttv_format
));
...
...
@@ -436,115 +436,115 @@ const int BTTV_FORMATS = (sizeof(bttv_formats)/sizeof(struct bttv_format));
#define V4L2_CID_PRIVATE_LASTP1 (V4L2_CID_PRIVATE_BASE + 5)
static
const
struct
v4l2_queryctrl
no_ctl
=
{
name:
"42"
,
flags:
V4L2_CTRL_FLAG_DISABLED
,
.
name
=
"42"
,
.
flags
=
V4L2_CTRL_FLAG_DISABLED
,
};
static
const
struct
v4l2_queryctrl
bttv_ctls
[]
=
{
/* --- video --- */
{
id:
V4L2_CID_BRIGHTNESS
,
name:
"Brightness"
,
minimum:
0
,
maximum:
65535
,
step:
256
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_BRIGHTNESS
,
.
name
=
"Brightness"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
256
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},{
id:
V4L2_CID_CONTRAST
,
name:
"Contrast"
,
minimum:
0
,
maximum:
65535
,
step:
128
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_CONTRAST
,
.
name
=
"Contrast"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
128
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},{
id:
V4L2_CID_SATURATION
,
name:
"Saturation"
,
minimum:
0
,
maximum:
65535
,
step:
128
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_SATURATION
,
.
name
=
"Saturation"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
128
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},{
id:
V4L2_CID_HUE
,
name:
"Hue"
,
minimum:
0
,
maximum:
65535
,
step:
256
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_HUE
,
.
name
=
"Hue"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
256
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},
/* --- audio --- */
{
id:
V4L2_CID_AUDIO_MUTE
,
name:
"Mute"
,
minimum:
0
,
maximum:
1
,
type:
V4L2_CTRL_TYPE_BOOLEAN
,
.
id
=
V4L2_CID_AUDIO_MUTE
,
.
name
=
"Mute"
,
.
minimum
=
0
,
.
maximum
=
1
,
.
type
=
V4L2_CTRL_TYPE_BOOLEAN
,
},{
id:
V4L2_CID_AUDIO_VOLUME
,
name:
"Volume"
,
minimum:
0
,
maximum:
65535
,
step:
65535
/
100
,
default_value:
65535
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_AUDIO_VOLUME
,
.
name
=
"Volume"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
65535
/
100
,
.
default_value
=
65535
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},{
id:
V4L2_CID_AUDIO_BALANCE
,
name:
"Balance"
,
minimum:
0
,
maximum:
65535
,
step:
65535
/
100
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_AUDIO_BALANCE
,
.
name
=
"Balance"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
65535
/
100
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},{
id:
V4L2_CID_AUDIO_BASS
,
name:
"Bass"
,
minimum:
0
,
maximum:
65535
,
step:
65535
/
100
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_AUDIO_BASS
,
.
name
=
"Bass"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
65535
/
100
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},{
id:
V4L2_CID_AUDIO_TREBLE
,
name:
"Treble"
,
minimum:
0
,
maximum:
65535
,
step:
65535
/
100
,
default_value:
32768
,
type:
V4L2_CTRL_TYPE_INTEGER
,
.
id
=
V4L2_CID_AUDIO_TREBLE
,
.
name
=
"Treble"
,
.
minimum
=
0
,
.
maximum
=
65535
,
.
step
=
65535
/
100
,
.
default_value
=
32768
,
.
type
=
V4L2_CTRL_TYPE_INTEGER
,
},
/* --- private --- */
{
id:
V4L2_CID_PRIVATE_CHROMA_AGC
,
name:
"chroma agc"
,
minimum:
0
,
maximum:
1
,
type:
V4L2_CTRL_TYPE_BOOLEAN
,
.
id
=
V4L2_CID_PRIVATE_CHROMA_AGC
,
.
name
=
"chroma agc"
,
.
minimum
=
0
,
.
maximum
=
1
,
.
type
=
V4L2_CTRL_TYPE_BOOLEAN
,
},{
id:
V4L2_CID_PRIVATE_COMBFILTER
,
name:
"combfilter"
,
minimum:
0
,
maximum:
1
,
type:
V4L2_CTRL_TYPE_BOOLEAN
,
.
id
=
V4L2_CID_PRIVATE_COMBFILTER
,
.
name
=
"combfilter"
,
.
minimum
=
0
,
.
maximum
=
1
,
.
type
=
V4L2_CTRL_TYPE_BOOLEAN
,
},{
id:
V4L2_CID_PRIVATE_AUTOMUTE
,
name:
"automute"
,
minimum:
0
,
maximum:
1
,
type:
V4L2_CTRL_TYPE_BOOLEAN
,
.
id
=
V4L2_CID_PRIVATE_AUTOMUTE
,
.
name
=
"automute"
,
.
minimum
=
0
,
.
maximum
=
1
,
.
type
=
V4L2_CTRL_TYPE_BOOLEAN
,
},{
id:
V4L2_CID_PRIVATE_LUMAFILTER
,
name:
"luma decimation filter"
,
minimum:
0
,
maximum:
1
,
type:
V4L2_CTRL_TYPE_BOOLEAN
,
.
id
=
V4L2_CID_PRIVATE_LUMAFILTER
,
.
name
=
"luma decimation filter"
,
.
minimum
=
0
,
.
maximum
=
1
,
.
type
=
V4L2_CTRL_TYPE_BOOLEAN
,
},{
id:
V4L2_CID_PRIVATE_AGC_CRUSH
,
name:
"agc crush"
,
minimum:
0
,
maximum:
1
,
type:
V4L2_CTRL_TYPE_BOOLEAN
,
.
id
=
V4L2_CID_PRIVATE_AGC_CRUSH
,
.
name
=
"agc crush"
,
.
minimum
=
0
,
.
maximum
=
1
,
.
type
=
V4L2_CTRL_TYPE_BOOLEAN
,
}
};
const
int
BTTV_CTLS
=
(
sizeof
(
bttv_ctls
)
/
sizeof
(
struct
v4l2_queryctrl
));
...
...
@@ -1314,10 +1314,10 @@ static void buffer_release(struct file *file, struct videobuf_buffer *vb)
}
static
struct
videobuf_queue_ops
bttv_video_qops
=
{
buf_setup:
buffer_setup
,
buf_prepare:
buffer_prepare
,
buf_queue:
buffer_queue
,
buf_release:
buffer_release
,
.
buf_setup
=
buffer_setup
,
.
buf_prepare
=
buffer_prepare
,
.
buf_queue
=
buffer_queue
,
.
buf_release
=
buffer_release
,
};
static
const
char
*
v4l1_ioctls
[]
=
{
...
...
@@ -2706,33 +2706,33 @@ bttv_mmap(struct file *file, struct vm_area_struct *vma)
static
struct
file_operations
bttv_fops
=
{
owner:
THIS_MODULE
,
open:
bttv_open
,
release:
bttv_release
,
ioctl:
bttv_ioctl
,
llseek:
no_llseek
,
read:
bttv_read
,
mmap:
bttv_mmap
,
poll:
bttv_poll
,
.
owner
=
THIS_MODULE
,
.
open
=
bttv_open
,
.
release
=
bttv_release
,
.
ioctl
=
bttv_ioctl
,
.
llseek
=
no_llseek
,
.
read
=
bttv_read
,
.
mmap
=
bttv_mmap
,
.
poll
=
bttv_poll
,
};
static
struct
video_device
bttv_video_template
=
{
name:
"UNSET"
,
type:
VID_TYPE_CAPTURE
|
VID_TYPE_TUNER
|
VID_TYPE_OVERLAY
|
.
name
=
"UNSET"
,
.
type
=
VID_TYPE_CAPTURE
|
VID_TYPE_TUNER
|
VID_TYPE_OVERLAY
|
VID_TYPE_CLIPPING
|
VID_TYPE_SCALES
,
hardware:
VID_HARDWARE_BT848
,
fops:
&
bttv_fops
,
minor:
-
1
,
.
hardware
=
VID_HARDWARE_BT848
,
.
fops
=
&
bttv_fops
,
.
minor
=
-
1
,
};
struct
video_device
bttv_vbi_template
=
{
name:
"bt848/878 vbi"
,
type:
VID_TYPE_TUNER
|
VID_TYPE_TELETEXT
,
hardware:
VID_HARDWARE_BT848
,
fops:
&
bttv_fops
,
minor:
-
1
,
.
name
=
"bt848/878 vbi"
,
.
type
=
VID_TYPE_TUNER
|
VID_TYPE_TELETEXT
,
.
hardware
=
VID_HARDWARE_BT848
,
.
fops
=
&
bttv_fops
,
.
minor
=
-
1
,
};
/* ----------------------------------------------------------------------- */
...
...
@@ -2841,20 +2841,20 @@ static int radio_ioctl(struct inode *inode, struct file *file,
static
struct
file_operations
radio_fops
=
{
owner:
THIS_MODULE
,
open:
radio_open
,
release:
radio_release
,
ioctl:
radio_ioctl
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
radio_open
,
.
release
=
radio_release
,
.
ioctl
=
radio_ioctl
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
radio_template
=
{
name:
"bt848/878 radio"
,
type:
VID_TYPE_TUNER
,
hardware:
VID_HARDWARE_BT848
,
fops:
&
radio_fops
,
minor:
-
1
,
.
name
=
"bt848/878 radio"
,
.
type
=
VID_TYPE_TUNER
,
.
hardware
=
VID_HARDWARE_BT848
,
.
fops
=
&
radio_fops
,
.
minor
=
-
1
,
};
/* ----------------------------------------------------------------------- */
...
...
@@ -3439,10 +3439,10 @@ static struct pci_device_id bttv_pci_tbl[] __devinitdata = {
MODULE_DEVICE_TABLE
(
pci
,
bttv_pci_tbl
);
static
struct
pci_driver
bttv_pci_driver
=
{
name:
"bttv"
,
id_table:
bttv_pci_tbl
,
probe:
bttv_probe
,
remove:
__devexit_p
(
bttv_remove
),
.
name
=
"bttv"
,
.
id_table
=
bttv_pci_tbl
,
.
probe
=
bttv_probe
,
.
remove
=
__devexit_p
(
bttv_remove
),
};
static
int
bttv_init_module
(
void
)
...
...
drivers/media/video/bttv-if.c
View file @
71029f06
...
...
@@ -262,27 +262,27 @@ void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg)
}
static
struct
i2c_algo_bit_data
bttv_i2c_algo_template
=
{
setsda:
bttv_bit_setsda
,
setscl:
bttv_bit_setscl
,
getsda:
bttv_bit_getsda
,
getscl:
bttv_bit_getscl
,
udelay:
16
,
mdelay:
10
,
timeout:
200
,
.
setsda
=
bttv_bit_setsda
,
.
setscl
=
bttv_bit_setscl
,
.
getsda
=
bttv_bit_getsda
,
.
getscl
=
bttv_bit_getscl
,
.
udelay
=
16
,
.
mdelay
=
10
,
.
timeout
=
200
,
};
static
struct
i2c_adapter
bttv_i2c_adap_template
=
{
name:
"bt848"
,
id:
I2C_HW_B_BT848
,
inc_use:
bttv_inc_use
,
dec_use:
bttv_dec_use
,
client_register:
attach_inform
,
client_unregister:
detach_inform
,
.
name
=
"bt848"
,
.
id
=
I2C_HW_B_BT848
,
.
inc_use
=
bttv_inc_use
,
.
dec_use
=
bttv_dec_use
,
.
client_register
=
attach_inform
,
.
client_unregister
=
detach_inform
,
};
static
struct
i2c_client
bttv_i2c_client_template
=
{
name:
"bttv internal use only"
,
id:
-
1
,
.
name
=
"bttv internal use only"
,
.
id
=
-
1
,
};
...
...
drivers/media/video/bttv-vbi.c
View file @
71029f06
...
...
@@ -123,10 +123,10 @@ static void vbi_buffer_release(struct file *file, struct videobuf_buffer *vb)
}
struct
videobuf_queue_ops
bttv_vbi_qops
=
{
buf_setup:
vbi_buffer_setup
,
buf_prepare:
vbi_buffer_prepare
,
buf_queue:
vbi_buffer_queue
,
buf_release:
vbi_buffer_release
,
.
buf_setup
=
vbi_buffer_setup
,
.
buf_prepare
=
vbi_buffer_prepare
,
.
buf_queue
=
vbi_buffer_queue
,
.
buf_release
=
vbi_buffer_release
,
};
/* ----------------------------------------------------------------------- */
...
...
drivers/media/video/bw-qcam.c
View file @
71029f06
...
...
@@ -885,20 +885,20 @@ static int qcam_read(struct file *file, char *buf,
}
static
struct
file_operations
qcam_fops
=
{
owner:
THIS_MODULE
,
open:
video_exclusive_open
,
release:
video_exclusive_release
,
ioctl:
qcam_ioctl
,
read:
qcam_read
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
video_exclusive_open
,
.
release
=
video_exclusive_release
,
.
ioctl
=
qcam_ioctl
,
.
read
=
qcam_read
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
qcam_template
=
{
owner:
THIS_MODULE
,
name:
"Connectix Quickcam"
,
type:
VID_TYPE_CAPTURE
,
hardware:
VID_HARDWARE_QCAM_BW
,
fops:
&
qcam_fops
,
.
owner
=
THIS_MODULE
,
.
name
=
"Connectix Quickcam"
,
.
type
=
VID_TYPE_CAPTURE
,
.
hardware
=
VID_HARDWARE_QCAM_BW
,
.
fops
=
&
qcam_fops
,
};
#define MAX_CAMS 4
...
...
drivers/media/video/c-qcam.c
View file @
71029f06
...
...
@@ -686,21 +686,21 @@ static int qcam_read(struct file *file, char *buf,
/* video device template */
static
struct
file_operations
qcam_fops
=
{
owner:
THIS_MODULE
,
open:
video_exclusive_open
,
release:
video_exclusive_release
,
ioctl:
qcam_ioctl
,
read:
qcam_read
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
video_exclusive_open
,
.
release
=
video_exclusive_release
,
.
ioctl
=
qcam_ioctl
,
.
read
=
qcam_read
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
qcam_template
=
{
owner:
THIS_MODULE
,
name:
"Colour QuickCam"
,
type:
VID_TYPE_CAPTURE
,
hardware:
VID_HARDWARE_QCAM_C
,
fops:
&
qcam_fops
,
.
owner
=
THIS_MODULE
,
.
name
=
"Colour QuickCam"
,
.
type
=
VID_TYPE_CAPTURE
,
.
hardware
=
VID_HARDWARE_QCAM_C
,
.
fops
=
&
qcam_fops
,
};
/* Initialize the QuickCam driver control structure. */
...
...
drivers/media/video/cpia.c
View file @
71029f06
...
...
@@ -3783,21 +3783,21 @@ static int cpia_mmap(struct file *file, struct vm_area_struct *vma)
}
static
struct
file_operations
cpia_fops
=
{
owner:
THIS_MODULE
,
open:
cpia_open
,
release:
cpia_close
,
read:
cpia_read
,
mmap:
cpia_mmap
,
ioctl:
cpia_ioctl
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
cpia_open
,
.
release
=
cpia_close
,
.
read
=
cpia_read
,
.
mmap
=
cpia_mmap
,
.
ioctl
=
cpia_ioctl
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
cpia_template
=
{
owner:
THIS_MODULE
,
name:
"CPiA Camera"
,
type:
VID_TYPE_CAPTURE
,
hardware:
VID_HARDWARE_CPIA
,
fops:
&
cpia_fops
,
.
owner
=
THIS_MODULE
,
.
name
=
"CPiA Camera"
,
.
type
=
VID_TYPE_CAPTURE
,
.
hardware
=
VID_HARDWARE_CPIA
,
.
fops
=
&
cpia_fops
,
};
/* initialise cam_data structure */
...
...
drivers/media/video/cpia_usb.c
View file @
71029f06
...
...
@@ -582,10 +582,10 @@ MODULE_LICENSE("GPL");
static
struct
usb_driver
cpia_driver
=
{
name:
"cpia"
,
probe:
cpia_probe
,
disconnect:
cpia_disconnect
,
id_table:
cpia_id_table
,
.
name
=
"cpia"
,
.
probe
=
cpia_probe
,
.
disconnect
=
cpia_disconnect
,
.
id_table
=
cpia_id_table
,
};
/* don't use dev, it may be NULL! (see usb_cpia_cleanup) */
...
...
drivers/media/video/msp3400.c
View file @
71029f06
...
...
@@ -1213,19 +1213,19 @@ static int msp_probe(struct i2c_adapter *adap);
static
int
msp_command
(
struct
i2c_client
*
client
,
unsigned
int
cmd
,
void
*
arg
);
static
struct
i2c_driver
driver
=
{
name:
"i2c msp3400
driver"
,
id:
I2C_DRIVERID_MSP3400
,
flags:
I2C_DF_NOTIFY
,
attach_adapter:
msp_probe
,
detach_client:
msp_detach
,
command:
msp_command
,
.
name
=
"i2cmsp3400
driver"
,
.
id
=
I2C_DRIVERID_MSP3400
,
.
flags
=
I2C_DF_NOTIFY
,
.
attach_adapter
=
msp_probe
,
.
detach_client
=
msp_detach
,
.
command
=
msp_command
,
};
static
struct
i2c_client
client_template
=
{
name:
"(unset)"
,
flags:
I2C_CLIENT_ALLOW_USE
,
driver:
&
driver
,
.
name
=
"(unset)"
,
.
flags
=
I2C_CLIENT_ALLOW_USE
,
.
driver
=
&
driver
,
};
static
int
msp_attach
(
struct
i2c_adapter
*
adap
,
int
addr
,
...
...
drivers/media/video/planb.c
View file @
71029f06
...
...
@@ -2020,16 +2020,16 @@ static int planb_mmap(struct vm_area_struct *vma, struct video_device *dev, cons
static
struct
video_device
planb_template
=
{
owner:
THIS_MODULE
,
name:
PLANB_DEVICE_NAME
,
type:
VID_TYPE_OVERLAY
,
hardware:
VID_HARDWARE_PLANB
,
open:
planb_open
,
close:
planb_close
,
read:
planb_read
,
write:
planb_write
,
ioctl:
planb_ioctl
,
mmap:
planb_mmap
,
/* mmap? */
.
owner
=
THIS_MODULE
,
.
name
=
PLANB_DEVICE_NAME
,
.
type
=
VID_TYPE_OVERLAY
,
.
hardware
=
VID_HARDWARE_PLANB
,
.
open
=
planb_open
,
.
close
=
planb_close
,
.
read
=
planb_read
,
.
write
=
planb_write
,
.
ioctl
=
planb_ioctl
,
.
mmap
=
planb_mmap
,
/* mmap? */
};
static
int
init_planb
(
struct
planb
*
pb
)
...
...
drivers/media/video/pms.c
View file @
71029f06
...
...
@@ -875,21 +875,21 @@ static int pms_read(struct file *file, char *buf,
}
static
struct
file_operations
pms_fops
=
{
owner:
THIS_MODULE
,
open:
video_exclusive_open
,
release:
video_exclusive_release
,
ioctl:
pms_ioctl
,
read:
pms_read
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
video_exclusive_open
,
.
release
=
video_exclusive_release
,
.
ioctl
=
pms_ioctl
,
.
read
=
pms_read
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
pms_template
=
{
owner:
THIS_MODULE
,
name:
"Mediavision PMS"
,
type:
VID_TYPE_CAPTURE
,
hardware:
VID_HARDWARE_PMS
,
fops:
&
pms_fops
,
.
owner
=
THIS_MODULE
,
.
name
=
"Mediavision PMS"
,
.
type
=
VID_TYPE_CAPTURE
,
.
hardware
=
VID_HARDWARE_PMS
,
.
fops
=
&
pms_fops
,
};
struct
pms_device
pms_device
;
...
...
drivers/media/video/saa5249.c
View file @
71029f06
...
...
@@ -678,20 +678,20 @@ module_init(init_saa_5249);
module_exit
(
cleanup_saa_5249
);
static
struct
file_operations
saa_fops
=
{
owner:
THIS_MODULE
,
open:
saa5249_open
,
release:
saa5249_release
,
ioctl:
saa5249_ioctl
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
saa5249_open
,
.
release
=
saa5249_release
,
.
ioctl
=
saa5249_ioctl
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
saa_template
=
{
owner:
THIS_MODULE
,
name:
IF_NAME
,
type:
VID_TYPE_TELETEXT
,
/*| VID_TYPE_TUNER ?? */
hardware:
VID_HARDWARE_SAA5249
,
fops:
&
saa_fops
,
.
owner
=
THIS_MODULE
,
.
name
=
IF_NAME
,
.
type
=
VID_TYPE_TELETEXT
,
/*| VID_TYPE_TUNER ?? */
.
hardware
=
VID_HARDWARE_SAA5249
,
.
fops
=
&
saa_fops
,
};
MODULE_LICENSE
(
"GPL"
);
drivers/media/video/stradis.c
View file @
71029f06
...
...
@@ -1970,16 +1970,16 @@ static void saa_close(struct video_device *dev)
/* template for video_device-structure */
static
struct
video_device
saa_template
=
{
owner:
THIS_MODULE
,
name:
"SAA7146A"
,
type:
VID_TYPE_CAPTURE
|
VID_TYPE_OVERLAY
,
hardware:
VID_HARDWARE_SAA7146
,
open:
saa_open
,
close:
saa_close
,
read:
saa_read
,
write:
saa_write
,
ioctl:
saa_ioctl
,
mmap:
saa_mmap
,
.
owner
=
THIS_MODULE
,
.
name
=
"SAA7146A"
,
.
type
=
VID_TYPE_CAPTURE
|
VID_TYPE_OVERLAY
,
.
hardware
=
VID_HARDWARE_SAA7146
,
.
open
=
saa_open
,
.
close
=
saa_close
,
.
read
=
saa_read
,
.
write
=
saa_write
,
.
ioctl
=
saa_ioctl
,
.
mmap
=
saa_mmap
,
};
static
int
configure_saa7146
(
struct
pci_dev
*
dev
,
int
num
)
...
...
drivers/media/video/tuner.c
View file @
71029f06
...
...
@@ -975,18 +975,18 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
/* ----------------------------------------------------------------------- */
static
struct
i2c_driver
driver
=
{
name:
"i2c TV tuner
driver"
,
id:
I2C_DRIVERID_TUNER
,
flags:
I2C_DF_NOTIFY
,
attach_adapter:
tuner_probe
,
detach_client:
tuner_detach
,
command:
tuner_command
,
.
name
=
"i2cTVtuner
driver"
,
.
id
=
I2C_DRIVERID_TUNER
,
.
flags
=
I2C_DF_NOTIFY
,
.
attach_adapter
=
tuner_probe
,
.
detach_client
=
tuner_detach
,
.
command
=
tuner_command
,
};
static
struct
i2c_client
client_template
=
static
struct
i2c_clientclient_template
=
{
name:
"(tuner
unset)"
,
flags:
I2C_CLIENT_ALLOW_USE
,
driver:
&
driver
,
.
name
=
"(tuner
unset)"
,
.
flags
=
I2C_CLIENT_ALLOW_USE
,
.
driver
=
&
driver
,
};
static
int
tuner_init_module
(
void
)
...
...
drivers/media/video/tvaudio.c
View file @
71029f06
...
...
@@ -1156,167 +1156,167 @@ MODULE_PARM(pic16c54,"i");
static
struct
CHIPDESC
chiplist
[]
=
{
{
name:
"tda9840"
,
id:
I2C_DRIVERID_TDA9840
,
insmodopt:
&
tda9840
,
addr_lo:
I2C_TDA9840
>>
1
,
addr_hi:
I2C_TDA9840
>>
1
,
registers:
5
,
getmode:
tda9840_getmode
,
setmode:
tda9840_setmode
,
checkmode:
generic_checkmode
,
init:
{
2
,
{
TDA9840_TEST
,
TDA9840_TEST_INT1SN
.
name
=
"tda9840"
,
.
id
=
I2C_DRIVERID_TDA9840
,
.
insmodopt
=
&
tda9840
,
.
addr_lo
=
I2C_TDA9840
>>
1
,
.
addr_hi
=
I2C_TDA9840
>>
1
,
.
registers
=
5
,
.
getmode
=
tda9840_getmode
,
.
setmode
=
tda9840_setmode
,
.
checkmode
=
generic_checkmode
,
.
init
=
{
2
,
{
TDA9840_TEST
,
TDA9840_TEST_INT1SN
/* ,TDA9840_SW, TDA9840_MONO */
}
}
},
{
name:
"tda9873h"
,
id:
I2C_DRIVERID_TDA9873
,
checkit:
tda9873_checkit
,
insmodopt:
&
tda9873
,
addr_lo:
I2C_TDA985x_L
>>
1
,
addr_hi:
I2C_TDA985x_H
>>
1
,
registers:
3
,
flags:
CHIP_HAS_INPUTSEL
,
getmode:
tda9873_getmode
,
setmode:
tda9873_setmode
,
checkmode:
generic_checkmode
,
init:
{
4
,
{
TDA9873_SW
,
0xa4
,
0x06
,
0x03
}
},
inputreg:
TDA9873_SW
,
inputmute:
TDA9873_MUTE
|
TDA9873_AUTOMUTE
,
inputmap:
{
0xa0
,
0xa2
,
0xa0
,
0xa0
,
0xc0
},
inputmask:
TDA9873_INP_MASK
|
TDA9873_MUTE
|
TDA9873_AUTOMUTE
.
name
=
"tda9873h"
,
.
id
=
I2C_DRIVERID_TDA9873
,
.
checkit
=
tda9873_checkit
,
.
insmodopt
=
&
tda9873
,
.
addr_lo
=
I2C_TDA985x_L
>>
1
,
.
addr_hi
=
I2C_TDA985x_H
>>
1
,
.
registers
=
3
,
.
flags
=
CHIP_HAS_INPUTSEL
,
.
getmode
=
tda9873_getmode
,
.
setmode
=
tda9873_setmode
,
.
checkmode
=
generic_checkmode
,
.
init
=
{
4
,
{
TDA9873_SW
,
0xa4
,
0x06
,
0x03
}
},
.
inputreg
=
TDA9873_SW
,
.
inputmute
=
TDA9873_MUTE
|
TDA9873_AUTOMUTE
,
.
inputmap
=
{
0xa0
,
0xa2
,
0xa0
,
0xa0
,
0xc0
},
.
inputmask
=
TDA9873_INP_MASK
|
TDA9873_MUTE
|
TDA9873_AUTOMUTE
},
{
name:
"tda9874h/a"
,
id:
I2C_DRIVERID_TDA9874
,
checkit:
tda9874a_checkit
,
initialize:
tda9874a_initialize
,
insmodopt:
&
tda9874a
,
addr_lo:
I2C_TDA9874
>>
1
,
addr_hi:
I2C_TDA9874
>>
1
,
getmode:
tda9874a_getmode
,
setmode:
tda9874a_setmode
,
checkmode:
generic_checkmode
,
.
name
=
"tda9874h/a"
,
.
id
=
I2C_DRIVERID_TDA9874
,
.
checkit
=
tda9874a_checkit
,
.
initialize
=
tda9874a_initialize
,
.
insmodopt
=
&
tda9874a
,
.
addr_lo
=
I2C_TDA9874
>>
1
,
.
addr_hi
=
I2C_TDA9874
>>
1
,
.
getmode
=
tda9874a_getmode
,
.
setmode
=
tda9874a_setmode
,
.
checkmode
=
generic_checkmode
,
},
{
name:
"tda9850"
,
id:
I2C_DRIVERID_TDA9850
,
insmodopt:
&
tda9850
,
addr_lo:
I2C_TDA985x_L
>>
1
,
addr_hi:
I2C_TDA985x_H
>>
1
,
registers:
11
,
.
name
=
"tda9850"
,
.
id
=
I2C_DRIVERID_TDA9850
,
.
insmodopt
=
&
tda9850
,
.
addr_lo
=
I2C_TDA985x_L
>>
1
,
.
addr_hi
=
I2C_TDA985x_H
>>
1
,
.
registers
=
11
,
getmode:
tda985x_getmode
,
setmode:
tda985x_setmode
,
.
getmode
=
tda985x_getmode
,
.
setmode
=
tda985x_setmode
,
init:
{
8
,
{
TDA9850_C4
,
0x08
,
0x08
,
TDA985x_STEREO
,
0x07
,
0x10
,
0x10
,
0x03
}
}
.
init
=
{
8
,
{
TDA9850_C4
,
0x08
,
0x08
,
TDA985x_STEREO
,
0x07
,
0x10
,
0x10
,
0x03
}
}
},
{
name:
"tda9855"
,
id:
I2C_DRIVERID_TDA9855
,
insmodopt:
&
tda9855
,
addr_lo:
I2C_TDA985x_L
>>
1
,
addr_hi:
I2C_TDA985x_H
>>
1
,
registers:
11
,
flags:
CHIP_HAS_VOLUME
|
CHIP_HAS_BASSTREBLE
,
leftreg:
TDA9855_VL
,
rightreg:
TDA9855_VR
,
bassreg:
TDA9855_BA
,
treblereg:
TDA9855_TR
,
volfunc:
tda9855_volume
,
bassfunc:
tda9855_bass
,
treblefunc:
tda9855_treble
,
getmode:
tda985x_getmode
,
setmode:
tda985x_setmode
,
init:
{
12
,
{
0
,
0x6f
,
0x6f
,
0x0e
,
0x07
<<
1
,
0x8
<<
2
,
.
name
=
"tda9855"
,
.
id
=
I2C_DRIVERID_TDA9855
,
.
insmodopt
=
&
tda9855
,
.
addr_lo
=
I2C_TDA985x_L
>>
1
,
.
addr_hi
=
I2C_TDA985x_H
>>
1
,
.
registers
=
11
,
.
flags
=
CHIP_HAS_VOLUME
|
CHIP_HAS_BASSTREBLE
,
.
leftreg
=
TDA9855_VL
,
.
rightreg
=
TDA9855_VR
,
.
bassreg
=
TDA9855_BA
,
.
treblereg
=
TDA9855_TR
,
.
volfunc
=
tda9855_volume
,
.
bassfunc
=
tda9855_bass
,
.
treblefunc
=
tda9855_treble
,
.
getmode
=
tda985x_getmode
,
.
setmode
=
tda985x_setmode
,
.
init
=
{
12
,
{
0
,
0x6f
,
0x6f
,
0x0e
,
0x07
<<
1
,
0x8
<<
2
,
TDA9855_MUTE
|
TDA9855_AVL
|
TDA9855_LOUD
|
TDA9855_INT
,
TDA985x_STEREO
|
TDA9855_LINEAR
|
TDA9855_TZCM
|
TDA9855_VZCM
,
0x07
,
0x10
,
0x10
,
0x03
}}
},
{
name:
"tea6300"
,
id:
I2C_DRIVERID_TEA6300
,
insmodopt:
&
tea6300
,
addr_lo:
I2C_TEA6300
>>
1
,
addr_hi:
I2C_TEA6300
>>
1
,
registers:
6
,
flags:
CHIP_HAS_VOLUME
|
CHIP_HAS_BASSTREBLE
|
CHIP_HAS_INPUTSEL
,
leftreg:
TEA6300_VR
,
rightreg:
TEA6300_VL
,
bassreg:
TEA6300_BA
,
treblereg:
TEA6300_TR
,
volfunc:
tea6300_shift10
,
bassfunc:
tea6300_shift12
,
treblefunc:
tea6300_shift12
,
inputreg:
TEA6300_S
,
inputmap:
{
TEA6300_S_SA
,
TEA6300_S_SB
,
TEA6300_S_SC
},
inputmute:
TEA6300_S_GMU
,
.
name
=
"tea6300"
,
.
id
=
I2C_DRIVERID_TEA6300
,
.
insmodopt
=
&
tea6300
,
.
addr_lo
=
I2C_TEA6300
>>
1
,
.
addr_hi
=
I2C_TEA6300
>>
1
,
.
registers
=
6
,
.
flags
=
CHIP_HAS_VOLUME
|
CHIP_HAS_BASSTREBLE
|
CHIP_HAS_INPUTSEL
,
.
leftreg
=
TEA6300_VR
,
.
rightreg
=
TEA6300_VL
,
.
bassreg
=
TEA6300_BA
,
.
treblereg
=
TEA6300_TR
,
.
volfunc
=
tea6300_shift10
,
.
bassfunc
=
tea6300_shift12
,
.
treblefunc
=
tea6300_shift12
,
.
inputreg
=
TEA6300_S
,
.
inputmap
=
{
TEA6300_S_SA
,
TEA6300_S_SB
,
TEA6300_S_SC
},
.
inputmute
=
TEA6300_S_GMU
,
},
{
name:
"tea6420"
,
id:
I2C_DRIVERID_TEA6420
,
insmodopt:
&
tea6420
,
addr_lo:
I2C_TEA6420
>>
1
,
addr_hi:
I2C_TEA6420
>>
1
,
registers:
1
,
flags:
CHIP_HAS_INPUTSEL
,
inputreg:
-
1
,
inputmap:
{
TEA6420_S_SA
,
TEA6420_S_SB
,
TEA6420_S_SC
},
inputmute:
TEA6300_S_GMU
,
.
name
=
"tea6420"
,
.
id
=
I2C_DRIVERID_TEA6420
,
.
insmodopt
=
&
tea6420
,
.
addr_lo
=
I2C_TEA6420
>>
1
,
.
addr_hi
=
I2C_TEA6420
>>
1
,
.
registers
=
1
,
.
flags
=
CHIP_HAS_INPUTSEL
,
.
inputreg
=
-
1
,
.
inputmap
=
{
TEA6420_S_SA
,
TEA6420_S_SB
,
TEA6420_S_SC
},
.
inputmute
=
TEA6300_S_GMU
,
},
{
name:
"tda8425"
,
id:
I2C_DRIVERID_TDA8425
,
insmodopt:
&
tda8425
,
addr_lo:
I2C_TDA8425
>>
1
,
addr_hi:
I2C_TDA8425
>>
1
,
registers:
9
,
flags:
CHIP_HAS_VOLUME
|
CHIP_HAS_BASSTREBLE
|
CHIP_HAS_INPUTSEL
,
leftreg:
TDA8425_VR
,
rightreg:
TDA8425_VL
,
bassreg:
TDA8425_BA
,
treblereg:
TDA8425_TR
,
volfunc:
tda8425_shift10
,
bassfunc:
tda8425_shift12
,
treblefunc:
tda8425_shift12
,
inputreg:
TDA8425_S1
,
inputmap:
{
TDA8425_S1_CH1
,
TDA8425_S1_CH1
,
TDA8425_S1_CH1
},
inputmute:
TDA8425_S1_OFF
,
setmode:
tda8425_setmode
,
.
name
=
"tda8425"
,
.
id
=
I2C_DRIVERID_TDA8425
,
.
insmodopt
=
&
tda8425
,
.
addr_lo
=
I2C_TDA8425
>>
1
,
.
addr_hi
=
I2C_TDA8425
>>
1
,
.
registers
=
9
,
.
flags
=
CHIP_HAS_VOLUME
|
CHIP_HAS_BASSTREBLE
|
CHIP_HAS_INPUTSEL
,
.
leftreg
=
TDA8425_VR
,
.
rightreg
=
TDA8425_VL
,
.
bassreg
=
TDA8425_BA
,
.
treblereg
=
TDA8425_TR
,
.
volfunc
=
tda8425_shift10
,
.
bassfunc
=
tda8425_shift12
,
.
treblefunc
=
tda8425_shift12
,
.
inputreg
=
TDA8425_S1
,
.
inputmap
=
{
TDA8425_S1_CH1
,
TDA8425_S1_CH1
,
TDA8425_S1_CH1
},
.
inputmute
=
TDA8425_S1_OFF
,
.
setmode
=
tda8425_setmode
,
},
{
name:
"pic16c54 (PV951)"
,
id:
I2C_DRIVERID_PIC16C54_PV951
,
insmodopt:
&
pic16c54
,
addr_lo:
I2C_PIC16C54
>>
1
,
addr_hi:
I2C_PIC16C54
>>
1
,
registers:
2
,
flags:
CHIP_HAS_INPUTSEL
,
inputreg:
PIC16C54_REG_MISC
,
inputmap:
{
PIC16C54_MISC_SND_NOTMUTE
|
PIC16C54_MISC_SWITCH_TUNER
,
.
name
=
"pic16c54 (PV951)"
,
.
id
=
I2C_DRIVERID_PIC16C54_PV951
,
.
insmodopt
=
&
pic16c54
,
.
addr_lo
=
I2C_PIC16C54
>>
1
,
.
addr_hi
=
I2C_PIC16C54
>>
1
,
.
registers
=
2
,
.
flags
=
CHIP_HAS_INPUTSEL
,
.
inputreg
=
PIC16C54_REG_MISC
,
.
inputmap
=
{
PIC16C54_MISC_SND_NOTMUTE
|
PIC16C54_MISC_SWITCH_TUNER
,
PIC16C54_MISC_SND_NOTMUTE
|
PIC16C54_MISC_SWITCH_LINE
,
PIC16C54_MISC_SND_NOTMUTE
|
PIC16C54_MISC_SWITCH_LINE
,
PIC16C54_MISC_SND_MUTE
,
PIC16C54_MISC_SND_MUTE
,
PIC16C54_MISC_SND_NOTMUTE
},
inputmute:
PIC16C54_MISC_SND_MUTE
,
.
inputmute
=
PIC16C54_MISC_SND_MUTE
,
},
{
name
:
NULL
}
/* EOF */
{
.
name
=
NULL
}
/* EOF */
};
...
...
@@ -1544,19 +1544,19 @@ static int chip_command(struct i2c_client *client,
static
struct
i2c_driver
driver
=
{
name:
"generic i2c audio driver"
,
id:
I2C_DRIVERID_TVAUDIO
,
flags:
I2C_DF_NOTIFY
,
attach_adapter:
chip_probe
,
detach_client:
chip_detach
,
command:
chip_command
,
.
name
=
"generic i2c audio driver"
,
.
id
=
I2C_DRIVERID_TVAUDIO
,
.
flags
=
I2C_DF_NOTIFY
,
.
attach_adapter
=
chip_probe
,
.
detach_client
=
chip_detach
,
.
command
=
chip_command
,
};
static
struct
i2c_client
client_template
=
{
name:
"(unset)"
,
flags:
I2C_CLIENT_ALLOW_USE
,
driver:
&
driver
,
.
name
=
"(unset)"
,
.
flags
=
I2C_CLIENT_ALLOW_USE
,
.
driver
=
&
driver
,
};
static
int
audiochip_init_module
(
void
)
...
...
drivers/media/video/tvmixer.c
View file @
71029f06
...
...
@@ -217,19 +217,19 @@ static int tvmixer_release(struct inode *inode, struct file *file)
static
struct
i2c_driver
driver
=
{
name:
"tv card mixer driver"
,
id:
I2C_DRIVERID_TVMIXER
,
flags:
I2C_DF_DUMMY
,
attach_adapter:
tvmixer_adapters
,
detach_client:
tvmixer_clients
,
.
name
=
"tv card mixer driver"
,
.
id
=
I2C_DRIVERID_TVMIXER
,
.
flags
=
I2C_DF_DUMMY
,
.
attach_adapter
=
tvmixer_adapters
,
.
detach_client
=
tvmixer_clients
,
};
static
struct
file_operations
tvmixer_fops
=
{
owner:
THIS_MODULE
,
llseek:
no_llseek
,
ioctl:
tvmixer_ioctl
,
open:
tvmixer_open
,
release:
tvmixer_release
,
.
owner
=
THIS_MODULE
,
.
llseek
=
no_llseek
,
.
ioctl
=
tvmixer_ioctl
,
.
open
=
tvmixer_open
,
.
release
=
tvmixer_release
,
};
/* ----------------------------------------------------------------------- */
...
...
drivers/media/video/video-buf.c
View file @
71029f06
...
...
@@ -926,9 +926,9 @@ videobuf_vm_nopage(struct vm_area_struct *vma, unsigned long vaddr,
static
struct
vm_operations_struct
videobuf_vm_ops
=
{
open:
videobuf_vm_open
,
close:
videobuf_vm_close
,
nopage:
videobuf_vm_nopage
,
.
open
=
videobuf_vm_open
,
.
close
=
videobuf_vm_close
,
.
nopage
=
videobuf_vm_nopage
,
};
int
videobuf_mmap_setup
(
struct
file
*
file
,
struct
videobuf_queue
*
q
,
...
...
drivers/media/video/videodev.c
View file @
71029f06
...
...
@@ -472,9 +472,9 @@ void video_unregister_device(struct video_device *vfd)
static
struct
file_operations
video_fops
=
{
owner:
THIS_MODULE
,
llseek:
no_llseek
,
open:
video_open
,
.
owner
=
THIS_MODULE
,
.
llseek
=
no_llseek
,
.
open
=
video_open
,
};
/*
...
...
drivers/media/video/vino.c
View file @
71029f06
...
...
@@ -222,14 +222,14 @@ static int vino_mmap(struct video_device *dev, const char *adr,
}
static
struct
video_device
vino_dev
=
{
owner:
THIS_MODULE
,
name:
"Vino IndyCam/TV"
,
type:
VID_TYPE_CAPTURE
,
hardware:
VID_HARDWARE_VINO
,
open:
vino_open
,
close:
vino_close
,
ioctl:
vino_ioctl
,
mmap:
vino_mmap
,
.
owner
=
THIS_MODULE
,
.
name
=
"Vino IndyCam/TV"
,
.
type
=
VID_TYPE_CAPTURE
,
.
hardware
=
VID_HARDWARE_VINO
,
.
open
=
vino_open
,
.
close
=
vino_close
,
.
ioctl
=
vino_ioctl
,
.
mmap
=
vino_mmap
,
};
int
__init
init_vino
(
struct
video_device
*
dev
)
...
...
drivers/media/video/w9966.c
View file @
71029f06
...
...
@@ -179,19 +179,19 @@ static int w9966_v4l_read(struct file *file, char *buf,
size_t
count
,
loff_t
*
ppos
);
static
struct
file_operations
w9966_fops
=
{
owner:
THIS_MODULE
,
open:
video_exclusive_open
,
release:
video_exclusive_release
,
ioctl:
w9966_v4l_ioctl
,
read:
w9966_v4l_read
,
llseek:
no_llseek
,
.
owner
=
THIS_MODULE
,
.
open
=
video_exclusive_open
,
.
release
=
video_exclusive_release
,
.
ioctl
=
w9966_v4l_ioctl
,
.
read
=
w9966_v4l_read
,
.
llseek
=
no_llseek
,
};
static
struct
video_device
w9966_template
=
{
owner:
THIS_MODULE
,
name:
W9966_DRIVERNAME
,
type:
VID_TYPE_CAPTURE
|
VID_TYPE_SCALES
,
hardware:
VID_HARDWARE_W9966
,
fops:
&
w9966_fops
,
.
owner
=
THIS_MODULE
,
.
name
=
W9966_DRIVERNAME
,
.
type
=
VID_TYPE_CAPTURE
|
VID_TYPE_SCALES
,
.
hardware
=
VID_HARDWARE_W9966
,
.
fops
=
&
w9966_fops
,
};
/*
...
...
@@ -710,14 +710,13 @@ static int w9966_v4l_do_ioctl(struct inode *inode, struct file *file,
case
VIDIOCGCAP
:
{
static
struct
video_capability
vcap
=
{
name:
W9966_DRIVERNAME
,
type:
VID_TYPE_CAPTURE
|
VID_TYPE_SCALES
,
channels:
1
,
audios:
0
,
maxwidth:
W9966_WND_MAX_W
,
maxheight:
W9966_WND_MAX_H
,
minwidth:
2
,
minheight:
1
,
.
name
=
W9966_DRIVERNAME
,
.
type
=
VID_TYPE_CAPTURE
|
VID_TYPE_SCALES
,
.
channels
=
1
,
.
maxwidth
=
W9966_WND_MAX_W
,
.
maxheight
=
W9966_WND_MAX_H
,
.
minwidth
=
2
,
.
minheight
=
1
,
};
struct
video_capability
*
cap
=
arg
;
*
cap
=
vcap
;
...
...
drivers/media/video/zr36067.c
View file @
71029f06
...
...
@@ -4396,18 +4396,18 @@ static int zoran_init_done(struct video_device *dev)
}
static
struct
video_device
zoran_template
=
{
owner:
THIS_MODULE
,
name:
ZORAN_NAME
,
type:
VID_TYPE_CAPTURE
|
VID_TYPE_OVERLAY
|
VID_TYPE_CLIPPING
|
.
owner
=
THIS_MODULE
,
.
name
=
ZORAN_NAME
,
.
type
=
VID_TYPE_CAPTURE
|
VID_TYPE_OVERLAY
|
VID_TYPE_CLIPPING
|
VID_TYPE_FRAMERAM
|
VID_TYPE_SCALES
|
VID_TYPE_SUBCAPTURE
,
hardware:
ZORAN_HARDWARE
,
open:
zoran_open
,
close:
zoran_close
,
read:
zoran_read
,
write:
zoran_write
,
ioctl:
zoran_ioctl
,
mmap:
zoran_mmap
,
initialize:
zoran_init_done
,
.
hardware
=
ZORAN_HARDWARE
,
.
open
=
zoran_open
,
.
close
=
zoran_close
,
.
read
=
zoran_read
,
.
write
=
zoran_write
,
.
ioctl
=
zoran_ioctl
,
.
mmap
=
zoran_mmap
,
.
initialize
=
zoran_init_done
,
};
/*
...
...
drivers/media/video/zr36120.c
View file @
71029f06
...
...
@@ -1490,18 +1490,18 @@ int zoran_mmap(struct vm_area_struct *vma, struct video_device* dev, const char*
static
struct
video_device
zr36120_template
=
{
owner:
THIS_MODULE
,
name:
"UNSET"
,
type:
VID_TYPE_TUNER
|
VID_TYPE_CAPTURE
|
VID_TYPE_OVERLAY
,
hardware:
VID_HARDWARE_ZR36120
,
open:
zoran_open
,
close:
zoran_close
,
read:
zoran_read
,
write:
zoran_write
,
poll:
zoran_poll
,
ioctl:
zoran_ioctl
,
mmap:
zoran_mmap
,
minor:
-
1
,
.
owner
=
THIS_MODULE
,
.
name
=
"UNSET"
,
.
type
=
VID_TYPE_TUNER
|
VID_TYPE_CAPTURE
|
VID_TYPE_OVERLAY
,
.
hardware
=
VID_HARDWARE_ZR36120
,
.
open
=
zoran_open
,
.
close
=
zoran_close
,
.
read
=
zoran_read
,
.
write
=
zoran_write
,
.
poll
=
zoran_poll
,
.
ioctl
=
zoran_ioctl
,
.
mmap
=
zoran_mmap
,
.
minor
=
-
1
,
};
static
...
...
@@ -1826,17 +1826,17 @@ int vbi_ioctl(struct video_device *dev, unsigned int cmd, void *arg)
static
struct
video_device
vbi_template
=
{
owner:
THIS_MODULE
,
name:
"UNSET"
,
type:
VID_TYPE_CAPTURE
|
VID_TYPE_TELETEXT
,
hardware:
VID_HARDWARE_ZR36120
,
open:
vbi_open
,
close:
vbi_close
,
read:
vbi_read
,
write:
zoran_write
,
poll:
vbi_poll
,
ioctl:
vbi_ioctl
,
minor:
-
1
,
.
owner
=
THIS_MODULE
,
.
name
=
"UNSET"
,
.
type
=
VID_TYPE_CAPTURE
|
VID_TYPE_TELETEXT
,
.
hardware
=
VID_HARDWARE_ZR36120
,
.
open
=
vbi_open
,
.
close
=
vbi_close
,
.
read
=
vbi_read
,
.
write
=
zoran_write
,
.
poll
=
vbi_poll
,
.
ioctl
=
vbi_ioctl
,
.
minor
=
-
1
,
};
/*
...
...
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