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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? davicom.c

?? 底層驅(qū)動(dòng)開發(fā)
?? C
字號(hào):
/* * drivers/net/phy/davicom.c * * Driver for Davicom PHYs * * Author: Andy Fleming * * Copyright (c) 2004 Freescale Semiconductor, Inc. * * This program is free software; you can redistribute  it and/or modify it * under  the terms of  the GNU General  Public License as published by the * Free Software Foundation;  either version 2 of the  License, or (at your * option) any later version. * */#include <linux/config.h>#include <linux/kernel.h>#include <linux/sched.h>#include <linux/string.h>#include <linux/errno.h>#include <linux/unistd.h>#include <linux/slab.h>#include <linux/interrupt.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/skbuff.h>#include <linux/spinlock.h>#include <linux/mm.h>#include <linux/module.h>#include <linux/version.h>#include <linux/mii.h>#include <linux/ethtool.h>#include <linux/phy.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/uaccess.h>#define MII_DM9161_SCR		0x10#define MII_DM9161_SCR_INIT	0x0610/* DM9161 Interrupt Register */#define MII_DM9161_INTR	0x15#define MII_DM9161_INTR_PEND		0x8000#define MII_DM9161_INTR_DPLX_MASK	0x0800#define MII_DM9161_INTR_SPD_MASK	0x0400#define MII_DM9161_INTR_LINK_MASK	0x0200#define MII_DM9161_INTR_MASK		0x0100#define MII_DM9161_INTR_DPLX_CHANGE	0x0010#define MII_DM9161_INTR_SPD_CHANGE	0x0008#define MII_DM9161_INTR_LINK_CHANGE	0x0004#define MII_DM9161_INTR_INIT 		0x0000#define MII_DM9161_INTR_STOP	\(MII_DM9161_INTR_DPLX_MASK | MII_DM9161_INTR_SPD_MASK \ | MII_DM9161_INTR_LINK_MASK | MII_DM9161_INTR_MASK)/* DM9161 10BT Configuration/Status */#define MII_DM9161_10BTCSR	0x12#define MII_DM9161_10BTCSR_INIT	0x7800MODULE_DESCRIPTION("Davicom PHY driver");MODULE_AUTHOR("Andy Fleming");MODULE_LICENSE("GPL");#define DM9161_DELAY 1static int dm9161_config_intr(struct phy_device *phydev){	int temp;	temp = phy_read(phydev, MII_DM9161_INTR);	if (temp < 0)		return temp;	if(PHY_INTERRUPT_ENABLED == phydev->interrupts )		temp &= ~(MII_DM9161_INTR_STOP);	else		temp |= MII_DM9161_INTR_STOP;	temp = phy_write(phydev, MII_DM9161_INTR, temp);	return temp;}static int dm9161_config_aneg(struct phy_device *phydev){	int err;	/* Isolate the PHY */	err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE);	if (err < 0)		return err;	/* Configure the new settings */	err = genphy_config_aneg(phydev);	if (err < 0)		return err;	return 0;}static int dm9161_config_init(struct phy_device *phydev){	int err;	/* Isolate the PHY */	err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE);	if (err < 0)		return err;	/* Do not bypass the scrambler/descrambler */	err = phy_write(phydev, MII_DM9161_SCR, MII_DM9161_SCR_INIT);	if (err < 0)		return err;	/* Clear 10BTCSR to default */	err = phy_write(phydev, MII_DM9161_10BTCSR, MII_DM9161_10BTCSR_INIT);	if (err < 0)		return err;	/* Reconnect the PHY, and enable Autonegotiation */	err = phy_write(phydev, MII_BMCR, BMCR_ANENABLE);	if (err < 0)		return err;	return 0;}static int dm9161_ack_interrupt(struct phy_device *phydev){	int err = phy_read(phydev, MII_DM9161_INTR);	return (err < 0) ? err : 0;}static struct phy_driver dm9161_driver = {	.phy_id		= 0x0181b880,	.name		= "Davicom DM9161E",	.phy_id_mask	= 0x0ffffff0,	.features	= PHY_BASIC_FEATURES,	.config_init	= dm9161_config_init,	.config_aneg	= dm9161_config_aneg,	.read_status	= genphy_read_status,	.driver 	= { .owner = THIS_MODULE,},};static struct phy_driver dm9131_driver = {	.phy_id		= 0x00181b80,	.name		= "Davicom DM9131",	.phy_id_mask	= 0x0ffffff0,	.features	= PHY_BASIC_FEATURES,	.flags		= PHY_HAS_INTERRUPT,	.config_aneg	= genphy_config_aneg,	.read_status	= genphy_read_status,	.ack_interrupt	= dm9161_ack_interrupt,	.config_intr	= dm9161_config_intr,	.driver 	= { .owner = THIS_MODULE,},};static int __init davicom_init(void){	int ret;	ret = phy_driver_register(&dm9161_driver);	if (ret)		goto err1;	ret = phy_driver_register(&dm9131_driver);	if (ret)		goto err2;	return 0; err2:		phy_driver_unregister(&dm9161_driver); err1:	return ret;}static void __exit davicom_exit(void){	phy_driver_unregister(&dm9161_driver);	phy_driver_unregister(&dm9131_driver);}module_init(davicom_init);module_exit(davicom_exit);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文字幕一区二区| 国产精品 欧美精品| 欧美婷婷六月丁香综合色| 亚洲色图欧美偷拍| 91福利在线播放| 天天色综合天天| 日韩一区二区三区在线视频| 99精品久久只有精品| 亚洲欧美一区二区三区极速播放| 色欲综合视频天天天| 亚洲va欧美va人人爽午夜| 日韩一区二区三区三四区视频在线观看| 青娱乐精品在线视频| 26uuu国产日韩综合| www.亚洲色图.com| 亚洲综合精品自拍| 日韩一区二区三区免费看 | 久久国产精品无码网站| 久久综合给合久久狠狠狠97色69| 成人福利视频在线| 亚洲综合色自拍一区| 日韩精品一区二区三区中文不卡 | 国产xxx精品视频大全| 国内不卡的二区三区中文字幕| 精品乱人伦小说| 成人黄色一级视频| 亚洲v精品v日韩v欧美v专区| 精品国产一区二区亚洲人成毛片| 成人国产亚洲欧美成人综合网| 亚洲一区二区在线观看视频| 26uuu国产电影一区二区| 色悠久久久久综合欧美99| 三级欧美韩日大片在线看| 欧美激情艳妇裸体舞| 欧美在线一二三| 国产高清在线精品| 五月婷婷综合激情| 国产精品国产精品国产专区不蜜| 91麻豆精品国产91久久久资源速度 | 欧美又粗又大又爽| 国产一区二区毛片| 亚洲高清不卡在线观看| 国产精品区一区二区三区| 欧美一区二区三区影视| 99视频精品全部免费在线| 免费在线看一区| 亚洲激情图片一区| 欧美国产成人在线| 欧美精品一区二区久久婷婷| 欧美喷潮久久久xxxxx| 成人18视频在线播放| 国产在线一区观看| 日韩黄色免费电影| 亚洲精品精品亚洲| 欧美国产乱子伦| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩精品电影| 91免费在线看| 成人av网址在线| 国产成人自拍在线| 国产一区二区三区黄视频 | 日韩一区欧美小说| 久久综合久久久久88| 91精品黄色片免费大全| 欧美性一二三区| 91福利视频在线| 一本色道**综合亚洲精品蜜桃冫| 成人免费毛片aaaaa**| 国产成人一区在线| 国内国产精品久久| 精品在线免费观看| 国产一区视频网站| 国产在线一区二区综合免费视频| 蜜臀av性久久久久蜜臀aⅴ| 日日夜夜精品视频天天综合网| 一区二区三区在线观看国产| 亚洲欧美经典视频| 伊人一区二区三区| 亚洲综合色网站| 成人小视频免费在线观看| 精品一区二区日韩| 韩国午夜理伦三级不卡影院| 激情综合亚洲精品| 国产在线国偷精品产拍免费yy| 精品一区二区在线看| 国产自产视频一区二区三区| 国产乱子轮精品视频| 国产成人亚洲综合a∨猫咪| 国产不卡视频在线播放| 成人美女视频在线观看| 色婷婷av一区二区三区gif | 国产一区三区三区| 国产成人精品影视| 99精品偷自拍| 欧洲亚洲精品在线| 91精品国产综合久久福利| 精品欧美久久久| 久久免费美女视频| 亚洲视频一二三| 午夜精品久久久久久久99水蜜桃| 日韩影院精彩在线| 国产在线不卡一区| 91在线看国产| 欧美三级一区二区| 精品久久一区二区三区| 国产精品二三区| 午夜精品久久久久久久| 国产又黄又大久久| 99久久久精品| 欧美一区二区三区在线视频| 久久久久久久久免费| 一区二区三区欧美亚洲| 蜜臀av在线播放一区二区三区| 国产精品一二三区在线| 91在线观看下载| 日韩欧美一级在线播放| 中文字幕一区二区在线播放| 日韩精品一级中文字幕精品视频免费观看 | 国产一区久久久| 91亚洲精华国产精华精华液| 91精品国产欧美一区二区18| 国产精品乱人伦中文| 日韩经典中文字幕一区| www.99精品| 日韩欧美中文一区二区| 亚洲欧美国产毛片在线| 国产综合色精品一区二区三区| 91在线高清观看| www日韩大片| 午夜精品久久久久久不卡8050 | 成人性色生活片| 91精品国产乱码久久蜜臀| 国产精品久久久久久久第一福利 | 日韩视频一区二区在线观看| 亚洲欧美日韩系列| 激情偷乱视频一区二区三区| 久久精品欧美日韩| 午夜视频一区二区| 91在线丨porny丨国产| 久久久久亚洲综合| 蜜桃av噜噜一区二区三区小说| 色嗨嗨av一区二区三区| 久久久久久久久久久久久女国产乱| 亚洲第一狼人社区| 94-欧美-setu| 国产农村妇女精品| 美女诱惑一区二区| 欧美高清www午色夜在线视频| 亚洲日本韩国一区| 丁香五精品蜜臀久久久久99网站| 日韩一卡二卡三卡四卡| 日日夜夜免费精品| 欧美特级限制片免费在线观看| 中文字幕在线不卡| 成人黄页在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 国内成+人亚洲+欧美+综合在线 | 亚洲女厕所小便bbb| 成人黄色a**站在线观看| 国产亚洲自拍一区| 国产精品1区2区3区| 欧美精品一区二区三区高清aⅴ| 日本欧美在线观看| 91麻豆精品国产91| 日韩黄色免费网站| 日韩一区二区免费高清| 婷婷六月综合网| 欧美理论片在线| 日日摸夜夜添夜夜添国产精品| 欧美日韩三级在线| 水蜜桃久久夜色精品一区的特点| 在线视频中文字幕一区二区| 一区二区三区在线高清| 欧美视频在线一区二区三区 | 日韩av成人高清| 欧美一区二区三区四区五区| 日本v片在线高清不卡在线观看| 欧美一区二区三区视频免费播放| 日韩国产精品91| 精品久久一区二区三区| 国产成人8x视频一区二区| 日本一区二区高清| 色欧美片视频在线观看在线视频| 亚洲精品高清视频在线观看| 欧美无砖专区一中文字| 日韩精品国产精品| 日韩精品中午字幕| 懂色av一区二区三区蜜臀| 亚洲人123区| 欧美日韩黄色影视| 美日韩一区二区| 国产欧美日韩在线看| av一区二区三区黑人| 亚洲第一av色| 欧美电视剧免费全集观看| 国产成人aaa| 一区二区三区欧美激情| 欧美一区二区三区在线观看| 丁香五精品蜜臀久久久久99网站| 日韩伦理免费电影|