summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-cards.c31
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-tvaudio.c11
-rw-r--r--linux/drivers/media/video/saa7134/saa7134.h3
-rw-r--r--linux/include/linux/videodev2.h17
4 files changed, 49 insertions, 13 deletions
diff --git a/linux/drivers/media/video/saa7134/saa7134-cards.c b/linux/drivers/media/video/saa7134/saa7134-cards.c
index 000f5ecaf..836028b2d 100644
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c
@@ -1,5 +1,5 @@
/*
- * $Id: saa7134-cards.c,v 1.24 2004/09/15 16:15:24 kraxel Exp $
+ * $Id: saa7134-cards.c,v 1.25 2004/09/20 13:53:37 kraxel Exp $
*
* device driver for philips saa7134 based TV cards
* card-specific stuff.
@@ -650,6 +650,29 @@ struct saa7134_board saa7134_boards[] = {
.tv = 1,
}},
},
+ [SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS] = {
+ .name = "Compro VideoMate TV Gold+",
+ .audio_clock = 0x00187de7,
+ .tuner_type = TUNER_PHILIPS_NTSC_M,
+ .gpiomask = 0x800c0000,
+ .inputs = {{
+ .name = name_svideo,
+ .vmux = 8,
+ .amux = LINE1,
+ .gpio = 0x06c00012,
+ },{
+ .name = name_comp1,
+ .vmux = 3,
+ .amux = LINE1,
+ .gpio = 0x0ac20012,
+ },{
+ .name = name_tv,
+ .vmux = 1,
+ .amux = LINE2,
+ .gpio = 0x08c20012,
+ .tv = 1,
+ }},
+ },
[SAA7134_BOARD_CRONOS_PLUS] = {
/* gpio pins:
0 .. 3 BASE_ID
@@ -1241,6 +1264,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
.driver_data = SAA7134_BOARD_VIDEOMATE_TV,
},{
.vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
+ .subvendor = 0x185b,
+ .subdevice = 0xc100,
+ .driver_data = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
+ },{
+ .vendor = PCI_VENDOR_ID_PHILIPS,
.device = PCI_DEVICE_ID_PHILIPS_SAA7130,
.subvendor = PCI_VENDOR_ID_MATROX,
.subdevice = 0x48d0,
diff --git a/linux/drivers/media/video/saa7134/saa7134-tvaudio.c b/linux/drivers/media/video/saa7134/saa7134-tvaudio.c
index 25c3da74c..786c17d71 100644
--- a/linux/drivers/media/video/saa7134/saa7134-tvaudio.c
+++ b/linux/drivers/media/video/saa7134/saa7134-tvaudio.c
@@ -1,5 +1,5 @@
/*
- * $Id: saa7134-tvaudio.c,v 1.11 2004/09/16 15:38:41 kraxel Exp $
+ * $Id: saa7134-tvaudio.c,v 1.12 2004/09/20 13:53:37 kraxel Exp $
*
* device driver for philips saa7134 based TV cards
* tv audio decoder (fm stereo, nicam, ...)
@@ -745,6 +745,7 @@ static int getstereo_7133(struct saa7134_dev *dev)
static int mute_input_7133(struct saa7134_dev *dev)
{
u32 reg = 0;
+ int mask;
switch (dev->input->amux) {
case TV: reg = 0x02; break;
@@ -754,6 +755,14 @@ static int mute_input_7133(struct saa7134_dev *dev)
if (dev->ctl_mute)
reg = 0x07;
saa_writel(0x594 >> 2, reg);
+
+ /* switch gpio-connected external audio mux */
+ if (0 != card(dev).gpiomask) {
+ mask = card(dev).gpiomask;
+ saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, mask, mask);
+ saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, mask, dev->input->gpio);
+ saa7134_track_gpio(dev,dev->input->name);
+ }
return 0;
}
diff --git a/linux/drivers/media/video/saa7134/saa7134.h b/linux/drivers/media/video/saa7134/saa7134.h
index 9ab737501..03b6323c2 100644
--- a/linux/drivers/media/video/saa7134/saa7134.h
+++ b/linux/drivers/media/video/saa7134/saa7134.h
@@ -1,5 +1,5 @@
/*
- * $Id: saa7134.h,v 1.17 2004/09/15 16:15:24 kraxel Exp $
+ * $Id: saa7134.h,v 1.18 2004/09/20 13:53:37 kraxel Exp $
*
* v4l2 device driver for philips saa7134 based TV cards
*
@@ -180,6 +180,7 @@ struct saa7134_format {
#define SAA7134_BOARD_CINERGY200 38
#define SAA7134_BOARD_FLYTVPLATINUM 39
#define SAA7134_BOARD_VIDEOMATE_TV_PVR 40
+define SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS 41
#define SAA7134_INPUT_MAX 8
diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h
index 4cc0cd754..bc3e89deb 100644
--- a/linux/include/linux/videodev2.h
+++ b/linux/include/linux/videodev2.h
@@ -295,6 +295,8 @@ enum v4l2_mpeg_audiotype {
V4L2_MPEG_AU_2_I, /* MPEG-2 layer 1 */
V4L2_MPEG_AU_2_II, /* MPEG-2 layer 2 */
V4L2_MPEG_AU_2_III, /* MPEG-2 layer 3 */
+ V4L2_MPEG_AC3, /* AC3 */
+ V4L2_MPEG_LPCM, /* LPCM */
};
enum v4l2_mpeg_videotype {
V4L2_MPEG_VI_1, /* MPEG-1 */
@@ -302,8 +304,6 @@ enum v4l2_mpeg_videotype {
};
struct v4l2_mpeg_compression {
- /* FIXME: how to handle profiles? */
-
/* general */
enum v4l2_mpeg_streamtype st_type;
@@ -315,7 +315,7 @@ struct v4l2_mpeg_compression {
/* program stream */
u16 ps_size;
- u16 reserved0; /* placed here for alignment */
+ u16 reserved1; /* placed here for alignment */
/* audio */
enum v4l2_mpeg_audiotype au_type;
@@ -328,15 +328,12 @@ struct v4l2_mpeg_compression {
u32 vi_frame_rate;
u16 vi_frames_per_gop;
u16 vi_bframes_count;
-
-#if 0
- /* FIXME: found in iviv driver */
- gop_closure // whats this? sounds at least mpeg related?
- pulldown // we probably want that one ...
-#endif
+ int closed_gops:1;
+ int pulldown:1;
+ int reserved2:30;
/* I don't expect the above being perfect yet ;) */
- u32 reserved1[8];
+ u32 reserved3[8];
};
#endif