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

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

?? bcu.c

?? 底層驅(qū)動(dòng)開(kāi)發(fā)
?? C
字號(hào):
/* *  bcu.c, Bus Control Unit routines for the NEC VR4100 series. * *  Copyright (C) 2002  MontaVista Software Inc. *    Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com> *  Copyright (C) 2003-2005  Yoichi Yuasa <yuasa@hh.iij4u.or.jp> * *  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. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//* * Changes: *  MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com> *  - New creation, NEC VR4122 and VR4131 are supported. *  - Added support for NEC VR4111 and VR4121. * *  Yoichi Yuasa <yuasa@hh.iij4u.or.jp> *  - Added support for NEC VR4133. */#include <linux/kernel.h>#include <linux/module.h>#include <linux/smp.h>#include <linux/types.h>#include <asm/cpu.h>#include <asm/io.h>#define CLKSPEEDREG_TYPE1	(void __iomem *)KSEG1ADDR(0x0b000014)#define CLKSPEEDREG_TYPE2	(void __iomem *)KSEG1ADDR(0x0f000014) #define CLKSP(x)		((x) & 0x001f) #define CLKSP_VR4133(x)	((x) & 0x0007) #define DIV2B			0x8000 #define DIV3B			0x4000 #define DIV4B			0x2000 #define DIVT(x)		(((x) & 0xf000) >> 12) #define DIVVT(x)		(((x) & 0x0f00) >> 8) #define TDIVMODE(x)		(2 << (((x) & 0x1000) >> 12)) #define VTDIVMODE(x)		(((x) & 0x0700) >> 8)static unsigned long vr41xx_vtclock;static unsigned long vr41xx_tclock;unsigned long vr41xx_get_vtclock_frequency(void){	return vr41xx_vtclock;}EXPORT_SYMBOL_GPL(vr41xx_get_vtclock_frequency);unsigned long vr41xx_get_tclock_frequency(void){	return vr41xx_tclock;}EXPORT_SYMBOL_GPL(vr41xx_get_tclock_frequency);static inline uint16_t read_clkspeed(void){	switch (current_cpu_data.cputype) {	case CPU_VR4111:	case CPU_VR4121: return readw(CLKSPEEDREG_TYPE1);	case CPU_VR4122:	case CPU_VR4131:	case CPU_VR4133: return readw(CLKSPEEDREG_TYPE2);	default:		printk(KERN_INFO "Unexpected CPU of NEC VR4100 series\n");		break;	}	return 0;}static inline unsigned long calculate_pclock(uint16_t clkspeed){	unsigned long pclock = 0;	switch (current_cpu_data.cputype) {	case CPU_VR4111:	case CPU_VR4121:		pclock = 18432000 * 64;		pclock /= CLKSP(clkspeed);		break;	case CPU_VR4122:		pclock = 18432000 * 98;		pclock /= CLKSP(clkspeed);		break;	case CPU_VR4131:		pclock = 18432000 * 108;		pclock /= CLKSP(clkspeed);		break;	case CPU_VR4133:		switch (CLKSP_VR4133(clkspeed)) {		case 0:			pclock = 133000000;			break;		case 1:			pclock = 149000000;			break;		case 2:			pclock = 165900000;			break;		case 3:			pclock = 199100000;			break;		case 4:			pclock = 265900000;			break;		default:			printk(KERN_INFO "Unknown PClock speed for NEC VR4133\n");			break;		}		break;	default:		printk(KERN_INFO "Unexpected CPU of NEC VR4100 series\n");		break;	}	printk(KERN_INFO "PClock: %ldHz\n", pclock);	return pclock;}static inline unsigned long calculate_vtclock(uint16_t clkspeed, unsigned long pclock){	unsigned long vtclock = 0;	switch (current_cpu_data.cputype) {	case CPU_VR4111:		/* The NEC VR4111 doesn't have the VTClock. */		break;	case CPU_VR4121:		vtclock = pclock;		/* DIVVT == 9 Divide by 1.5 . VTClock = (PClock * 6) / 9 */		if (DIVVT(clkspeed) == 9)			vtclock = pclock * 6;		/* DIVVT == 10 Divide by 2.5 . VTClock = (PClock * 4) / 10 */		else if (DIVVT(clkspeed) == 10)			vtclock = pclock * 4;		vtclock /= DIVVT(clkspeed);		printk(KERN_INFO "VTClock: %ldHz\n", vtclock);		break;	case CPU_VR4122:		if(VTDIVMODE(clkspeed) == 7)			vtclock = pclock / 1;		else if(VTDIVMODE(clkspeed) == 1)			vtclock = pclock / 2;		else			vtclock = pclock / VTDIVMODE(clkspeed);		printk(KERN_INFO "VTClock: %ldHz\n", vtclock);		break;	case CPU_VR4131:	case CPU_VR4133:		vtclock = pclock / VTDIVMODE(clkspeed);		printk(KERN_INFO "VTClock: %ldHz\n", vtclock);		break;	default:		printk(KERN_INFO "Unexpected CPU of NEC VR4100 series\n");		break;	}	return vtclock;}static inline unsigned long calculate_tclock(uint16_t clkspeed, unsigned long pclock,                                             unsigned long vtclock){	unsigned long tclock = 0;	switch (current_cpu_data.cputype) {	case CPU_VR4111:		if (!(clkspeed & DIV2B))        		tclock = pclock / 2;		else if (!(clkspeed & DIV3B))        		tclock = pclock / 3;		else if (!(clkspeed & DIV4B))        		tclock = pclock / 4;		break;	case CPU_VR4121:		tclock = pclock / DIVT(clkspeed);		break;	case CPU_VR4122:	case CPU_VR4131:	case CPU_VR4133:		tclock = vtclock / TDIVMODE(clkspeed);		break;	default:		printk(KERN_INFO "Unexpected CPU of NEC VR4100 series\n");		break;	}	printk(KERN_INFO "TClock: %ldHz\n", tclock);	return tclock;}void vr41xx_calculate_clock_frequency(void){	unsigned long pclock;	uint16_t clkspeed;	clkspeed = read_clkspeed();	pclock = calculate_pclock(clkspeed);	vr41xx_vtclock = calculate_vtclock(clkspeed, pclock);	vr41xx_tclock = calculate_tclock(clkspeed, pclock, vr41xx_vtclock);}EXPORT_SYMBOL_GPL(vr41xx_calculate_clock_frequency);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级一区二区| 国精品**一区二区三区在线蜜桃| 欧美视频在线一区| 国产成人av一区二区三区在线 | 欧美精三区欧美精三区| 国产精品小仙女| 香港成人在线视频| 中文乱码免费一区二区| 日韩欧美一级精品久久| 欧美怡红院视频| 成人av免费在线| 激情综合色综合久久| 午夜影院在线观看欧美| 亚洲欧洲精品一区二区三区 | 久久99国产精品成人| 一区二区三区丝袜| 国产精品剧情在线亚洲| 精品国精品国产| 欧美丰满高潮xxxx喷水动漫| 99国产精品99久久久久久| 国产一区二区在线观看免费| 亚洲国产中文字幕在线视频综合 | 麻豆久久久久久| 亚洲自拍偷拍麻豆| 亚洲精品欧美激情| 中文字幕一区视频| 国产精品青草久久| 日本一区二区成人| 国产精品网站导航| 国产精品欧美一级免费| 国产日韩欧美精品在线| 久久日一线二线三线suv| 日韩欧美一级二级三级久久久| 欧美久久久久久久久久 | 欧美国产激情二区三区 | 国产拍欧美日韩视频二区| 久久先锋资源网| 国产亚洲精品精华液| 久久久蜜臀国产一区二区| 精品国产sm最大网站| 日韩一级在线观看| 欧美一级精品在线| 日韩欧美精品在线视频| 精品奇米国产一区二区三区| 精品国产91洋老外米糕| 久久久久国色av免费看影院| 国产日韩高清在线| 中文字幕一区二区三区乱码在线| 日韩美女啊v在线免费观看| 亚洲日本在线a| 亚洲一区二区综合| 天天色综合天天| 蜜桃视频一区二区三区| 韩国精品久久久| 粉嫩av一区二区三区在线播放 | 五月综合激情网| 日韩精品午夜视频| 狠狠色狠狠色综合日日91app| 国产精品夜夜嗨| 91麻豆国产在线观看| 欧美系列亚洲系列| 日韩精品中午字幕| 国产情人综合久久777777| 国产精品福利一区二区| 亚洲午夜久久久久久久久久久| 五月天精品一区二区三区| 久久不见久久见免费视频7| 国产不卡在线播放| 日本高清不卡aⅴ免费网站| 日韩一区二区高清| 国产精品国模大尺度视频| 亚洲一区二区五区| 韩国一区二区视频| 91日韩精品一区| 欧美一级欧美一级在线播放| 国产亚洲污的网站| 亚洲妇女屁股眼交7| 激情丁香综合五月| 在线欧美日韩精品| 精品少妇一区二区三区免费观看| 国产精品美女久久久久av爽李琼 | 亚洲高清不卡在线观看| 韩国中文字幕2020精品| 91福利资源站| 久久精品人人爽人人爽| 亚洲一区二区三区中文字幕在线| 久久99久久99精品免视看婷婷| 91美女在线观看| 欧美xxxxx牲另类人与| 亚洲三级免费电影| 极品少妇一区二区| 欧美日韩精品一区二区三区蜜桃 | 日韩一区二区三区在线观看 | 日韩在线卡一卡二| 成人av集中营| 日韩午夜在线影院| 一区二区三区在线观看欧美| 精品一区二区三区影院在线午夜| 在线观看国产日韩| 国产精品久久久久一区二区三区 | 亚洲一卡二卡三卡四卡| 高清不卡在线观看| 欧美精品一区二区三区久久久| 综合久久综合久久| 国产一区视频在线看| 欧美电影影音先锋| 亚洲柠檬福利资源导航| 国产精品一二一区| 日韩欧美你懂的| 日韩和欧美一区二区三区| 日本久久一区二区| 亚洲色图欧洲色图婷婷| 成人午夜视频福利| 久久久久国产精品免费免费搜索| 免费在线看一区| 欧美精品日韩精品| 亚洲综合丁香婷婷六月香| 一本到一区二区三区| 欧美韩国日本不卡| 国产美女精品人人做人人爽 | 2欧美一区二区三区在线观看视频| 亚洲高清免费在线| 在线亚洲一区二区| 亚洲人精品一区| 北条麻妃国产九九精品视频| 国产无一区二区| 懂色av一区二区在线播放| 精品国产电影一区二区| 精品制服美女丁香| 欧美videos中文字幕| 日本不卡视频一二三区| 欧美日本在线观看| 天涯成人国产亚洲精品一区av| 欧洲激情一区二区| 亚洲国产精品久久一线不卡| 在线观看免费亚洲| 亚洲午夜精品17c| 欧美日韩亚洲综合在线| 亚洲成a人片在线观看中文| 欧美亚洲高清一区| 水蜜桃久久夜色精品一区的特点 | 欧美mv日韩mv| 国产精品资源网站| 国产日产欧美一区| 成+人+亚洲+综合天堂| 亚洲欧美日韩人成在线播放| 一本大道久久a久久综合| 一区二区三区欧美| 91精品国产综合久久久久久久久久| 日一区二区三区| 精品少妇一区二区三区在线播放 | 一区二区三区在线播放| 欧美午夜免费电影| 日本午夜精品一区二区三区电影 | 日韩免费视频线观看| 国产精品99久久久久久有的能看| 久久嫩草精品久久久精品一| 国产1区2区3区精品美女| 日韩伦理免费电影| 欧美色图12p| 精品一区二区三区在线观看国产| www国产精品av| 99精品久久久久久| 视频在线观看一区二区三区| 久久伊人蜜桃av一区二区| 成人免费av在线| 性做久久久久久免费观看| 久久久久九九视频| 在线免费不卡视频| 久久精品国产**网站演员| 国产精品欧美一区喷水| 欧美日韩亚洲综合在线 | 欧美一区二区日韩一区二区| 久久精品国产网站| 亚洲日本免费电影| 日韩精品一区二区三区在线播放 | 蜜桃传媒麻豆第一区在线观看| 国产欧美日韩不卡免费| 欧美日精品一区视频| 国产福利91精品一区二区三区| 亚洲男人电影天堂| 欧美videos大乳护士334| 色噜噜狠狠色综合欧洲selulu| 六月丁香婷婷色狠狠久久| 国产精品久久久久桃色tv| 欧美一区永久视频免费观看| 成人伦理片在线| 蜜桃久久久久久| 亚洲欧美日韩一区二区三区在线观看| 日韩一级片在线观看| 91国偷自产一区二区三区观看| 久久精品国产第一区二区三区| 亚洲欧美日韩小说| 国产色产综合色产在线视频| 欧美日韩中文字幕一区| 国产不卡视频在线播放| 美女网站一区二区| 亚洲午夜精品17c| 国产精品大尺度| 2023国产精品视频|