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

📄 saa7134-cards.c

📁 该代码是天敏电视卡天敏大师4的核心芯片在linux下面的驱动
💻 C
📖 第 1 页 / 共 3 页
字号:
                .name           = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",                .audio_clock    = 0x187de7,  // xtal 32.1 MHz                .tuner_type     = TUNER_PHILIPS_PAL,                .inputs         = {{                        .name   = name_tv,                        .vmux   = 1,                        .amux   = TV,                        .tv     = 1,                },{                        .name   = name_tv_mono,                        .vmux   = 1,                        .amux   = LINE2,                        .tv     = 1,                },{                        .name   = name_comp1,                        .vmux   = 3,                        .amux   = LINE1,                },{                        .name   = name_svideo,                        .vmux   = 8,                        .amux   = LINE1,		},{			.name   = "CVid over SVid",			.vmux   = 0,			.amux   = LINE1,		}},                .radio = {                        .name   = name_radio,                        .amux   = LINE2,                },        },        [SAA7134_BOARD_ECS_TVP3XP_4CB5] = {                .name           = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",                .audio_clock    = 0x187de7,                .tuner_type     = TUNER_PHILIPS_NTSC,                .inputs         = {{                        .name   = name_tv,                        .vmux   = 1,                        .amux   = TV,                        .tv     = 1,                },{                        .name   = name_tv_mono,                        .vmux   = 1,                        .amux   = LINE2,                        .tv     = 1,                },{                        .name   = name_comp1,                        .vmux   = 3,                        .amux   = LINE1,                },{                        .name   = name_svideo,                        .vmux   = 8,                        .amux   = LINE1,                },{                        .name   = "CVid over SVid",                        .vmux   = 0,                        .amux   = LINE1,                }},                .radio = {                        .name   = name_radio,                        .amux   = LINE2,                },        },	[SAA7134_BOARD_AVACSSMARTTV] = {		/* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */		.name           = "AVACS SmartTV",		.audio_clock    = 0x00187de7,		.tuner_type     = TUNER_PHILIPS_PAL,		.inputs         = {{			.name = name_tv,			.vmux = 1,			.amux = TV,			.tv   = 1,                },{			.name = name_tv_mono,			.vmux = 1,			.amux = LINE2,			.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,			.gpio = 0x200000,		},	},	[SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {		/* Michael Smith <msmith@cbnco.com> */		.name           = "AVerMedia DVD EZMaker",		.audio_clock    = 0x00187de7,		.tuner_type     = TUNER_ABSENT,		.inputs         = {{			.name = name_comp1,			.vmux = 3,		}},	},};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_SAA7134,                .subvendor    = 0x4e42,				//"Typhoon PCI Capture TV Card" Art.No. 50673                .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_SAA7133,                .subvendor    = PCI_VENDOR_ID_ASUSTEK,                .subdevice    = 0x4843,                .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,	},{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = PCI_VENDOR_ID_ASUSTEK,                .subdevice    = 0x4840,                .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,	},{		/* AverMedia Studio 305, using AverMedia M156 entry for now */		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x1461, /* Avermedia Technologies Inc */                .subdevice    = 0x2115,		.driver_data  = SAA7134_BOARD_MD2819,	},{		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,                .subvendor    = 0x1461, /* Avermedia Technologies Inc */                .subdevice    = 0x10ff,		.driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,        },{		/* TransGear 3000TV */		.vendor       = PCI_VENDOR_ID_PHILIPS,		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,                .subvendor    = 0x1461, /* Avermedia Technologies Inc */                .subdevice    = 0x050c,		.driver_data  = SAA7134_BOARD_TG3000TV,	},{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x11bd,                .subdevice    = 0x002b,                .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,        },{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,                .subvendor    = 0x1019,                .subdevice    = 0x4cb4,                .driver_data  = SAA7134_BOARD_ECS_TVP3XP,        },{                .vendor       = PCI_VENDOR_ID_PHILIPS,                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,                .subvendor    = 0x1019,                .subdevice    = 0x4cb5,                .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,        },{				/* --- 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:	case SAA7134_BOARD_ECS_TVP3XP:	case SAA7134_BOARD_ECS_TVP3XP_4CB5:		dev->has_remote = 1;		break;	}	return 0;}/* ----------------------------------------------------------- *//* * Local variables: * c-basic-offset: 8 * End: */

⌨️ 快捷键说明

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