⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saa7134-cards.c

📁 电脑主机的PCI电视卡的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                .need_tda9887   = 1,                .inputs         = {{                        .name = name_tv,                        .vmux = 1,                        .amux = TV,                        .tv   = 1,#if 0 /* untested */                },{                        .name = name_comp1,                        .vmux = 4,                        .amux = LINE2,                },{                        .name = name_comp2,                        .vmux = 2,                        .amux = LINE2,                },{                        .name = name_svideo,                        .vmux = 6,                        .amux = LINE2,                },{                        .name = "S-Video2",                        .vmux = 7,                        .amux = LINE2,#endif                }},                .radio = {                        .name = name_radio,                        .amux = LINE1,                },	},	[SAA7134_BOARD_VA1000POWER] = {                .name           = "AOPEN VA1000 POWER",		.audio_clock    = 0x00187de7,		.tuner_type     = TUNER_PHILIPS_NTSC,                .inputs         = {{                        .name = name_svideo,                        .vmux = 8,                        .amux = LINE1,                },{                        .name = name_comp1,                        .vmux = 3,                        .amux = LINE1,                },{                        .name = name_tv,                        .vmux = 1,                        .amux = LINE2,                        .tv   = 1,                }},	},	[SAA7134_BOARD_10MOONSTVMASTER] = {		/* "lilicheng" <llc@linuxfans.org> */		.name           = "10MOONS PCI TV CAPTURE CARD",		.audio_clock    = 0x00200000,		.tuner_type     = TUNER_LG_PAL_NEW_TAPC,		.gpiomask       = 0xe000,		.inputs         = {{			.name = name_tv,			.vmux = 1,			.amux = LINE2,			.gpio = 0x0000,			.tv   = 1,		},{			.name = name_comp1,			.vmux = 0,			.amux = LINE2,			.gpio = 0x4000,		},{			.name = name_comp2,			.vmux = 3,			.amux = LINE2,			.gpio = 0x4000,		},{			.name = name_svideo,			.vmux = 8,			.amux = LINE2,			.gpio = 0x4000,		}},                .radio = {                        .name = name_radio,                        .amux = LINE2,			.gpio = 0x2000,                },		.mute = {			.name = name_mute,                        .amux = LINE2,			.gpio = 0x8000,		},	},	[SAA7134_BOARD_BMK_MPEX_NOTUNER] = {		/* "Andrew de Quincey" <adq@lidskialf.net> */		.name		= "BMK MPEX No Tuner",		.audio_clock	= 0x200000,		.tuner_type	= TUNER_ABSENT,		.inputs         = {{			.name = name_comp1,			.vmux = 4,			.amux = LINE1,		},{			.name = name_comp2,			.vmux = 3,			.amux = LINE1,		},{			.name = name_comp3,			.vmux = 0,			.amux = LINE1,		},{			.name = name_comp4,			.vmux = 1,			.amux = LINE1,		},{			.name = name_svideo,			.vmux = 8,			.amux = LINE1,		}},		.i2s_rate  = 48000,		.has_ts    = 1,		.video_out = CCIR656,	},	[SAA7134_BOARD_VIDEOMATE_TV] = {		.name           = "Compro VideoMate TV",		.audio_clock    = 0x00187de7,		.tuner_type     = TUNER_PHILIPS_NTSC_M,                .inputs         = {{                        .name = name_svideo,                        .vmux = 8,                        .amux = LINE1,                },{                        .name = name_comp1,                        .vmux = 3,                        .amux = LINE1,                },{                        .name = name_tv,                        .vmux = 1,                        .amux = LINE2,                        .tv   = 1,                }},        },	[SAA7134_BOARD_CRONOS_PLUS] = {		/* gpio pins:		   0  .. 3   BASE_ID		   4  .. 7   PROTECT_ID		   8  .. 11  USER_OUT		   12 .. 13  USER_IN		   14 .. 15  VIDIN_SEL */		.name           = "Matrox CronosPlus",		.tuner_type     = TUNER_ABSENT,		.gpiomask       = 0xcf00,                .inputs         = {{                        .name = name_comp1,                        .vmux = 0,			.gpio = 2 << 14,		},{                        .name = name_comp2,                        .vmux = 0,			.gpio = 1 << 14,		},{                        .name = name_comp3,                        .vmux = 0,			.gpio = 0 << 14,		},{                        .name = name_comp4,                        .vmux = 0,			.gpio = 3 << 14,		},{			.name = name_svideo,			.vmux = 8,			.gpio = 2 << 14,                }},        },	[SAA7134_BOARD_MD2819] = {		.name           = "Medion 2819",		.audio_clock    = 0x00187de7,		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,		.need_tda9887   = 1,		.inputs         = {{			.name = name_tv,			.vmux = 1,			.amux = TV,			.tv   = 1,		},{			.name = name_comp1,			.vmux = 0,			.amux = LINE2,		},{			.name = name_comp2,			.vmux = 3,			.amux = LINE2,		},{			.name = name_svideo,			.vmux = 8,			.amux = LINE2,		}},		.radio = {			.name = name_radio,			.amux = LINE2,		},	},	[SAA7134_BOARD_BMK_MPEX_TUNER] = {		/* "Greg Wickham <greg.wickham@grangenet.net> */		.name           = "BMK MPEX Tuner",		.audio_clock    = 0x200000,		.tuner_type     = TUNER_PHILIPS_PAL,		.inputs         = {{			.name = name_comp1,			.vmux = 1,			.amux = LINE1,		},{			.name = name_svideo,			.vmux = 8,			.amux = LINE1,		},{			.name = name_tv,			.vmux = 3,			.amux = TV,			.tv   = 1,		}},		.i2s_rate  = 48000,		.has_ts    = 1,		.video_out = CCIR656,        },};const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);/* ------------------------------------------------------------------ *//* PCI ids + subsystem IDs                                            */struct pci_device_id saa7134_pci_tbl[] = {	{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = PCI_VENDOR_ID_PHILIPS,		.subdevice    = 0x2001,		.driver_data  = SAA7134_BOARD_PROTEUS_PRO,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,		.subvendor    = PCI_VENDOR_ID_PHILIPS,		.subdevice    = 0x2001,		.driver_data  = SAA7134_BOARD_PROTEUS_PRO,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = PCI_VENDOR_ID_PHILIPS,		.subdevice    = 0x6752,		.driver_data  = SAA7134_BOARD_EMPRESS,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x1131,                .subdevice    = 0x4e85,		.driver_data  = SAA7134_BOARD_MONSTERTV,        },{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x153B,                .subdevice    = 0x1142,                .driver_data  = SAA7134_BOARD_CINERGY400,        },{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x153B,                .subdevice    = 0x1143,                .driver_data  = SAA7134_BOARD_CINERGY600,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = 0x5168,		.subdevice    = 0x0138,		.driver_data  = SAA7134_BOARD_FLYVIDEO3000,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,		.subvendor    = 0x5168,		.subdevice    = 0x0138,		.driver_data  = SAA7134_BOARD_FLYVIDEO2000,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = 0x16be,		.subdevice    = 0x0003,		.driver_data  = SAA7134_BOARD_MD7134,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,		.subvendor    = 0x1048,		.subdevice    = 0x226b,		.driver_data  = SAA7134_BOARD_ELSA,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,		.subvendor    = 0x1048,		.subdevice    = 0x226b,		.driver_data  = SAA7134_BOARD_ELSA_500TV,	},{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = PCI_VENDOR_ID_ASUSTEK,                .subdevice    = 0x4842,                .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,	},{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = PCI_VENDOR_ID_ASUSTEK,                .subdevice    = 0x4830,                .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = PCI_VENDOR_ID_PHILIPS,		.subdevice    = 0xfe01,		.driver_data  = SAA7134_BOARD_TVSTATION_RDS,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = 0x1894,		.subdevice    = 0xfe01,		.driver_data  = SAA7134_BOARD_TVSTATION_RDS,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,		.subvendor    = 0x1894,		.subdevice    = 0xa006,		.driver_data  = SAA7134_BOARD_TVSTATION_DVR,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x1131,                .subdevice    = 0x7133,		.driver_data  = SAA7134_BOARD_VA1000POWER,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,                .subvendor    = PCI_VENDOR_ID_PHILIPS,                .subdevice    = 0x2001,		.driver_data  = SAA7134_BOARD_10MOONSTVMASTER,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,                .subvendor    = 0x185b,                .subdevice    = 0xc100,		.driver_data  = SAA7134_BOARD_VIDEOMATE_TV,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,                .subvendor    = PCI_VENDOR_ID_MATROX,                .subdevice    = 0x48d0,		.driver_data  = SAA7134_BOARD_CRONOS_PLUS,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x1461, /* Avermedia Technologies Inc */                .subdevice    = 0xa70b,		.driver_data  = SAA7134_BOARD_MD2819,	},{				/* --- boards without eeprom + subsystem ID --- */                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = PCI_VENDOR_ID_PHILIPS,		.subdevice    = 0,		.driver_data  = SAA7134_BOARD_NOAUTO,        },{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,                .subvendor    = PCI_VENDOR_ID_PHILIPS,		.subdevice    = 0,		.driver_data  = SAA7134_BOARD_NOAUTO,	},{				/* --- default catch --- */		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,                .subvendor    = PCI_ANY_ID,                .subdevice    = PCI_ANY_ID,		.driver_data  = SAA7134_BOARD_UNKNOWN,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,                .subvendor    = PCI_ANY_ID,                .subdevice    = PCI_ANY_ID,		.driver_data  = SAA7134_BOARD_UNKNOWN,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = PCI_ANY_ID,                .subdevice    = PCI_ANY_ID,		.driver_data  = SAA7134_BOARD_UNKNOWN,        },{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7135,                .subvendor    = PCI_ANY_ID,                .subdevice    = PCI_ANY_ID,		.driver_data  = SAA7134_BOARD_UNKNOWN,	},{		/* --- end of list --- */	}};MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);/* ----------------------------------------------------------- *//* flyvideo tweaks                                             */#if 0static struct {	char  *model;	int   tuner_type;} fly_list[0x20] = {	/* default catch ... */	[ 0 ... 0x1f ] = {		.model      = "UNKNOWN",		.tuner_type = TUNER_ABSENT,	},	/* ... the ones known so far */	[ 0x05 ] = {		.model      = "PAL-BG",		.tuner_type = TUNER_LG_PAL_NEW_TAPC,	},	[ 0x10 ] = {		.model      = "PAL-BG / PAL-DK",		.tuner_type = TUNER_PHILIPS_PAL,	},	[ 0x15 ] = {		.model      = "NTSC",		.tuner_type = TUNER_ABSENT /* FIXME */,	},};#endifstatic void board_flyvideo(struct saa7134_dev *dev){#if 0	u32 value;	int index;	value = dev->gpio_value;	index = (value & 0x1f00) >> 8;	printk(KERN_INFO "%s: flyvideo: gpio is 0x%x [model=%s,tuner=%d]\n",	       dev->name, value, fly_list[index].model,	       fly_list[index].tuner_type);	dev->tuner_type = fly_list[index].tuner_type;#endif}/* ----------------------------------------------------------- */int saa7134_board_init(struct saa7134_dev *dev){	// Always print gpio, often manufacturers encode tuner type and other info.	saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);	dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);	printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);	switch (dev->board) {	case SAA7134_BOARD_FLYVIDEO2000:	case SAA7134_BOARD_FLYVIDEO3000:		board_flyvideo(dev);		dev->has_remote = 1;		break;	case SAA7134_BOARD_CINERGY400:	case SAA7134_BOARD_CINERGY600:		dev->has_remote = 1;		break;	}	return 0;}/* ----------------------------------------------------------- *//* * Local variables: * c-basic-offset: 8 * End: */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -