mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
V4L/DVB (7366): Support for a 16-channel bt878 card
I have what looks like a Geovision GV-600 (or 650) card. It has a large
chip in the middle labeled
CONEXANT
FUSION 878A
25878-13
E345881.1
0312 TAIWAN
It has an audio connector coming out from a chip labeled
ATMEL
0242
AT89C2051-24PI
It is identified as follows on my Debian GNU/Linux Etch (kernel 2.6.18)
...
01:0a.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
01:0a.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
...
01:0a.0 0400: 109e:036e (rev 11)
Subsystem: 008a:763c
Flags: bus master, medium devsel, latency 64, IRQ 58
Memory at dfffe000 (32-bit, prefetchable) [size=4K]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2
01:0a.1 0480: 109e:0878 (rev 11)
Subsystem: 008a:763c
Flags: bus master, medium devsel, latency 64, IRQ 58
Memory at dffff000 (32-bit, prefetchable) [size=4K]
Capabilities: [44] Vital Product Data
Capabilities: [4c] Power Management version 2
It was being detected as a GENERIC UNKNOWN CARD both by the 2.6.18
kernel and the latest v4l-dvb drivers, but it did not work at all. The
card has sixteen (16) BNC video inputs, four of them on the board itself
and twelve on three daughter-cards. It has a single bt878 chip, no tuner
and what looks like and audio input. After doing some research I managed
to get only eight channels working by forcing card=125 and those DID NOT
match channels 0-7 on the card, and no audio.
Based on what was working for card=125, I added the card definition
block, added a specific muxsel routine and got the card working fully
with xawtv, where the sixteen channels show up as Composite0 to
Composite15, matching the channel labels in the card and daughter-cards.
I have made no efforts yet to get audio working, but would appreciate
any pointers.
Signed-off-by: Ernesto Hernández-Novich <emhn@usb.ve>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
76e41e4851
commit
97275ac514
|
|
@ -148,3 +148,4 @@
|
|||
147 -> VoodooTV 200 (USA) [121a:3000]
|
||||
148 -> DViCO FusionHDTV 2 [dbc0:d200]
|
||||
149 -> Typhoon TV-Tuner PCI (50684)
|
||||
150 -> Geovision GV-600 [008a:763c]
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ static void kodicom4400r_init(struct bttv *btv);
|
|||
static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input);
|
||||
static void sigmaSQ_muxsel(struct bttv *btv, unsigned int input);
|
||||
|
||||
static void geovision_muxsel(struct bttv *btv, unsigned int input);
|
||||
|
||||
static int terratec_active_radio_upgrade(struct bttv *btv);
|
||||
static int tea5757_read(struct bttv *btv);
|
||||
static int tea5757_write(struct bttv *btv, int value);
|
||||
|
|
@ -301,6 +303,7 @@ static struct CARD {
|
|||
{ 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" },
|
||||
{ 0x00261822, BTTV_BOARD_TWINHAN_DST, "DNTV Live! Mini "},
|
||||
{ 0xd200dbc0, BTTV_BOARD_DVICO_FUSIONHDTV_2, "DViCO FusionHDTV 2" },
|
||||
{ 0x763c008a, BTTV_BOARD_GEOVISION_GV600, "GeoVision GV-600" },
|
||||
|
||||
{ 0, -1, NULL }
|
||||
};
|
||||
|
|
@ -2994,6 +2997,24 @@ struct tvcard bttv_tvcards[] = {
|
|||
.tuner_addr = ADDR_UNSET,
|
||||
.radio_addr = ADDR_UNSET,
|
||||
},
|
||||
[BTTV_BOARD_GEOVISION_GV600] = {
|
||||
/* emhn@usb.ve */
|
||||
.name = "Geovision GV-600",
|
||||
.video_inputs = 16,
|
||||
.audio_inputs = 0,
|
||||
.tuner = UNSET,
|
||||
.svhs = UNSET,
|
||||
.gpiomask = 0x0,
|
||||
.muxsel = { 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2 },
|
||||
.muxsel_hook = geovision_muxsel,
|
||||
.gpiomux = { 0 },
|
||||
.no_msp34xx = 1,
|
||||
.pll = PLL_28,
|
||||
.tuner_type = UNSET,
|
||||
.tuner_addr = ADDR_UNSET,
|
||||
.radio_addr = ADDR_UNSET,
|
||||
},
|
||||
};
|
||||
|
||||
static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
|
||||
|
|
@ -3333,6 +3354,13 @@ static void sigmaSLC_muxsel(struct bttv *btv, unsigned int input)
|
|||
gpio_bits( 3<<9, inmux<<9 );
|
||||
}
|
||||
|
||||
static void geovision_muxsel(struct bttv *btv, unsigned int input)
|
||||
{
|
||||
unsigned int inmux = input % 16;
|
||||
gpio_inout(0xf, 0xf);
|
||||
gpio_bits(0xf, inmux);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
||||
static void bttv_reset_audio(struct bttv *btv)
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@
|
|||
#define BTTV_BOARD_VOODOOTV_200 0x93
|
||||
#define BTTV_BOARD_DVICO_FUSIONHDTV_2 0x94
|
||||
#define BTTV_BOARD_TYPHOON_TVTUNERPCI 0x95
|
||||
#define BTTV_BOARD_GEOVISION_GV600 0x96
|
||||
|
||||
|
||||
/* more card-specific defines */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user