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

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

?? davicom.c

?? linux 內核源代碼
?? C
字號:
/* * 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/kernel.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/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 dm9161e_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 dm9161a_driver = {	.phy_id		= 0x0181b8a0,	.name		= "Davicom DM9161A",	.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(&dm9161e_driver);	if (ret)		goto err1;	ret = phy_driver_register(&dm9161a_driver);	if (ret)		goto err2;	ret = phy_driver_register(&dm9131_driver);	if (ret)		goto err3;	return 0; err3:	phy_driver_unregister(&dm9161a_driver); err2:	phy_driver_unregister(&dm9161e_driver); err1:	return ret;}static void __exit davicom_exit(void){	phy_driver_unregister(&dm9161e_driver);	phy_driver_unregister(&dm9161a_driver);	phy_driver_unregister(&dm9131_driver);}module_init(davicom_init);module_exit(davicom_exit);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲视频| 国产成人啪午夜精品网站男同| 国产日韩欧美综合在线| 欧美日韩国产美女| 欧美亚洲国产一卡| 精品婷婷伊人一区三区三| 日本道在线观看一区二区| 色综合久久综合网欧美综合网| 色综合中文字幕| 欧美性大战xxxxx久久久| 色婷婷精品久久二区二区蜜臂av| 成人黄色片在线观看| 国产91综合网| 成人国产精品视频| 91丨porny丨中文| 欧美亚洲日本一区| 538在线一区二区精品国产| 日韩一区二区在线免费观看| 日韩视频免费直播| 亚洲国产高清不卡| 亚洲美女屁股眼交3| 日韩av电影免费观看高清完整版 | 亚洲欧美一区二区在线观看| 亚洲婷婷在线视频| 日韩主播视频在线| 韩国av一区二区三区| 成人理论电影网| 欧美性xxxxxxxx| 欧美α欧美αv大片| 国产精品传媒视频| 午夜精品一区二区三区三上悠亚 | 精品国产乱码久久久久久久| 日本一区二区免费在线观看视频| 综合久久久久综合| 日韩综合小视频| 波多野结衣在线一区| 欧美偷拍一区二区| 久久久精品国产免费观看同学| 亚洲精品视频在线观看免费| 欧美a级理论片| 91丝袜美女网| 精品国产一二三| 亚洲妇女屁股眼交7| 国产盗摄女厕一区二区三区| 欧美精品精品一区| 欧美激情一区在线| 免费成人美女在线观看| 99久久精品一区二区| 日韩视频在线你懂得| 一区二区三区国产精品| 成人激情小说乱人伦| 日韩视频中午一区| 偷窥少妇高潮呻吟av久久免费| 成人动漫一区二区三区| 日韩女优电影在线观看| 亚洲国产va精品久久久不卡综合| 成人黄色软件下载| 国产亚洲精品超碰| 极品少妇xxxx精品少妇偷拍| 欧美剧情电影在线观看完整版免费励志电影 | 日本成人在线一区| 一本色道久久综合精品竹菊| 国产精品私人影院| 国产盗摄一区二区| www国产精品av| 日本中文字幕一区二区有限公司| 波波电影院一区二区三区| 国产色产综合产在线视频| 久久99热国产| 精品国产百合女同互慰| 免费观看在线综合| 欧美一区二区视频免费观看| 天堂av在线一区| 欧美精品在线一区二区三区| 天堂一区二区在线| 欧美乱熟臀69xxxxxx| 日日夜夜免费精品| 日韩一级精品视频在线观看| 麻豆高清免费国产一区| 精品av久久707| 国产乱码精品一区二区三区五月婷| 精品欧美黑人一区二区三区| 国产一区91精品张津瑜| 久久综合久久综合亚洲| 国产丶欧美丶日本不卡视频| 国产精品婷婷午夜在线观看| 91视频观看免费| 亚洲国产乱码最新视频| 欧美精品777| 国产专区综合网| 国产精品无码永久免费888| 99久久综合国产精品| 一区二区免费在线播放| 欧美人动与zoxxxx乱| 美女一区二区三区在线观看| 久久精品欧美日韩| 99视频精品免费视频| 亚洲国产aⅴ天堂久久| 欧美va日韩va| 成人免费高清视频在线观看| 亚洲免费在线视频| 欧美一级片在线| 粉嫩一区二区三区性色av| 亚洲精品日产精品乱码不卡| 777精品伊人久久久久大香线蕉| 久久99精品国产.久久久久久| 日本一区二区成人在线| 欧洲精品中文字幕| 国产一区二区三区最好精华液| 亚洲欧美综合色| 日韩欧美一区二区久久婷婷| 成人av电影免费在线播放| 亚欧色一区w666天堂| 国产日韩精品一区二区三区在线| 在线观看免费一区| 国产伦理精品不卡| 亚洲国产欧美在线人成| 久久美女艺术照精彩视频福利播放| 99久久久免费精品国产一区二区| 日韩国产欧美三级| 中文字幕一区二区视频| 日韩丝袜情趣美女图片| 在线观看免费亚洲| 成人免费看黄yyy456| 另类小说一区二区三区| 一区二区三区在线免费播放| 久久精品亚洲国产奇米99| 欧美肥妇毛茸茸| 色国产综合视频| a级精品国产片在线观看| 九一久久久久久| 日韩高清中文字幕一区| 亚洲女女做受ⅹxx高潮| 国产精品三级电影| 精品欧美一区二区在线观看| 欧美电影一区二区| 一本色道**综合亚洲精品蜜桃冫| 国产激情一区二区三区桃花岛亚洲| 日韩在线a电影| 亚洲一区二区三区四区五区中文| 国产精品私人影院| 欧美国产日韩a欧美在线观看| 欧美xxx久久| 欧美成人艳星乳罩| 制服丝袜亚洲色图| 欧美日韩成人一区| 欧美日韩一区二区三区高清| 欧美在线三级电影| 在线观看av一区二区| 一本色道久久综合狠狠躁的推荐| 国产99久久久精品| 高清av一区二区| 成人一区在线观看| jizzjizzjizz欧美| 91视频精品在这里| 欧洲av一区二区嗯嗯嗯啊| 一本到不卡精品视频在线观看| 99久久婷婷国产精品综合| 99久久综合色| 在线欧美日韩国产| 欧美日韩视频专区在线播放| 欧美另类久久久品| 日韩欧美亚洲国产精品字幕久久久| 欧美一区二区三区婷婷月色| 日韩精品一区二| 国产欧美一区视频| 亚洲欧洲另类国产综合| 夜夜嗨av一区二区三区中文字幕 | 国产精品久久久久久久第一福利| 国产欧美精品日韩区二区麻豆天美| 国产日韩av一区| 国产精品国产三级国产aⅴ无密码| 国产精品大尺度| 午夜国产精品一区| 麻豆精品一二三| 国产一区二区不卡老阿姨| 岛国精品一区二区| 日本久久电影网| 欧美精品xxxxbbbb| 久久久久久影视| 一区av在线播放| 久久成人精品无人区| 国产精品123| 欧美丝袜自拍制服另类| 欧美精品一区视频| 亚洲欧洲国产日韩| 乱中年女人伦av一区二区| 国产精一区二区三区| 在线看日韩精品电影| 精品久久久久久久久久久久久久久久久| 欧美国产欧美综合| 日韩精品一级二级| www.亚洲人| 日韩一级成人av| 国产精品电影一区二区三区| 免费成人av在线| 欧洲一区二区三区在线| 久久久午夜精品| 偷偷要91色婷婷| 97久久超碰国产精品电影|