git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge to kernel-2.6.20-1.2949.fc6.vs2.2.0.1
[linux-2.6.git]
/
drivers
/
media
/
video
/
bt8xx
/
bttv-cards.c
diff --git
a/drivers/media/video/bttv-cards.c
b/drivers/media/video/bt8xx/bttv-cards.c
similarity index 94%
rename from
drivers/media/video/bttv-cards.c
rename to
drivers/media/video/bt8xx/bttv-cards.c
index
9749d6e
..
21ebe8f
100644
(file)
--- a/
drivers/media/video/bttv-cards.c
+++ b/
drivers/media/video/bt8xx/bttv-cards.c
@@
-25,7
+25,6
@@
*/
*/
-#include <linux/config.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
@@
-39,6
+38,7
@@
#include "bttvp.h"
#include <media/v4l2-common.h>
#include "bttvp.h"
#include <media/v4l2-common.h>
+#include <media/tvaudio.h>
/* fwd decl */
static void boot_msp34xx(struct bttv *btv, int pin);
/* fwd decl */
static void boot_msp34xx(struct bttv *btv, int pin);
@@
-137,6
+137,8
@@
MODULE_PARM_DESC(card,"specify TV/grabber card model, see CARDLIST file for a li
MODULE_PARM_DESC(pll,"specify installed crystal (0=none, 28=28 MHz, 35=35 MHz)");
MODULE_PARM_DESC(tuner,"specify installed tuner type");
MODULE_PARM_DESC(autoload,"automatically load i2c modules like tuner.o, default is 1 (yes)");
MODULE_PARM_DESC(pll,"specify installed crystal (0=none, 28=28 MHz, 35=35 MHz)");
MODULE_PARM_DESC(tuner,"specify installed tuner type");
MODULE_PARM_DESC(autoload,"automatically load i2c modules like tuner.o, default is 1 (yes)");
+MODULE_PARM_DESC(no_overlay,"allow override overlay default (0 disables, 1 enables)"
+ " [some VIA/SIS chipsets are known to have problem with overlay]");
/* ----------------------------------------------------------------------- */
/* list of card IDs for bt878+ cards */
/* ----------------------------------------------------------------------- */
/* list of card IDs for bt878+ cards */
@@
-266,7
+268,7
@@
static struct CARD {
{ 0x41a0a051, BTTV_BOARD_FLYVIDEO_98FM, "Lifeview FlyVideo 98 LR50 Rev Q" },
{ 0x18501f7f, BTTV_BOARD_FLYVIDEO_98, "Lifeview Flyvideo 98" },
{ 0x41a0a051, BTTV_BOARD_FLYVIDEO_98FM, "Lifeview FlyVideo 98 LR50 Rev Q" },
{ 0x18501f7f, BTTV_BOARD_FLYVIDEO_98, "Lifeview Flyvideo 98" },
- { 0x010115cb, BTTV_BOARD_GMV1, "AG GMV1" },
+ { 0x010115cb, BTTV_BOARD_GMV1, "AG GMV1" },
{ 0x010114c7, BTTV_BOARD_MODTEC_205, "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV" },
{ 0x10b42636, BTTV_BOARD_HAUPPAUGE878, "STB ???" },
{ 0x010114c7, BTTV_BOARD_MODTEC_205, "Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV" },
{ 0x10b42636, BTTV_BOARD_HAUPPAUGE878, "STB ???" },
@@
-275,7
+277,6
@@
static struct CARD {
{ 0x03116000, BTTV_BOARD_SENSORAY311, "Sensoray 311" },
{ 0x00790e11, BTTV_BOARD_WINDVR, "Canopus WinDVR PCI" },
{ 0xa0fca1a0, BTTV_BOARD_ZOLTRIX, "Face to Face Tvmax" },
{ 0x03116000, BTTV_BOARD_SENSORAY311, "Sensoray 311" },
{ 0x00790e11, BTTV_BOARD_WINDVR, "Canopus WinDVR PCI" },
{ 0xa0fca1a0, BTTV_BOARD_ZOLTRIX, "Face to Face Tvmax" },
- { 0x20007063, BTTV_BOARD_PC_HDTV, "pcHDTV HD-2000 TV"},
{ 0x82b2aa6a, BTTV_BOARD_SIMUS_GVC1100, "SIMUS GVC1100" },
{ 0x146caa0c, BTTV_BOARD_PV951, "ituner spectra8" },
{ 0x200a1295, BTTV_BOARD_PXC200, "ImageNation PXC200A" },
{ 0x82b2aa6a, BTTV_BOARD_SIMUS_GVC1100, "SIMUS GVC1100" },
{ 0x146caa0c, BTTV_BOARD_PV951, "ituner spectra8" },
{ 0x200a1295, BTTV_BOARD_PXC200, "ImageNation PXC200A" },
@@
-297,15
+298,17
@@
static struct CARD {
* { 0x13eb0070, BTTV_BOARD_HAUPPAUGE_IMPACTVCB, "Hauppauge ImpactVCB" }, */
/* DVB cards (using pci function .1 for mpeg data xfer) */
* { 0x13eb0070, BTTV_BOARD_HAUPPAUGE_IMPACTVCB, "Hauppauge ImpactVCB" }, */
/* DVB cards (using pci function .1 for mpeg data xfer) */
- { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" },
- { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" },
{ 0x001c11bd, BTTV_BOARD_PINNACLESAT, "Pinnacle PCTV Sat" },
{ 0x001c11bd, BTTV_BOARD_PINNACLESAT, "Pinnacle PCTV Sat" },
+ { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" },
+ { 0x20007063, BTTV_BOARD_PC_HDTV, "pcHDTV HD-2000 TV"},
{ 0x002611bd, BTTV_BOARD_TWINHAN_DST, "Pinnacle PCTV SAT CI" },
{ 0x00011822, BTTV_BOARD_TWINHAN_DST, "Twinhan VisionPlus DVB" },
{ 0xfc00270f, BTTV_BOARD_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" },
{ 0x07711461, BTTV_BOARD_AVDVBT_771, "AVermedia AverTV DVB-T 771" },
{ 0x002611bd, BTTV_BOARD_TWINHAN_DST, "Pinnacle PCTV SAT CI" },
{ 0x00011822, BTTV_BOARD_TWINHAN_DST, "Twinhan VisionPlus DVB" },
{ 0xfc00270f, BTTV_BOARD_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" },
{ 0x07711461, BTTV_BOARD_AVDVBT_771, "AVermedia AverTV DVB-T 771" },
+ { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" },
{ 0xdb1018ac, BTTV_BOARD_DVICO_DVBT_LITE, "DViCO FusionHDTV DVB-T Lite" },
{ 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" },
{ 0xdb1018ac, BTTV_BOARD_DVICO_DVBT_LITE, "DViCO FusionHDTV DVB-T Lite" },
{ 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" },
+ { 0x00261822, BTTV_BOARD_TWINHAN_DST, "DNTV Live! Mini "},
{ 0, -1, NULL }
};
{ 0, -1, NULL }
};
@@
-334,7
+337,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 2, 0, 0, 0, 10 },
+ .gpiomux = { 2, 0, 0, 0 },
+ .gpiomute = 10,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-348,7
+352,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 1, 2, 3, 4 },
+ .gpiomux = { 0, 1, 2, 3 },
+ .gpiomute = 4,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-362,7
+367,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 4, 0, 2, 3, 1 },
+ .gpiomux = { 4, 0, 2, 3 },
+ .gpiomute = 1,
.no_msp34xx = 1,
.needs_tvaudio = 1,
.tuner_type = TUNER_PHILIPS_NTSC,
.no_msp34xx = 1,
.needs_tvaudio = 1,
.tuner_type = TUNER_PHILIPS_NTSC,
@@
-381,7
+387,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.tuner_type = 4,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 0,
.tuner_type = 4,
.tuner_addr = ADDR_UNSET,
@@
-395,7
+401,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 0 },
- .audiomux = { 0, 1, 0, 1, 3 },
+ .gpiomux = { 0, 1, 0, 1 },
+ .gpiomute = 3,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-409,7
+416,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.muxsel = { 2, 3, 1, 1 },
.gpiomask = 0x0f,
.svhs = 3,
.muxsel = { 2, 3, 1, 1 },
.gpiomask = 0x0f,
- .
audiomux = { 0x0c, 0x04, 0x08, 0x04, 0
},
+ .
gpiomux = { 0x0c, 0x04, 0x08, 0x04
},
/* 0x04 for some cards ?? */
.needs_tvaudio = 1,
.tuner_type = -1,
/* 0x04 for some cards ?? */
.needs_tvaudio = 1,
.tuner_type = -1,
@@
-426,7
+433,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0 },
.svhs = 3,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-442,7
+449,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xc00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xc00,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0 },
+ .gpiomux = { 0, 0xc00, 0x800, 0x400 },
+ .gpiomute = 0xc00,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-457,7
+465,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 1, 1, 2, 3, 0
},
+ .
gpiomux = { 1, 1, 2, 3
},
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_PAL,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_PAL,
@@
-472,7
+480,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x0f, /* old: 7 */
.muxsel = { 2, 0, 1, 1 },
.svhs = 2,
.gpiomask = 0x0f, /* old: 7 */
.muxsel = { 2, 0, 1, 1 },
- .audiomux = { 0, 1, 2, 3, 4 },
+ .gpiomux = { 0, 1, 2, 3 },
+ .gpiomute = 4,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-487,7
+496,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x3014f,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x3014f,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x20001,0x10001, 0, 0,10 },
+ .gpiomux = { 0x20001,0x10001, 0, 0 },
+ .gpiomute = 10,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-503,7
+513,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 13, 14, 11, 7, 0, 0
},
+ .
gpiomux = { 13, 14, 11, 7
},
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-517,7
+527,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 13, 14, 11, 7, 0, 0
},
+ .
gpiomux = { 13, 14, 11, 7
},
.needs_tvaudio = 1,
.msp34xx_alt = 1,
.pll = PLL_28,
.needs_tvaudio = 1,
.msp34xx_alt = 1,
.pll = PLL_28,
@@
-535,7
+545,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 2, 1, 3, 4 }, /* old: {0, 1, 2, 3, 4} */
+ .gpiomux = { 0, 2, 1, 3 }, /* old: {0, 1, 2, 3, 4} */
+ .gpiomute = 4,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-550,7
+561,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0 , 0, 1 , 0, 10 },
+ .gpiomux = { 0, 0, 1, 0 },
+ .gpiomute = 10,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-568,10
+580,11
@@
struct tvcard bttv_tvcards[] = {
.muxsel = { 2, 3, 1, 1 },
#if 0
/* old */
.muxsel = { 2, 3, 1, 1 },
#if 0
/* old */
- .
audiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x002000,
0 },
+ .
gpiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x00200
0 },
#else
/* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */
#else
/* 2003-10-20 by "Anton A. Arapov" <arapov@mail.ru> */
- .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 },
+ .gpiomux = { 0x001e00, 0, 0x018000, 0x014000 },
+ .gpiomute = 0x002000,
#endif
.needs_tvaudio = 1,
.pll = PLL_28,
#endif
.needs_tvaudio = 1,
.pll = PLL_28,
@@
-585,7
+598,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x8300f8,
.muxsel = { 2, 3, 1, 1,0 },
.svhs = 2,
.gpiomask = 0x8300f8,
.muxsel = { 2, 3, 1, 1,0 },
- .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007 },
+ .gpiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007 },
+ .gpiomute = 0xcfa007,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-601,7
+615,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 1, 0
, 0, 0, 0 },
+ .
gpiomux = { 1
, 0, 0, 0 },
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-615,7
+629,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 0x8dff00,
.muxsel = { 2, 3, 1, 1 },
.svhs = -1,
.gpiomask = 0x8dff00,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.no_msp34xx = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.no_msp34xx = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-642,7
+656,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800 },
+ .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
+ .gpiomute = 0x1800,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL_I,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL_I,
.tuner_addr = ADDR_UNSET,
@@
-656,7
+671,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xc00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xc00,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 1, 0x800, 0x400, 0xc00, 0 },
+ .gpiomux = { 0, 1, 0x800, 0x400 },
+ .gpiomute = 0xc00,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-672,7
+688,7
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 7,
.muxsel = { 2, 3, -1 },
.digital_mode = DIGITAL_MODE_CAMERA,
.gpiomask = 7,
.muxsel = { 2, 3, -1 },
.digital_mode = DIGITAL_MODE_CAMERA,
- .
audiomux = { 0,
0, 0, 0, 0 },
+ .
gpiomux = {
0, 0, 0, 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_ALPS_TSBB5_PAL_I,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_ALPS_TSBB5_PAL_I,
@@
-689,7
+705,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xe00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xe00,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00 },
+ .gpiomux = {0x400, 0x400, 0x400, 0x400 },
+ .gpiomute = 0xc00,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-705,7
+722,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1f0fff,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1f0fff,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000 },
+ .gpiomux = { 0x20000, 0x30000, 0x10000, 0 },
+ .gpiomute = 0x40000,
.needs_tvaudio = 0,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 0,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
@@
-720,7
+738,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 7,
.muxsel = { 2, 0, 1, 1 },
.svhs = 3,
.gpiomask = 7,
.muxsel = { 2, 0, 1, 1 },
- .audiomux = { 0, 1, 2, 3, 4 },
+ .gpiomux = { 0, 1, 2, 3 },
+ .gpiomute = 4,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-734,7
+753,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800 },
+ .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
+ .gpiomute = 0x1800,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_SECAM,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_SECAM,
.tuner_addr = ADDR_UNSET,
@@
-750,7
+770,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1f0fff,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1f0fff,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000 },
+ .gpiomux = { 0x20000, 0x30000, 0x10000, 0x00000 },
+ .gpiomute = 0x40000,
.needs_tvaudio = 0,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 0,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
@@
-797,7
+818,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 1, /* was: 4 */
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0},
.svhs = 1, /* was: 4 */
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0},
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-813,7
+834,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1800, /* 0x8dfe00 */
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1800, /* 0x8dfe00 */
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 },
+ .gpiomux = { 0, 0x0800, 0x1000, 0x1000 },
+ .gpiomute = 0x1800,
.pll = PLL_28,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-827,7
+849,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 1,
.muxsel = { 2, 3, 1, 1 },
.svhs = 3,
.gpiomask = 1,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 1, 0
, 0, 0, 0 },
+ .
gpiomux = { 1
, 0, 0, 0 },
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
@@
-843,7
+865,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.tuner_type = 4,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 0,
.tuner_type = 4,
.tuner_addr = ADDR_UNSET,
@@
-857,7
+879,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xffff00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xffff00,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x500, 0, 0x300, 0x900, 0x900 },
+ .gpiomux = { 0x500, 0, 0x300, 0x900 },
+ .gpiomute = 0x900,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-873,11
+896,12
@@
struct tvcard bttv_tvcards[] = {
.muxsel = { 2, 3, 1, 1, 0 }, /* TV, CVid, SVid, CVid over SVid connector */
#if 0
.gpiomask = 0xc33000,
.muxsel = { 2, 3, 1, 1, 0 }, /* TV, CVid, SVid, CVid over SVid connector */
#if 0
.gpiomask = 0xc33000,
- .
audiomux
= { 0x422000,0x1000,0x0000,0x620000,0x800000 },
+ .
gpiomux
= { 0x422000,0x1000,0x0000,0x620000,0x800000 },
#else
/* Alexander Varakin <avarakin@hotmail.com> [stereo version] */
.gpiomask = 0xb33000,
#else
/* Alexander Varakin <avarakin@hotmail.com> [stereo version] */
.gpiomask = 0xb33000,
- .audiomux = { 0x122000,0x1000,0x0000,0x620000,0x800000 },
+ .gpiomux = { 0x122000,0x1000,0x0000,0x620000 },
+ .gpiomute = 0x800000,
#endif
/* Audio Routing for "WinFast 2000 XP" (no tv stereo !)
gpio23 -- hef4052:nEnable (0x800000)
#endif
/* Audio Routing for "WinFast 2000 XP" (no tv stereo !)
gpio23 -- hef4052:nEnable (0x800000)
@@
-907,7
+931,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800 },
+ .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
+ .gpiomute = 0x1800,
.pll = PLL_28,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-923,7
+948,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 },
+ .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
+ .gpiomute = 0x1800,
.pll = PLL_28,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-938,7
+964,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xff,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xff,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 },
+ .gpiomux = { 0x21, 0x20, 0x24, 0x2c },
+ .gpiomute = 0x29,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-953,7
+980,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x551e00,
.muxsel = { 2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0x551e00,
.muxsel = { 2, 3, 1, 0 },
- .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 },
+ .gpiomux = { 0x551400, 0x551200, 0, 0 },
+ .gpiomute = 0x551c00,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = 1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = 1,
@@
-969,7
+997,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x03000F,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x03000F,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 2, 0xd0001, 0, 0, 1 },
+ .gpiomux = { 2, 0xd0001, 0, 0 },
+ .gpiomute = 1,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = -1,
@@
-986,7
+1015,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 4, 0, 2, 3, 1 },
+ .gpiomux = { 4, 0, 2, 3 },
+ .gpiomute = 1,
.no_msp34xx = 1,
.needs_tvaudio = 1,
.tuner_type = TUNER_PHILIPS_NTSC,
.no_msp34xx = 1,
.needs_tvaudio = 1,
.tuner_type = TUNER_PHILIPS_NTSC,
@@
-1003,7
+1033,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 13, 4, 11, 7, 0, 0
},
+ .
gpiomux = { 13, 4, 11, 7
},
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-1020,7
+1050,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1},
.svhs = 2,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 1},
- .
audiomux = { 0,
0, 0, 0, 0},
+ .
gpiomux = {
0, 0, 0, 0},
.needs_tvaudio = 1,
.no_msp34xx = 1,
.pll = PLL_28,
.needs_tvaudio = 1,
.no_msp34xx = 1,
.pll = PLL_28,
@@
-1036,7
+1066,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xe00b,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xe00b,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc },
+ .gpiomux = { 0xff9ff6, 0xff9ff6, 0xff1ff7, 0 },
+ .gpiomute = 0xff3ffc,
.no_msp34xx = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.no_msp34xx = 1,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-1052,7
+1083,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 1 },
.svhs = -1,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 1, 1, 0, 2, 3 },
+ .gpiomux = { 1, 1, 0, 2 },
+ .gpiomute = 3,
.no_msp34xx = 1,
.pll = PLL_NONE,
.tuner_type = -1,
.no_msp34xx = 1,
.pll = PLL_NONE,
.tuner_type = -1,
@@
-1067,7
+1099,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0 },
.svhs = 3,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-1082,7
+1114,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xbcf03f,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xbcf03f,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f },
+ .gpiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0 },
+ .gpiomute = 0xbcb03f,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = 21,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = 21,
@@
-1097,7
+1130,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x70000,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x70000,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 },
+ .gpiomux = { 0x20000, 0x30000, 0x10000, 0 },
+ .gpiomute = 0x40000,
.needs_tvaudio = 1,
.no_msp34xx = 1,
.pll = PLL_35,
.needs_tvaudio = 1,
.no_msp34xx = 1,
.pll = PLL_35,
@@
-1116,7
+1150,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = {2,0,0,0,1 },
+ .gpiomux = {2,0,0,0 },
+ .gpiomute = 1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-1131,7
+1166,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x010f00,
.muxsel = {2, 3, 0, 0 },
.svhs = 2,
.gpiomask = 0x010f00,
.muxsel = {2, 3, 0, 0 },
- .
audiomux = {0x10000, 0, 0x10000, 0,
0, 0 },
+ .
gpiomux = {0x10000, 0, 0x1000
0, 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_ALPS_TSHC6_NTSC,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_ALPS_TSHC6_NTSC,
@@
-1148,7
+1183,8
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 0xAA0000,
.muxsel = { 2,3,1,1,-1 },
.digital_mode = DIGITAL_MODE_CAMERA,
.gpiomask = 0xAA0000,
.muxsel = { 2,3,1,1,-1 },
.digital_mode = DIGITAL_MODE_CAMERA,
- .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 },
+ .gpiomux = { 0x20000, 0, 0x80000, 0x80000 },
+ .gpiomute = 0xa8000,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL_I,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL_I,
@@
-1173,7
+1209,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 0, 1, 1 },
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 0, 1, 1 },
- .audiomux = { 0, 1, 2, 3, 4 },
+ .gpiomux = { 0, 1, 2, 3 },
+ .gpiomute = 4,
.pll = PLL_28,
.tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */,
.tuner_addr = ADDR_UNSET,
@@
-1190,7
+1227,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 0x03000F,
.muxsel = { 2, 3, 1, 1 },
.svhs = 3,
.gpiomask = 0x03000F,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 1, 0xd0001, 0, 0, 10 },
+ .gpiomux = { 1, 0xd0001, 0, 0 },
+ .gpiomute = 10,
/* sound path (5 sources):
MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable)
0= ext. Audio IN
/* sound path (5 sources):
MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable)
0= ext. Audio IN
@@
-1216,7
+1254,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1c,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1c,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0, 0x10, 8, 4 },
+ .gpiomux = { 0, 0, 0x10, 8 },
+ .gpiomute = 4,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-1228,7
+1267,7
@@
struct tvcard bttv_tvcards[] = {
/* Tim Röstermundt <rosterm@uni-muenster.de>
in de.comp.os.unix.linux.hardware:
options bttv card=0 pll=1 radio=1 gpiomask=0x18e0
/* Tim Röstermundt <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
+
gpiomux
=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff
options tuner type=5 */
.name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]",
.video_inputs = 4,
options tuner type=5 */
.name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]",
.video_inputs = 4,
@@
-1237,7
+1276,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x18e0,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x18e0,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 },
+ .gpiomux = { 0x0000,0x0800,0x1000,0x1000 },
+ .gpiomute = 0x18e0,
/* For cards with tda9820/tda9821:
0x0000: Tuner normal stereo
0x0080: Tuner A2 SAP (second audio program = Zweikanalton)
/* For cards with tda9820/tda9821:
0x0000: Tuner normal stereo
0x0080: Tuner A2 SAP (second audio program = Zweikanalton)
@@
-1257,7
+1297,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xF,
.muxsel = { 2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0xF,
.muxsel = { 2, 3, 1, 0 },
- .audiomux = { 2, 0, 0, 0, 10 },
+ .gpiomux = { 2, 0, 0, 0 },
+ .gpiomute = 10,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_PAL,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_PAL,
@@
-1275,7
+1316,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x1800,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 },
+ .gpiomux = { 0, 0x800, 0x1000, 0x1000 },
+ .gpiomute = 0x1800,
.pll = PLL_28,
.tuner_type = 5,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = 5,
.tuner_addr = ADDR_UNSET,
@@
-1292,7
+1334,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 1,
.gpiomask = 0,
.muxsel = { 3, 1 },
.svhs = 1,
.gpiomask = 0,
.muxsel = { 3, 1 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_35,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_35,
@@
-1309,7
+1351,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xe00,
.muxsel = { 2, 3, 1, 1},
.svhs = 2,
.gpiomask = 0xe00,
.muxsel = { 2, 3, 1, 1},
- .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 },
+ .gpiomux = { 0x400, 0x400, 0x400, 0x400 },
+ .gpiomute = 0x800,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_4036FY5_NTSC,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_4036FY5_NTSC,
@@
-1325,7
+1368,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x03000F,
.muxsel = { 2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0x03000F,
.muxsel = { 2, 3, 1, 0 },
- .audiomux = { 2, 0, 0, 0, 1 },
+ .gpiomux = { 2, 0, 0, 0 },
+ .gpiomute = 1,
.pll = PLL_28,
.tuner_type = 0,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = 0,
.tuner_addr = ADDR_UNSET,
@@
-1342,7
+1386,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 11,
.muxsel = { 2, 3, 1, 1 },
.svhs = -1,
.gpiomask = 11,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 2, 0, 0, 1, 8 },
+ .gpiomux = { 2, 0, 0, 1 },
+ .gpiomute = 8,
.pll = PLL_35,
.tuner_type = TUNER_TEMIC_PAL,
.tuner_addr = ADDR_UNSET,
.pll = PLL_35,
.tuner_type = TUNER_TEMIC_PAL,
.tuner_addr = ADDR_UNSET,
@@
-1357,7
+1402,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 1,
.gpiomask = 0xF,
.muxsel = { 2, 2 },
.svhs = 1,
.gpiomask = 0xF,
.muxsel = { 2, 2 },
- .
audiomux
= { },
+ .
gpiomux
= { },
.no_msp34xx = 1,
.needs_tvaudio = 0,
.pll = PLL_28,
.no_msp34xx = 1,
.needs_tvaudio = 0,
.pll = PLL_28,
@@
-1376,7
+1421,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xFF,
.muxsel = { 2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0xFF,
.muxsel = { 2, 3, 1, 0 },
- .audiomux = { 1, 0, 4, 4, 9 },
+ .gpiomux = { 1, 0, 4, 4 },
+ .gpiomute = 9,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-1392,7
+1438,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xf03f,
.muxsel = { 2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0xf03f,
.muxsel = { 2, 3, 1, 0 },
- .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe },
+ .gpiomux = { 0xbffe, 0, 0xbfff, 0 },
+ .gpiomute = 0xbffe,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
.tuner_addr = ADDR_UNSET,
@@
-1409,7
+1456,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 1,
.muxsel = { 2, 3, 0, 1 },
.svhs = -1,
.gpiomask = 1,
.muxsel = { 2, 3, 0, 1 },
- .
audiomux = { 0, 0, 1, 0
, 0 },
+ .
gpiomux = { 0, 0, 1
, 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL,
@@
-1428,7
+1475,8
@@
struct tvcard bttv_tvcards[] = {
/* Radio changed from 1e80 to 0x800 to make
FlyVideo2000S in .hu happy (gm)*/
/* -dk-???: set mute=0x1800 for tda9874h daughterboard */
/* 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 },
+ .gpiomux = { 0x0000,0x0800,0x1000,0x1000 },
+ .gpiomute = 0x1800,
.audio_hook = fv2000s_audio,
.no_msp34xx = 1,
.no_tda9875 = 1,
.audio_hook = fv2000s_audio,
.no_msp34xx = 1,
.no_tda9875 = 1,
@@
-1446,7
+1494,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0xffff00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0xffff00,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900 },
+ .gpiomux = { 0x500, 0x500, 0x300, 0x900 },
+ .gpiomute = 0x900,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-1463,7
+1512,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x010f00,
.muxsel = {2, 3, 0, 0 },
.svhs = 2,
.gpiomask = 0x010f00,
.muxsel = {2, 3, 0, 0 },
- .
audiomux = {0x10000, 0, 0x10000, 0,
0, 0 },
+ .
gpiomux = {0x10000, 0, 0x1000
0, 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_SHARP_2U5JF5540_NTSC,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_SHARP_2U5JF5540_NTSC,
@@
-1484,7
+1533,8
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 0x4f8a00,
/* 0x100000: 1=MSP enabled (0=disable again)
* 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) */
.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},
+ .gpiomux = {0x947fff, 0x987fff,0x947fff,0x947fff },
+ .gpiomute = 0x947fff,
/* tvtuner, radio, external,internal, mute, stereo
* tuner, Composit, SVid, Composit-on-Svid-adapter */
.muxsel = { 2, 3 ,0 ,1 },
/* tvtuner, radio, external,internal, mute, stereo
* tuner, Composit, SVid, Composit-on-Svid-adapter */
.muxsel = { 2, 3 ,0 ,1 },
@@
-1516,7
+1566,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 0, 11, 7, 13, 0 }, /* TV and Radio with same GPIO ! */
+ .gpiomux = { 0, 0, 11, 7 }, /* TV and Radio with same GPIO ! */
+ .gpiomute = 13,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = 25,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = 25,
@@
-1555,7
+1606,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x3f,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x3f,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 },
+ .gpiomux = { 0x01, 0x00, 0x03, 0x03 },
+ .gpiomute = 0x09,
.needs_tvaudio = 1,
.no_msp34xx = 1,
.no_tda9875 = 1,
.needs_tvaudio = 1,
.no_msp34xx = 1,
.no_tda9875 = 1,
@@
-1584,7
+1636,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 4,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0 },
.svhs = 4,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0, 0 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 0,
.tuner_type = -1,
.tuner_addr = ADDR_UNSET,
@@
-1616,7
+1668,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x1C800F, /* Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset */
.muxsel = { 2, 1, 1, },
.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 },
+ .gpiomux = { 0, 1, 2, 2 },
+ .gpiomute = 4,
.needs_tvaudio = 0,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 0,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
@@
-1635,7
+1688,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x140007,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x140007,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 1, 2, 3, 4, 0 },
+ .gpiomux = { 0, 1, 2, 3 },
+ .gpiomute = 4,
.tuner_type = TUNER_PHILIPS_NTSC,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.tuner_type = TUNER_PHILIPS_NTSC,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
@@
-1649,7
+1703,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0 },
.svhs = -1,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
@@
-1665,13
+1719,14
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 }, /* Tuner, SVid, SVHS, SVid to SVHS connector */
.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!
+ .
gpiomux = { 0, 0, 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.
* 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
+ *
gpiomux
=1: lower volume, 2+3: mute
* btwincap uses 0x80000/0x80003
*/
* btwincap uses 0x80000/0x80003
*/
+ .gpiomute = 4,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
@@
-1718,7
+1773,7
@@
struct tvcard bttv_tvcards[] = {
.radio_addr = ADDR_UNSET,
.gpiomask = 7,
.radio_addr = ADDR_UNSET,
.gpiomask = 7,
- .
audiomux
= {7},
+ .
gpiomux
= {7},
},
[BTTV_BOARD_GVBCTV5PCI] = {
.name = "IODATA GV-BCTV5/PCI",
},
[BTTV_BOARD_GVBCTV5PCI] = {
.name = "IODATA GV-BCTV5/PCI",
@@
-1728,7
+1783,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x0f0f80,
.muxsel = {2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0x0f0f80,
.muxsel = {2, 3, 1, 0 },
- .audiomux = {0x030000, 0x010000, 0, 0, 0x020000, 0},
+ .gpiomux = {0x030000, 0x010000, 0, 0 },
+ .gpiomute = 0x020000,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_NTSC_M,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_NTSC_M,
@@
-1847,7
+1903,7
@@
struct tvcard bttv_tvcards[] = {
.no_tda7432 = 1,
},
[BTTV_BOARD_OSPREY2x0] = {
.no_tda7432 = 1,
},
[BTTV_BOARD_OSPREY2x0] = {
- .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */
+ .name = "Osprey 210/220
/230
", /* 0x1(A|B)-04C0-C1 */
.video_inputs = 2,
.audio_inputs = 1,
.tuner = -1,
.video_inputs = 2,
.audio_inputs = 1,
.tuner = -1,
@@
-1944,7
+2000,7
@@
struct tvcard bttv_tvcards[] = {
.no_msp34xx = 1,
.no_tda9875 = 1,
.no_tda7432 = 1,
.no_msp34xx = 1,
.no_tda9875 = 1,
.no_tda7432 = 1,
- .muxsel = { 3,
0, 1, 2
},
+ .muxsel = { 3,
1
},
.pll = PLL_28,
.no_gpioirq = 1,
.has_dvb = 1,
.pll = PLL_28,
.no_gpioirq = 1,
.has_dvb = 1,
@@
-1958,7
+2014,7
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 2,
/* TV, Comp1, Composite over SVID con, SVID */
.muxsel = { 2, 3, 1, 1 },
.gpiomask = 2,
/* TV, Comp1, Composite over SVID con, SVID */
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 2, 2, 0
, 0, 0 },
+ .
gpiomux = { 2, 2
, 0, 0 },
.pll = PLL_28,
.has_radio = 1,
.tuner_type = TUNER_PHILIPS_PAL,
.pll = PLL_28,
.has_radio = 1,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-1982,7
+2038,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1},
.svhs = -1,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1},
- .audiomux = { 0, 1, 2, 3, 4},
+ .gpiomux = { 0, 1, 2, 3},
+ .gpiomute = 4,
.needs_tvaudio = 1,
.tuner_type = 5,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = 5,
.tuner_addr = ADDR_UNSET,
@@
-2014,7
+2071,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 0,
.muxsel = { 2, 3 },
.svhs = -1,
.gpiomask = 0,
.muxsel = { 2, 3 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
@@
-2033,7
+2090,8
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 0x001e8007,
.muxsel = { 2, 3, 1, 0 },
/* Tuner, Radio, external, internal, off, on */
.gpiomask = 0x001e8007,
.muxsel = { 2, 3, 1, 0 },
/* Tuner, Radio, external, internal, off, on */
- .audiomux = { 0x08, 0x0f, 0x0a, 0x08, 0x0f, 0x08 },
+ .gpiomux = { 0x08, 0x0f, 0x0a, 0x08 },
+ .gpiomute = 0x0f,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
@@
-2150,7
+2208,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0 },
.svhs = -1,
.gpiomask = 0,
.muxsel = { 2, 3, 1, 0 },
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
.needs_tvaudio = 0,
.no_msp34xx = 1,
.pll = PLL_28,
@@
-2167,7
+2225,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 0x00,
.muxsel = { 2, 3, 1, 0 },
.svhs = 3,
.gpiomask = 0x00,
.muxsel = { 2, 3, 1, 0 },
- .
audiomux = { 0, 0,
0, 0, 0, 0 }, /* card has no audio */
+ .
gpiomux = {
0, 0, 0, 0 }, /* card has no audio */
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-2182,7
+2240,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 3,
.gpiomask = 0x00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 3,
.gpiomask = 0x00,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 0, 0,
0, 0, 0, 0 }, /* card has no audio */
+ .
gpiomux = {
0, 0, 0, 0 }, /* card has no audio */
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-2202,7
+2260,7
@@
struct tvcard bttv_tvcards[] = {
via the upper nibble of muxsel. here: used for
xternal video-mux */
.muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 },
via the upper nibble of muxsel. here: used for
xternal video-mux */
.muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x00 },
- .
audiomux = { 0, 0,
0, 0, 0, 0 }, /* card has no audio */
+ .
gpiomux = {
0, 0, 0, 0 }, /* card has no audio */
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-2220,7
+2278,7
@@
struct tvcard bttv_tvcards[] = {
via the upper nibble of muxsel. here: used for
xternal video-mux */
.muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 },
via the upper nibble of muxsel. here: used for
xternal video-mux */
.muxsel = { 0x02, 0x12, 0x22, 0x32, 0x03, 0x13, 0x23, 0x33, 0x01, 0x01 },
- .
audiomux = { 0, 0,
0, 0, 0, 0 }, /* card has no audio */
+ .
gpiomux = {
0, 0, 0, 0 }, /* card has no audio */
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-2308,7
+2366,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 3,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux = { 1, 1, 1, 1, 0
},
+ .
gpiomux = { 1, 1, 1, 1
},
.needs_tvaudio = 1,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
.needs_tvaudio = 1,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
@@
-2339,7
+2397,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x008007,
.muxsel = { 2, 3, 0, 0 },
.svhs = 2,
.gpiomask = 0x008007,
.muxsel = { 2, 3, 0, 0 },
- .audiomux = { 0, 0, 0, 0, 0x000003, 0 },
+ .gpiomux = { 0, 0, 0, 0 },
+ .gpiomute = 0x000003,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.tuner_addr = ADDR_UNSET,
@@
-2375,7
+2434,7
@@
struct tvcard bttv_tvcards[] = {
.needs_tvaudio = 0,
.gpiomask = 0x68,
.muxsel = { 2, 3, 1 },
.needs_tvaudio = 0,
.gpiomask = 0x68,
.muxsel = { 2, 3, 1 },
- .
audiomux = { 0x68, 0x68, 0x61, 0x61, 0x00
},
+ .
gpiomux = { 0x68, 0x68, 0x61, 0x61
},
.pll = PLL_28,
},
.pll = PLL_28,
},
@@
-2390,7
+2449,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x008007,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x008007,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 1, 2, 2, 3 },
+ .gpiomux = { 0, 1, 2, 2 },
+ .gpiomute = 3,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-2415,7
+2475,7
@@
struct tvcard bttv_tvcards[] = {
.no_tda9875 = 1,
.no_tda7432 = 1,
.muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/
.no_tda9875 = 1,
.no_tda7432 = 1,
.muxsel = {2,2,2,2},/*878A input is always MUX0, see above.*/
- .
audiomux = { 0, 0,
0, 0, 0, 0 }, /* card has no audio */
+ .
gpiomux = {
0, 0, 0, 0 }, /* card has no audio */
.pll = PLL_28,
.needs_tvaudio = 0,
.muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/
.pll = PLL_28,
.needs_tvaudio = 0,
.muxsel_hook = picolo_tetra_muxsel,/*Required as it doesn't follow the classic input selection policy*/
@@
-2433,7
+2493,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x0000000f,
.muxsel = { 2, 1, 1 },
.svhs = 2,
.gpiomask = 0x0000000f,
.muxsel = { 2, 1, 1 },
- .
audiomux = { 0x02, 0x00
, 0x00, 0x00, 0x00 },
+ .
gpiomux = { 0x02
, 0x00, 0x00, 0x00 },
.tuner_type = TUNER_TEMIC_PAL,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.tuner_type = TUNER_TEMIC_PAL,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
@@
-2489,7
+2549,7
@@
struct tvcard bttv_tvcards[] = {
.muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3 },
.muxsel_hook = sigmaSQ_muxsel,
.muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3 },
.muxsel_hook = sigmaSQ_muxsel,
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-2506,7
+2566,7
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 0x0,
.muxsel = { 2, 2, 2, 2 },
.muxsel_hook = sigmaSLC_muxsel,
.gpiomask = 0x0,
.muxsel = { 2, 2, 2, 2 },
.muxsel_hook = sigmaSLC_muxsel,
- .
audiomux
= { 0 },
+ .
gpiomux
= { 0 },
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = -1,
@@
-2524,7
+2584,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = -1,
.gpiomask = 0xFF,
.muxsel = { 2, 3, 1, 1 },
.svhs = -1,
.gpiomask = 0xFF,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 2, 0, 0, 0, 10 },
+ .gpiomux = { 2, 0, 0, 0 },
+ .gpiomute = 10,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_PAL,
@@
-2558,7
+2619,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x3f,
.muxsel = {2, 3, 1, 0 },
.svhs = 2,
.gpiomask = 0x3f,
.muxsel = {2, 3, 1, 0 },
- .audiomux = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31 },
+ .gpiomux = {0x31, 0x31, 0x31, 0x31 },
+ .gpiomute = 0x31,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_NTSC_M,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_NTSC_M,
@@
-2581,7
+2643,7
@@
struct tvcard bttv_tvcards[] = {
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.gpiomask = 0x008007,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.gpiomask = 0x008007,
- .
audiomux = { 0, 0x000001,0,0,
0 },
+ .
gpiomux = { 0, 0x000001,0,
0 },
.needs_tvaudio = 1,
.has_radio = 1,
},
.needs_tvaudio = 1,
.has_radio = 1,
},
@@
-2683,7
+2745,7
@@
struct tvcard bttv_tvcards[] = {
/* Michael Krufky <mkrufky@m1k.net> */
.name = "DViCO FusionHDTV 5 Lite",
.tuner = 0,
/* Michael Krufky <mkrufky@m1k.net> */
.name = "DViCO FusionHDTV 5 Lite",
.tuner = 0,
- .tuner_type = TUNER_LG_TDVS_H06
2F,
+ .tuner_type = TUNER_LG_TDVS_H06
XF, /* TDVS-H064F */
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.video_inputs = 3,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.video_inputs = 3,
@@
-2691,7
+2753,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.muxsel = { 2, 3, 1 },
.gpiomask = 0x00e00007,
.svhs = 2,
.muxsel = { 2, 3, 1 },
.gpiomask = 0x00e00007,
- .audiomux = { 0x00400005, 0, 0x00000001, 0, 0x00c00007, 0 },
+ .gpiomux = { 0x00400005, 0, 0x00000001, 0 },
+ .gpiomute = 0x00c00007,
.no_msp34xx = 1,
.no_tda9875 = 1,
.no_tda7432 = 1,
.no_msp34xx = 1,
.no_tda9875 = 1,
.no_tda7432 = 1,
@@
-2699,7
+2762,7
@@
struct tvcard bttv_tvcards[] = {
},
/* ---- card 0x88---------------------------------- */
[BTTV_BOARD_ACORP_Y878F] = {
},
/* ---- card 0x88---------------------------------- */
[BTTV_BOARD_ACORP_Y878F] = {
- /* Mauro Carvalho Chehab <mchehab@
brturbo.com.br
> */
+ /* Mauro Carvalho Chehab <mchehab@
infradead.org
> */
.name = "Acorp Y878F",
.video_inputs = 3,
.audio_inputs = 1,
.name = "Acorp Y878F",
.video_inputs = 3,
.audio_inputs = 1,
@@
-2707,7
+2770,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x01fe00,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x01fe00,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x001e00, 0, 0x018000, 0x014000, 0x002000, 0 },
+ .gpiomux = { 0x001e00, 0, 0x018000, 0x014000 },
+ .gpiomute = 0x002000,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_YMEC_TVF66T5_B_DFF,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = TUNER_YMEC_TVF66T5_B_DFF,
@@
-2724,7
+2788,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x001c0007,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x001c0007,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 1, 2, 2, 3 },
+ .gpiomux = { 0, 1, 2, 2 },
+ .gpiomute = 3,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_TENA_9533_DI,
.needs_tvaudio = 0,
.pll = PLL_28,
.tuner_type = TUNER_TENA_9533_DI,
@@
-2743,7
+2808,8
@@
struct tvcard bttv_tvcards[] = {
.gpiomask = 0x01fe00,
.muxsel = { 2,3,1,1,-1 },
.digital_mode = DIGITAL_MODE_CAMERA,
.gpiomask = 0x01fe00,
.muxsel = { 2,3,1,1,-1 },
.digital_mode = DIGITAL_MODE_CAMERA,
- .audiomux = { 0x00400, 0x10400, 0x04400, 0x80000, 0x12400, 0x46000 },
+ .gpiomux = { 0x00400, 0x10400, 0x04400, 0x80000 },
+ .gpiomute = 0x12400,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_LG_PAL_FM,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_LG_PAL_FM,
@@
-2761,7
+2827,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x3f,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x3f,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 },
+ .gpiomux = { 0x21, 0x20, 0x24, 0x2c },
+ .gpiomute = 0x29,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_YMEC_TVF_5533MF,
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_YMEC_TVF_5533MF,
@@
-2795,7
+2862,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 15,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 2, 0, 0, 0, 1 },
+ .gpiomux = { 2, 0, 0, 0 },
+ .gpiomute = 1,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = 2,
.needs_tvaudio = 1,
.pll = PLL_28,
.tuner_type = 2,
@@
-2811,7
+2879,7
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 0x108007,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 0x108007,
.muxsel = { 2, 3, 1, 1 },
- .
audiomux
= { 100000, 100002, 100002, 100000 },
+ .
gpiomux
= { 100000, 100002, 100002, 100000 },
.no_msp34xx = 1,
.no_tda9875 = 1,
.no_tda7432 = 1,
.no_msp34xx = 1,
.no_tda9875 = 1,
.no_tda7432 = 1,
@@
-2851,7
+2919,8
@@
struct tvcard bttv_tvcards[] = {
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
.svhs = 2,
.gpiomask = 7,
.muxsel = { 2, 3, 1, 1 },
- .audiomux = { 0, 1, 2, 3, 4 },
+ .gpiomux = { 0, 1, 2, 3 },
+ .gpiomute = 4,
.tuner_type = TUNER_TEMIC_4009FR5_PAL,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.tuner_type = TUNER_TEMIC_4009FR5_PAL,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
@@
-2922,21
+2991,21
@@
void __devinit bttv_idcard(struct bttv *btv)
if (UNSET != audiomux[0]) {
gpiobits = 0;
if (UNSET != audiomux[0]) {
gpiobits = 0;
- for (i = 0; i <
5
; i++) {
- bttv_tvcards[btv->c.type].
aud
iomux[i] = audiomux[i];
+ for (i = 0; i <
4
; i++) {
+ bttv_tvcards[btv->c.type].
gp
iomux[i] = audiomux[i];
gpiobits |= audiomux[i];
}
} else {
gpiobits = audioall;
gpiobits |= audiomux[i];
}
} else {
gpiobits = audioall;
- for (i = 0; i <
5
; i++) {
- bttv_tvcards[btv->c.type].
aud
iomux[i] = audioall;
+ for (i = 0; i <
4
; i++) {
+ bttv_tvcards[btv->c.type].
gp
iomux[i] = audioall;
}
}
bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits;
printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=",
btv->c.nr,bttv_tvcards[btv->c.type].gpiomask);
for (i = 0; i < 5; i++) {
}
}
bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits;
printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=",
btv->c.nr,bttv_tvcards[btv->c.type].gpiomask);
for (i = 0; i < 5; i++) {
- printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].
aud
iomux[i]);
+ printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].
gp
iomux[i]);
}
printk("\n");
}
}
printk("\n");
}
@@
-3044,7
+3113,7
@@
static void miro_pinnacle_gpio(struct bttv *btv)
gpio_inout(0xffffff, 0);
gpio = gpio_read();
id = ((gpio>>10) & 63) -1;
gpio_inout(0xffffff, 0);
gpio = gpio_read();
id = ((gpio>>10) & 63) -1;
- msp = bttv_I2CRead(btv, I2C_MSP3400, "MSP34xx");
+ msp = bttv_I2CRead(btv, I2C_
ADDR_
MSP3400, "MSP34xx");
if (id < 32) {
btv->tuner_type = miro_tunermap[id];
if (0 == (gpio & 0x20)) {
if (id < 32) {
btv->tuner_type = miro_tunermap[id];
if (0 == (gpio & 0x20)) {
@@
-3440,8
+3509,8
@@
void __devinit bttv_init_card2(struct bttv *btv)
if (bttv_tvcards[btv->c.type].digital_mode == DIGITAL_MODE_CAMERA) {
/* detect Bt832 chip for quartzsight digital camera */
if (bttv_tvcards[btv->c.type].digital_mode == DIGITAL_MODE_CAMERA) {
/* detect Bt832 chip for quartzsight digital camera */
- if ((bttv_I2CRead(btv, I2C_BT832_ALT1, "Bt832") >=0) ||
- (bttv_I2CRead(btv, I2C_BT832_ALT2, "Bt832") >=0))
+ if ((bttv_I2CRead(btv, I2C_
ADDR_
BT832_ALT1, "Bt832") >=0) ||
+ (bttv_I2CRead(btv, I2C_
ADDR_
BT832_ALT2, "Bt832") >=0))
boot_bt832(btv);
}
boot_bt832(btv);
}
@@
-3450,19
+3519,19
@@
void __devinit bttv_init_card2(struct bttv *btv)
/* try to detect audio/fader chips */
if (!bttv_tvcards[btv->c.type].no_msp34xx &&
/* try to detect audio/fader chips */
if (!bttv_tvcards[btv->c.type].no_msp34xx &&
- bttv_I2CRead(btv, I2C_MSP3400, "MSP34xx") >=0)
+ bttv_I2CRead(btv, I2C_
ADDR_
MSP3400, "MSP34xx") >=0)
request_module("msp3400");
if (bttv_tvcards[btv->c.type].msp34xx_alt &&
request_module("msp3400");
if (bttv_tvcards[btv->c.type].msp34xx_alt &&
- bttv_I2CRead(btv, I2C_MSP3400_ALT, "MSP34xx (alternate address)") >=0)
+ bttv_I2CRead(btv, I2C_
ADDR_
MSP3400_ALT, "MSP34xx (alternate address)") >=0)
request_module("msp3400");
if (!bttv_tvcards[btv->c.type].no_tda9875 &&
request_module("msp3400");
if (!bttv_tvcards[btv->c.type].no_tda9875 &&
- bttv_I2CRead(btv, I2C_TDA9875, "TDA9875") >=0)
+ bttv_I2CRead(btv, I2C_
ADDR_
TDA9875, "TDA9875") >=0)
request_module("tda9875");
if (!bttv_tvcards[btv->c.type].no_tda7432 &&
request_module("tda9875");
if (!bttv_tvcards[btv->c.type].no_tda7432 &&
- bttv_I2CRead(btv, I2C_TDA7432, "TDA7432") >=0)
+ bttv_I2CRead(btv, I2C_
ADDR_
TDA7432, "TDA7432") >=0)
request_module("tda7432");
if (bttv_tvcards[btv->c.type].needs_tvaudio)
request_module("tda7432");
if (bttv_tvcards[btv->c.type].needs_tvaudio)
@@
-3473,16
+3542,11
@@
void __devinit bttv_init_card2(struct bttv *btv)
if (btv->tda9887_conf)
tda9887 = 1;
if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb &&
if (btv->tda9887_conf)
tda9887 = 1;
if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb &&
- bttv_I2CRead(btv, I2C_TDA9887, "TDA9887") >=0)
+ bttv_I2CRead(btv, I2C_
ADDR_
TDA9887, "TDA9887") >=0)
tda9887 = 1;
/* Hybrid DVB card, DOES have a tda9887 */
if (btv->c.type == BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE)
tda9887 = 1;
tda9887 = 1;
/* Hybrid DVB card, DOES have a tda9887 */
if (btv->c.type == BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE)
tda9887 = 1;
- if((btv->tuner_type == TUNER_PHILIPS_FM1216ME_MK3) ||
- (btv->tuner_type == TUNER_PHILIPS_FM1236_MK3) ||
- (btv->tuner_type == TUNER_PHILIPS_FM1256_IH3) ||
- tda9887)
- request_module("tda9887");
if (btv->tuner_type != UNSET)
request_module("tuner");
}
if (btv->tuner_type != UNSET)
request_module("tuner");
}
@@
-3721,6
+3785,7
@@
static void __devinit osprey_eeprom(struct bttv *btv)
break;
case 0x0060:
case 0x0070:
break;
case 0x0060:
case 0x0070:
+ case 0x00A0:
btv->c.type = BTTV_BOARD_OSPREY2x0;
/* enable output on select control lines */
gpio_inout(0xffffff,0x000303);
btv->c.type = BTTV_BOARD_OSPREY2x0;
/* enable output on select control lines */
gpio_inout(0xffffff,0x000303);
@@
-3794,18
+3859,18
@@
void bttv_tda9880_setnorm(struct bttv *btv, int norm)
{
/* fix up our card entry */
if(norm==VIDEO_MODE_NTSC) {
{
/* fix up our card entry */
if(norm==VIDEO_MODE_NTSC) {
- bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
audiomux[0
]=0x957fff;
- bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
audiomux[4]
=0x957fff;
+ bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
gpiomux[TVAUDIO_INPUT_TUNER
]=0x957fff;
+ bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
gpiomute
=0x957fff;
dprintk("bttv_tda9880_setnorm to NTSC\n");
}
else {
dprintk("bttv_tda9880_setnorm to NTSC\n");
}
else {
- bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
audiomux[0
]=0x947fff;
- bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
audiomux[4]
=0x947fff;
+ bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
gpiomux[TVAUDIO_INPUT_TUNER
]=0x947fff;
+ bttv_tvcards[BTTV_BOARD_VOODOOTV_FM].
gpiomute
=0x947fff;
dprintk("bttv_tda9880_setnorm to PAL\n");
}
/* set GPIO according */
gpio_bits(bttv_tvcards[btv->c.type].gpiomask,
dprintk("bttv_tda9880_setnorm to PAL\n");
}
/* set GPIO according */
gpio_bits(bttv_tvcards[btv->c.type].gpiomask,
- bttv_tvcards[btv->c.type].
aud
iomux[btv->audio]);
+ bttv_tvcards[btv->c.type].
gp
iomux[btv->audio]);
}
}
@@
-3936,7
+4001,7
@@
static void __devinit init_PXC200(struct bttv *btv)
* - sleep 1ms
* - write 0x0E
* read from GPIO_DATA into buf (uint_32)
* - sleep 1ms
* - write 0x0E
* read from GPIO_DATA into buf (uint_32)
- * - if ( buf>>18 & 0x01 ) || ( buf>>19 &
&
0x01 != 0 )
+ * - if ( buf>>18 & 0x01 ) || ( buf>>19 & 0x01 != 0 )
* error. ERROR_CPLD_Check_Failed.
*/
/* ----------------------------------------------------------------------- */
* error. ERROR_CPLD_Check_Failed.
*/
/* ----------------------------------------------------------------------- */
@@
-4777,7
+4842,7
@@
static void picolo_tetra_muxsel (struct bttv* btv, unsigned int input)
*
* The IVC120G security card has 4 i2c controlled TDA8540 matrix
* swichers to provide 16 channels to MUX0. The TDA8540's have
*
* The IVC120G security card has 4 i2c controlled TDA8540 matrix
* swichers to provide 16 channels to MUX0. The TDA8540's have
- * 4 indepe
da
nt outputs and as such the IVC120G also has the
+ * 4 indepe
nde
nt outputs and as such the IVC120G also has the
* optional "Monitor Out" bus. This allows the card to be looking
* at one input while the monitor is looking at another.
*
* optional "Monitor Out" bus. This allows the card to be looking
* at one input while the monitor is looking at another.
*
@@
-4926,7
+4991,7
@@
void __devinit bttv_check_chipset(void)
int pcipci_fail = 0;
struct pci_dev *dev = NULL;
int pcipci_fail = 0;
struct pci_dev *dev = NULL;
- if (pci_pci_problems &
PCIPCI_FAIL)
+ if (pci_pci_problems &
(PCIPCI_FAIL|PCIAGP_FAIL)) /* should check if target is AGP */
pcipci_fail = 1;
if (pci_pci_problems & (PCIPCI_TRITON|PCIPCI_NATOMA|PCIPCI_VIAETBF))
triton1 = 1;
pcipci_fail = 1;
if (pci_pci_problems & (PCIPCI_TRITON|PCIPCI_NATOMA|PCIPCI_VIAETBF))
triton1 = 1;
@@
-4944,12
+5009,14
@@
void __devinit bttv_check_chipset(void)
if (vsfx)
printk(KERN_INFO "bttv: Host bridge needs VSFX enabled.\n");
if (pcipci_fail) {
if (vsfx)
printk(KERN_INFO "bttv: Host bridge needs VSFX enabled.\n");
if (pcipci_fail) {
- printk(KERN_WARNING "bttv: BT848 and your chipset may not work together.\n");
+ printk(KERN_INFO "bttv: bttv and your chipset may not work "
+ "together.\n");
if (!no_overlay) {
if (!no_overlay) {
- printk(KERN_
WARNING
"bttv: overlay will be disabled.\n");
+ printk(KERN_
INFO
"bttv: overlay will be disabled.\n");
no_overlay = 1;
} else {
no_overlay = 1;
} else {
- printk(KERN_WARNING "bttv: overlay forced. Use this option at your own risk.\n");
+ printk(KERN_INFO "bttv: overlay forced. Use this "
+ "option at your own risk.\n");
}
}
if (UNSET != latency)
}
}
if (UNSET != latency)