亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dw4002.c

?? linux下DVB/IP驅動原代碼 DVBWorld 公司產品 www.worlddvb.com
?? C
?? 第 1 頁 / 共 5 頁
字號:
void	dm1105_set_rx_mode (struct net_device *dev);void	__set_rx_mode (struct net_device *dev);void	dm1105_hw_start (struct net_device *dev);void	find_dev_version( struct dm1105_private *pdev );static const u8 dm1105_intr_mask = RxOK | RxErr;#define	IIC_StartBitMask	0x80#define	IIC_LenBitMask		0x7F#define	IIC_BusyBitMask		0x80#define	IIC_OKBitMask		0x40/////////////////////////////// Added by Kully 11-01-2006void IP_RX_tasklet_action(unsigned long t);int need_reception = 0;int need_reception_count =0;unsigned int stop_tasklet =0;struct net_device *local_dev = NULL;DECLARE_TASKLET(my_tasklet, IP_RX_tasklet_action, 0);unsigned char DMARSTFLAG = 0;void My_Task_Clean(){	stop_tasklet =1;	need_reception =0;	need_reception_count =0;	tasklet_kill(&my_tasklet);	local_dev = NULL;}void  find_dev_version( struct dm1105_private *pdev ){	card_info *pdev_info = &(pdev->dev_info);	if(pdev_info->vendor_id == DM1105_VENDOR_ID)	{		switch( pdev_info->device_id  )		{		case DM1105_DEVICE_ID:			pdev->Version = DW4002;			printk("\n DVBWORLD DW4002 DVBS PCI NIC!\n");			break;		default:			pdev->Version = UNKNOWN_DEV;			break;		}		return ;	}	else	{		pdev->Version = UNKNOWN_DEV;	}}int find_mac_addr(struct net_device *dev){	struct dm1105_private *tp;	void *ioaddr;	u8 status;	int i;		assert (dev != NULL);	assert (dev->priv != NULL);		tp = dev->priv;	ioaddr = tp->base_addr;		ANY_W8 (NIC_I2CCTR, 0x00);	ANY_W8 (NIC_I2CDAT, IIC_24C01_addr);/* Kully 10-25-2006	ANY_W8 (NIC_I2C_RA, 0x00);     // MAC address*/	ANY_W8 (NIC_I2C_RA, 0x20);     //Kully 10-25-2006	ANY_W8 (NIC_I2CCTR, 0x82);		for (i = 0; i < 10; i++) 	{		mdelay (10);  // 10ms		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;	}		if (i >= 10) 	{		//DPRINTK ("read 24C01 data error.\n");		return -1;	}		ANY_W8 (NIC_I2CCTR, 0x00);	ANY_W8 (NIC_I2CDAT, IIC_24C01_addr+1);		for (i = 0; i < 14; i++)		// "6" --> "14" Kully 10-25-2006		ANY_W8 (NIC_I2C_RA+i, 0x00);/* Kully 10-25-2006	ANY_W8 (NIC_I2CCTR, 0x87);  // 6 + 1*/		ANY_W8 (NIC_I2CCTR, 0x81+14);  // 14 + 1 Kully 10-25-2006	mdelay(10);	for (i = 0; i < 25; i++)		// "10" ---> "25" Kully 10-25-2006	{		mdelay (10);		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;	}		if (i >= 25)					// "10" ---> "25" Kully 10-25-2006	{		//		DPRINTK ("read 24C01 data error.\n");		return -1;	}		mdelay (10);/* Kully 10-25-2006	for (i = 0; i < 6; i++) 	{		dev->dev_addr[i] = ANY_R8 (NIC_I2C_RA+i);	}*/	//ANY_W8 (NIC_I2CCTR, 0x87);  // 6 + 1	for (i = 0; i < 14; i++)		//Kully 10-25-2006	{		 dev->dev_addr[i] = ANY_R8 (NIC_I2C_RA+i);	}/* Kully 10-25-2006	mdelay (8*10);	for (i = 0; i < 10; i++) 	{		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;		mdelay (10);	}*//* Kully 10-25-2006	memcpy (tp->MACaddr, dev->dev_addr, 6);*/	//////////////////////////////////////// Kully 10-25-2006	memcpy (tp->MACaddr, &dev->dev_addr[8], 6);	printk ("\n  MAC Address : ");	for(i = 0; i < 6; i++)	{		printk (" %2.2x  ",dev->dev_addr[8+i]);	}	printk("\n");	////////////////////////////////////////	return 1;}/*int find_mac_addr(struct net_device *dev){	struct dm1105_private *tp;	void *ioaddr;	u8 status;	int i;		assert (dev != NULL);	assert (dev->priv != NULL);		tp = dev->priv;	ioaddr = tp->base_addr;		ANY_W8 (NIC_I2CCTR, 0x00);	ANY_W8 (NIC_I2CDAT, IIC_24C01_addr);	ANY_W8 (NIC_I2C_RA, 0x00);     // MAC address	ANY_W8 (NIC_I2CCTR, 0x82);		for (i = 0; i < 10; i++) 	{		mdelay (10);  // 10ms		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;	}		if (i >= 10) 	{		//DPRINTK ("read 24C01 data error.\n");		return -1;	}		ANY_W8 (NIC_I2CCTR, 0x00);	ANY_W8 (NIC_I2CDAT, IIC_24C01_addr+1);	for (i = 0; i < 6; i++)		ANY_W8 (NIC_I2C_RA+i, 0x00);		ANY_W8 (NIC_I2CCTR, 0x87);  // 6 + 1		mdelay(10);	for (i = 0; i < 10; i++) 	{		mdelay (10);		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;	}		if (i >= 10) 	{		return -1;	}		mdelay (10);	for (i = 0; i < 6; i++) 	{		dev->dev_addr[i] = ANY_R8 (NIC_I2C_RA+i+0x28);	}	//ANY_W8 (NIC_I2CCTR, 0x87);  // 6 + 1		mdelay (8*10);	for (i = 0; i < 10; i++) 	{		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;		mdelay (10);	}//	for (i = 0; i < 6; i++) //	{//		dev->dev_addr[i] = ANY_R8 (NIC_I2C_RA+i+0x28);//	}	dev->dev_addr[0] = 0;	dev->dev_addr[1] = 0x18;	dev->dev_addr[2] = 0xbd;	dev->dev_addr[3] = 0;	dev->dev_addr[4] = 0x12;	dev->dev_addr[5] = 0x0c;		memcpy (tp->MACaddr, dev->dev_addr, 6);	printk ("Ethernet address : %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n",		dev->dev_addr[0], dev->dev_addr[1],		dev->dev_addr[2], dev->dev_addr[3],		dev->dev_addr[4], dev->dev_addr[5]);		return 1;}*//*int WriteEthernetAddressFrom24C01 (struct net_device *dev){	struct dm1105_private *tp;	void *ioaddr;	u8 status;	int i;		assert (dev != NULL);	assert (dev->priv != NULL);		tp = dev->priv;	ioaddr = tp->base_addr;		ANY_W8 (NIC_I2CCTR, 0x00);	ANY_W8 (NIC_I2CDAT, IIC_24C01_addr);	ANY_W8 (NIC_I2C_RA, 0x00);     // MAC address	for (i = 0; i < 6; i++)		ANY_W8 (NIC_I2C_RA+i, tp->MACaddr[i]);		ANY_W8 (NIC_I2CCTR, 0x88);  // 6 + 2		mdelay(10);	for (i = 0; i < 10; i++) 	{		mdelay (10);		status = ANY_R8 (NIC_I2CSTS);		if ((status & 0xc0) == 0x40)			break;	}		if (i >= 10) 	{		//DPRINTK ("write 24C01 data error.\n");		return -1;	}		memcpy (dev->dev_addr, tp->MACaddr, 6);	printk ("Ethernet address : %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n",		dev->dev_addr[0], dev->dev_addr[1],		dev->dev_addr[2], dev->dev_addr[3],		dev->dev_addr[4], dev->dev_addr[5]);		return 1;}*/void __dm1105_cleanup_dev (struct net_device *dev){	struct dm1105_private *tp;	struct pci_dev *pdev;		assert (dev != NULL);	assert (dev->priv != NULL);		tp = dev->priv;	assert (tp->pci_dev != NULL);	pdev = tp->pci_dev;		/* it's ok to call this even if we have no regions to free */	pci_release_regions (pdev);	#ifndef DM1105_NDEBUG	/* poison memory before freeing */	memset (dev, 0xBC, sizeof (struct net_device) + sizeof (struct dm1105_private));#endif 		kfree (dev);		pci_set_drvdata (pdev, NULL);}int __devinit dm1105_probe_one( struct pci_dev *pdev, const struct pci_device_id *ent ){	struct	net_device *dev = NULL;	struct	dm1105_private *tp;	//struct	card_info device_info;	int		i, option;	static int	board_idx = -1;	u8			pci_rev;	u16			vendor_id;	u16			device_id;	void	*ioaddr;	u32	pio_start, pio_end, pio_flags, pio_len;		assert (pdev != NULL);	assert (ent != NULL);		board_idx++;		pci_read_config_byte(pdev, PCI_REVISION_ID, &pci_rev);	pci_read_config_word(pdev, PCI_DEVICE_ID, &device_id );	pci_read_config_word(pdev, PCI_VENDOR_ID, &vendor_id );	#ifndef MODULE	{		static int printed_version;	}#endif			// enable device (incl. PCI PM wakeup and hotplug setup) 	i = pci_enable_device (pdev);	if (i)		goto err_out;		// dev and dev->priv zeroed in alloc_etherdev	dev = alloc_etherdev( sizeof (*tp));	if (dev == NULL) 	{		return -ENOMEM;	}	//	printk("DEVICE_ID : 0x%x; VENDOR_ID : 0x%x\n", device_id,vendor_id);		SET_MODULE_OWNER(dev);	tp = dev->priv;	tp->pci_dev = pdev;	tp->dev_info.device_id = device_id;	tp->dev_info.vendor_id = vendor_id;		pio_start = pci_resource_start (pdev, 0);	pio_end = pci_resource_end (pdev, 0);	pio_flags = pci_resource_flags (pdev, 0);	pio_len = pci_resource_len (pdev, 0);		// make sure PCI base addr 0 is PIO 	if (!(pio_flags & IORESOURCE_IO)) 	{//		printk ("KERN_ERR PFX %s: region #0 not a PIO resource, aborting\n", pdev->slot_name);      		i = -ENODEV;		goto err_out;	}	// check for weird/broken PCI region reporting	if (pio_len < ANY_MIN_IO_SIZE) 	{//		printk ("KERN_ERR PFX %s: Invalid PCI I/O region size(s), aborting\n", pdev->slot_name);		i = -ENODEV;		goto err_out;	}		i = pci_request_regions( pdev, DRV_NAME );	if(i)		goto err_out;		// enable PCI bus-mastering	pci_set_master (pdev);		ioaddr = (void *) pio_start;	dev->base_addr = pio_start;	tp->base_addr = ioaddr;	tp->regs_len = pio_len;	/////////////////////////////////////////////////////////////Kully 10-26-2006	local_ioaddr = ((struct dm1105_private *)(dev->priv))->base_addr;	/////////////////////////////////////////////////////////////		find_dev_version( tp );		find_mac_addr(dev);	///////////////////////// Check EEPROM Data, Kully 10-26-2006	if(dev->dev_addr[0] != 0xc0) 	{		i = -ENODEV;//		printk("\n Card error0!\n");		goto err_out;	}	if(dev->dev_addr[1] != 0xb4) 	{		i = -ENODEV;//		printk("\n Card error1!\n");		goto err_out;	}	if(dev->dev_addr[2] != 0x04) 	{		i = -ENODEV;//		printk("\n Card error2!\n");		goto err_out;	}	if(dev->dev_addr[3] != 0x02) 	{		i = -ENODEV;//		printk("\n Card error3!\n");		goto err_out;	}	if(dev->dev_addr[4] != 0x40) 	{		i = -ENODEV;//		printk("\n Card error4!\n");		goto err_out;	}	if(dev->dev_addr[5] != 0x42) 	{		i = -ENODEV;//		printk("\n Card error5!\n");		goto err_out;	}	if(dev->dev_addr[6] != 0x02) 	{		i = -ENODEV;//		printk("\n Card error6!\n");		goto err_out;	}	if(dev->dev_addr[7] != 0x00) 	{		i = -ENODEV;//		printk("\n Card error7!\n");		goto err_out;	}	memcpy (dev->dev_addr, tp->MACaddr, 6);
	/////////////////////////	/////////////////////////	dev->open = dm1105_open;	dev->stop = dm1105_close;		dev->do_ioctl = netdev_ioctl;		dev->hard_start_xmit = dm1105_start_xmit;	dev->get_stats = dm1105_get_stats;	dev->set_multicast_list = dm1105_set_rx_mode;	dev->tx_timeout = NULL;//dm1105_tx_timeout;	dev->watchdog_timeo = TX_TIMEOUT;		dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;// | NETIF_F_HIGHDMA;	dev->irq = pdev->irq;		spin_lock_init (&tp->lock);		/* dev is fully set up and ready to use now */	i = register_netdev( dev );	if (i)		goto err_out;		pci_set_drvdata (pdev, dev);		//	printk ("%s(%p): %s at 0x%lx, "	//		 "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x, "	//		"IRQ %d\n",	//		dev->name, dev,	//		board_info[ent->driver_data].name,	//		dev->base_addr,	//		dev->dev_addr[0], dev->dev_addr[1],	//		dev->dev_addr[2], dev->dev_addr[3],	//		dev->dev_addr[4], dev->dev_addr[5],	//		dev->irq);		option = (board_idx >= MAX_UNITS) ? 0 : media[board_idx];	if (option > 0)	{		tp->default_port = option & 0xFF;	}	else	{		tp->default_port = 0;	}		tp->found_and_inuse = 0;	tp->PacketErrorCount=0;		return 0;	err_out:	__dm1105_cleanup_dev (dev);	return i;}void __devexit dm1105_remove_one (struct pci_dev *pdev){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人自拍网| 在线精品亚洲一区二区不卡| 国产精品亚洲а∨天堂免在线| 成人激情免费网站| 欧美一区二区国产| 亚洲午夜在线观看视频在线| 国产麻豆精品一区二区| 欧美裸体一区二区三区| 国产精品不卡在线观看| 黑人巨大精品欧美一区| 欧美日韩免费不卡视频一区二区三区| 久久精品人人做人人爽97| 天天操天天干天天综合网| 99久久免费视频.com| 久久久久国产精品麻豆| 美女在线一区二区| 欧美日韩精品一区二区三区| 国产精品久久久久影院| 国产精品一区二区久久精品爱涩| 欧美久久久久中文字幕| 亚洲国产综合在线| 色婷婷狠狠综合| 亚洲欧美日韩电影| 成人av在线资源网站| 中文字幕 久热精品 视频在线| 精品一区二区三区影院在线午夜 | 一区二区三区高清| 成人av综合在线| 国产精品久久久久久久久晋中 | 国产日本一区二区| 国产在线精品一区二区夜色| 欧美一区二区三区四区在线观看| 偷窥少妇高潮呻吟av久久免费| 欧美综合色免费| 日韩黄色片在线观看| 欧美疯狂性受xxxxx喷水图片| 爽爽淫人综合网网站| 7777精品伊人久久久大香线蕉完整版 | 粉嫩在线一区二区三区视频| 久久久久久久久久久99999| 狠狠v欧美v日韩v亚洲ⅴ| 国产网红主播福利一区二区| 蜜桃av一区二区三区电影| 欧美一区二区三区视频在线| 麻豆高清免费国产一区| 久久综合九色综合欧美亚洲| 国产成人免费视频精品含羞草妖精| 久久老女人爱爱| 91丨porny丨国产| 一区二区三区四区av| 欧美二区三区的天堂| 麻豆精品精品国产自在97香蕉 | 在线观看视频一区二区 | 国产一区二区三区久久久| 国产婷婷精品av在线| 色综合久久久久久久| 亚洲成国产人片在线观看| 日韩欧美电影一区| 国产99久久精品| 亚洲高清视频中文字幕| 337p粉嫩大胆色噜噜噜噜亚洲| 国v精品久久久网| 亚洲成人av在线电影| 久久久www免费人成精品| 色综合天天综合网天天狠天天 | 一区二区三区在线播放| 91精品国产一区二区| 国产乱码精品一区二区三区av | 日韩一区二区三区在线| 国产+成+人+亚洲欧洲自线| 亚洲尤物视频在线| 久久亚洲精精品中文字幕早川悠里| 99久久婷婷国产综合精品电影| 日韩国产欧美视频| 中文字幕一区二区5566日韩| 欧美一区午夜视频在线观看| 不卡av在线网| 久久电影国产免费久久电影 | 中文字幕精品三区| 欧美日本在线播放| 成人黄色在线网站| 久久精品国产澳门| 香蕉av福利精品导航| 中文字幕欧美三区| 精品久久久久久久久久久久久久久久久| 99热99精品| 国产精一品亚洲二区在线视频| 性久久久久久久久| 玉米视频成人免费看| 国产人成一区二区三区影院| 欧美一区二区三区四区在线观看| 不卡视频在线观看| 国产一区二区看久久| 日韩不卡一二三区| 亚洲国产一区在线观看| 亚洲欧洲中文日韩久久av乱码| xfplay精品久久| 日韩欧美国产一区二区三区| 欧美影视一区在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 久久se这里有精品| 舔着乳尖日韩一区| 一区二区三区成人在线视频| 日韩毛片一二三区| 国产精品久久久久久久第一福利| 精品国产第一区二区三区观看体验 | 91在线观看美女| 不卡av在线免费观看| 国产91精品一区二区麻豆网站| 麻豆国产欧美一区二区三区| 日韩电影一区二区三区四区| 亚洲va欧美va人人爽午夜| 一级做a爱片久久| 亚洲一卡二卡三卡四卡五卡| 1000精品久久久久久久久| 亚洲三级视频在线观看| 中文字幕视频一区| 亚洲三级电影网站| 一区二区视频在线看| 一区二区三区国产| 天堂av在线一区| 秋霞电影网一区二区| 精品一区二区三区免费毛片爱| 极品美女销魂一区二区三区免费| 美女爽到高潮91| 狠狠色综合日日| 粉嫩绯色av一区二区在线观看| av在线这里只有精品| 色噜噜狠狠色综合中国| 欧美亚洲精品一区| 欧美一区二区三区色| 亚洲精品一区二区三区在线观看| 国产亚洲精品精华液| 国产精品色噜噜| 亚洲午夜电影网| 久88久久88久久久| 成人午夜电影久久影院| 在线欧美一区二区| 欧美一卡2卡三卡4卡5免费| 久久久精品蜜桃| 一区二区三区日韩| 蜜桃av噜噜一区| 不卡一二三区首页| 在线播放日韩导航| 中文字幕精品综合| 亚州成人在线电影| 成人一区二区三区| 欧美三级日韩三级| 久久精品男人的天堂| 亚洲精品ww久久久久久p站| 麻豆高清免费国产一区| av资源网一区| 欧美xxxx在线观看| 亚洲天堂a在线| 精品一区精品二区高清| 99re成人在线| 欧美大片在线观看| 亚洲精品免费在线观看| 国产一区二区三区免费观看| 97久久精品人人爽人人爽蜜臀| 日韩一卡二卡三卡国产欧美| 国产情人综合久久777777| 丝袜脚交一区二区| 色老综合老女人久久久| 欧美mv日韩mv国产| 亚洲第一主播视频| 成人免费毛片app| 欧美一区二区三区不卡| 亚洲另类在线制服丝袜| 国产精品白丝av| 欧美一区二区三区白人| 一区二区三区四区中文字幕| 国模一区二区三区白浆| 欧美另类z0zxhd电影| 亚洲人成精品久久久久| 国产999精品久久久久久| 精品少妇一区二区三区在线视频| 91福利精品第一导航| 欧美日韩国产另类一区| 中文字幕日韩精品一区| 成人综合在线观看| 精品欧美乱码久久久久久1区2区| 亚洲高清不卡在线观看| 色呦呦网站一区| 中文字幕综合网| 91视频国产资源| 亚洲日本中文字幕区| 99vv1com这只有精品| 国产精品久久久久影院色老大| 国产精品综合二区| 久久久精品蜜桃| 高清不卡在线观看av| 国产三级一区二区三区| 国产精品一区二区久久不卡 | 一区二区三区在线高清| 色一情一伦一子一伦一区| 18欧美亚洲精品| 色综合 综合色| 亚洲免费观看高清完整| 欧美又粗又大又爽|