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

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

?? icu.c

?? Linux Kernel 2.6.9 for OMAP1710
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* *  icu.c, Interrupt Control Unit routines for the NEC VR4100 series. * *  Copyright (C) 2001-2002  MontaVista Software Inc. *    Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> *  Copyright (C) 2003-2004  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> *  - Coped with INTASSIGN of NEC VR4133. */#include <linux/config.h>#include <linux/errno.h>#include <linux/init.h>#include <linux/interrupt.h>#include <linux/irq.h>#include <linux/module.h>#include <linux/smp.h>#include <linux/types.h>#include <asm/cpu.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/irq_cpu.h>#include <asm/vr41xx/vr41xx.h>extern asmlinkage void vr41xx_handle_interrupt(void);extern void init_vr41xx_giuint_irq(void);extern void giuint_irq_dispatch(struct pt_regs *regs);static uint32_t icu1_base;static uint32_t icu2_base;static struct irqaction icu_cascade = {	.handler	= no_action,	.mask		= CPU_MASK_NONE,	.name		= "cascade",};static unsigned char sysint1_assign[16] = {	0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };static unsigned char sysint2_assign[16] = {	2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };#define SYSINT1REG_TYPE1	KSEG1ADDR(0x0b000080)#define SYSINT2REG_TYPE1	KSEG1ADDR(0x0b000200)#define SYSINT1REG_TYPE2	KSEG1ADDR(0x0f000080)#define SYSINT2REG_TYPE2	KSEG1ADDR(0x0f0000a0)#define SYSINT1REG	0x00#define PIUINTREG	0x02#define INTASSIGN0	0x04#define INTASSIGN1	0x06#define GIUINTLREG	0x08#define DSIUINTREG	0x0a#define MSYSINT1REG	0x0c#define MPIUINTREG	0x0e#define MAIUINTREG	0x10#define MKIUINTREG	0x12#define MGIUINTLREG	0x14#define MDSIUINTREG	0x16#define NMIREG		0x18#define SOFTREG		0x1a#define INTASSIGN2	0x1c#define INTASSIGN3	0x1e#define SYSINT2REG	0x00#define GIUINTHREG	0x02#define FIRINTREG	0x04#define MSYSINT2REG	0x06#define MGIUINTHREG	0x08#define MFIRINTREG	0x0a#define PCIINTREG	0x0c #define PCIINT0	0x0001#define SCUINTREG	0x0e #define SCUINT0	0x0001#define CSIINTREG	0x10#define MPCIINTREG	0x12#define MSCUINTREG	0x14#define MCSIINTREG	0x16#define BCUINTREG	0x18 #define BCUINTR	0x0001#define MBCUINTREG	0x1a#define SYSINT1_IRQ_TO_PIN(x)	((x) - SYSINT1_IRQ_BASE)	/* Pin 0-15 */#define SYSINT2_IRQ_TO_PIN(x)	((x) - SYSINT2_IRQ_BASE)	/* Pin 0-15 */#define read_icu1(offset)	readw(icu1_base + (offset))#define write_icu1(val, offset)	writew((val), icu1_base + (offset))#define read_icu2(offset)	readw(icu2_base + (offset))#define write_icu2(val, offset)	writew((val), icu2_base + (offset))#define INTASSIGN_MAX	4#define INTASSIGN_MASK	0x0007static inline uint16_t set_icu1(uint8_t offset, uint16_t set){	uint16_t res;	res = read_icu1(offset);	res |= set;	write_icu1(res, offset);	return res;}static inline uint16_t clear_icu1(uint8_t offset, uint16_t clear){	uint16_t res;	res = read_icu1(offset);	res &= ~clear;	write_icu1(res, offset);	return res;}static inline uint16_t set_icu2(uint8_t offset, uint16_t set){	uint16_t res;	res = read_icu2(offset);	res |= set;	write_icu2(res, offset);	return res;}static inline uint16_t clear_icu2(uint8_t offset, uint16_t clear){	uint16_t res;	res = read_icu2(offset);	res &= ~clear;	write_icu2(res, offset);	return res;}/*=======================================================================*/void vr41xx_enable_piuint(uint16_t mask){	irq_desc_t *desc = irq_desc + PIU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4111 ||	    current_cpu_data.cputype == CPU_VR4121) {		spin_lock_irqsave(&desc->lock, flags);		set_icu1(MPIUINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_enable_piuint);void vr41xx_disable_piuint(uint16_t mask){	irq_desc_t *desc = irq_desc + PIU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4111 ||	    current_cpu_data.cputype == CPU_VR4121) {		spin_lock_irqsave(&desc->lock, flags);		clear_icu1(MPIUINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_disable_piuint);void vr41xx_enable_aiuint(uint16_t mask){	irq_desc_t *desc = irq_desc + AIU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4111 ||	    current_cpu_data.cputype == CPU_VR4121) {		spin_lock_irqsave(&desc->lock, flags);		set_icu1(MAIUINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_enable_aiuint);void vr41xx_disable_aiuint(uint16_t mask){	irq_desc_t *desc = irq_desc + AIU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4111 ||	    current_cpu_data.cputype == CPU_VR4121) {		spin_lock_irqsave(&desc->lock, flags);		clear_icu1(MAIUINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_disable_aiuint);void vr41xx_enable_kiuint(uint16_t mask){	irq_desc_t *desc = irq_desc + KIU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4111 ||	    current_cpu_data.cputype == CPU_VR4121) {		spin_lock_irqsave(&desc->lock, flags);		set_icu1(MKIUINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_enable_kiuint);void vr41xx_disable_kiuint(uint16_t mask){	irq_desc_t *desc = irq_desc + KIU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4111 ||	    current_cpu_data.cputype == CPU_VR4121) {		spin_lock_irqsave(&desc->lock, flags);		clear_icu1(MKIUINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_disable_kiuint);void vr41xx_enable_dsiuint(uint16_t mask){	irq_desc_t *desc = irq_desc + DSIU_IRQ;	unsigned long flags;	spin_lock_irqsave(&desc->lock, flags);	set_icu1(MDSIUINTREG, mask);	spin_unlock_irqrestore(&desc->lock, flags);}EXPORT_SYMBOL(vr41xx_enable_dsiuint);void vr41xx_disable_dsiuint(uint16_t mask){	irq_desc_t *desc = irq_desc + DSIU_IRQ;	unsigned long flags;	spin_lock_irqsave(&desc->lock, flags);	clear_icu1(MDSIUINTREG, mask);	spin_unlock_irqrestore(&desc->lock, flags);}EXPORT_SYMBOL(vr41xx_disable_dsiuint);void vr41xx_enable_firint(uint16_t mask){	irq_desc_t *desc = irq_desc + FIR_IRQ;	unsigned long flags;	spin_lock_irqsave(&desc->lock, flags);	set_icu2(MFIRINTREG, mask);	spin_unlock_irqrestore(&desc->lock, flags);}EXPORT_SYMBOL(vr41xx_enable_firint);void vr41xx_disable_firint(uint16_t mask){	irq_desc_t *desc = irq_desc + FIR_IRQ;	unsigned long flags;	spin_lock_irqsave(&desc->lock, flags);	clear_icu2(MFIRINTREG, mask);	spin_unlock_irqrestore(&desc->lock, flags);}EXPORT_SYMBOL(vr41xx_disable_firint);void vr41xx_enable_pciint(void){	irq_desc_t *desc = irq_desc + PCI_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4122 ||	    current_cpu_data.cputype == CPU_VR4131 ||	    current_cpu_data.cputype == CPU_VR4133) {		spin_lock_irqsave(&desc->lock, flags);		write_icu2(PCIINT0, MPCIINTREG);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_enable_pciint);void vr41xx_disable_pciint(void){	irq_desc_t *desc = irq_desc + PCI_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4122 ||	    current_cpu_data.cputype == CPU_VR4131 ||	    current_cpu_data.cputype == CPU_VR4133) {		spin_lock_irqsave(&desc->lock, flags);		write_icu2(0, MPCIINTREG);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_disable_pciint);void vr41xx_enable_scuint(void){	irq_desc_t *desc = irq_desc + SCU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4122 ||	    current_cpu_data.cputype == CPU_VR4131 ||	    current_cpu_data.cputype == CPU_VR4133) {		spin_lock_irqsave(&desc->lock, flags);		write_icu2(SCUINT0, MSCUINTREG);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_enable_scuint);void vr41xx_disable_scuint(void){	irq_desc_t *desc = irq_desc + SCU_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4122 ||	    current_cpu_data.cputype == CPU_VR4131 ||	    current_cpu_data.cputype == CPU_VR4133) {		spin_lock_irqsave(&desc->lock, flags);		write_icu2(0, MSCUINTREG);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_disable_scuint);void vr41xx_enable_csiint(uint16_t mask){	irq_desc_t *desc = irq_desc + CSI_IRQ;	unsigned long flags;	if (current_cpu_data.cputype == CPU_VR4122 ||	    current_cpu_data.cputype == CPU_VR4131 ||	    current_cpu_data.cputype == CPU_VR4133) {		spin_lock_irqsave(&desc->lock, flags);		set_icu2(MCSIINTREG, mask);		spin_unlock_irqrestore(&desc->lock, flags);	}}EXPORT_SYMBOL(vr41xx_enable_csiint);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品91一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 蜜臀av在线播放一区二区三区| 久久97超碰色| 99精品视频免费在线观看| 成人久久18免费网站麻豆 | 国产欧美日韩在线| 欧美激情一区二区在线| 日本一区免费视频| 午夜精品福利一区二区蜜股av| 国产制服丝袜一区| 欧美午夜精品久久久| 26uuu国产电影一区二区| 亚洲色欲色欲www| 久久精品国产精品青草| 色综合久久久久综合体| 久久综合久久久久88| 欧美高清在线一区二区| 《视频一区视频二区| 亚洲第一av色| 波多野结衣欧美| 精品欧美一区二区久久| 一区二区三区中文字幕精品精品| 精品一区二区在线视频| 欧美三级乱人伦电影| 国产精品视频你懂的| 久久国产福利国产秒拍| 日本二三区不卡| 国产婷婷精品av在线| 青青草国产成人av片免费| 91精彩视频在线| 国产精品每日更新| 国产精品亚洲视频| 欧美一区二区性放荡片| 一级特黄大欧美久久久| 99re视频这里只有精品| 久久精品在这里| 日韩电影免费一区| 欧美三级日韩三级| 亚洲自拍偷拍九九九| 91麻豆精品一区二区三区| 中文在线免费一区三区高中清不卡| 奇米888四色在线精品| 欧美日韩久久一区二区| 亚洲午夜羞羞片| 欧美伊人久久久久久久久影院| 成人免费在线视频| av电影在线观看一区| 国产精品系列在线| 成人午夜视频福利| 国产精品全国免费观看高清| 国产69精品久久久久777| 2021中文字幕一区亚洲| 免费看黄色91| 日韩亚洲国产中文字幕欧美| 亚洲综合一二三区| 欧美美女bb生活片| 视频一区二区国产| 日韩网站在线看片你懂的| 捆绑调教美女网站视频一区| 欧美成人精品3d动漫h| 国产尤物一区二区| 国产三级精品在线| 成人免费观看视频| 亚洲欧美一区二区三区国产精品| 91丝袜高跟美女视频| 亚洲一区二区3| 欧美tickle裸体挠脚心vk| 国产精华液一区二区三区| 国产精品免费视频一区| 在线亚洲人成电影网站色www| 一二三四社区欧美黄| 欧美一区二区日韩| 国产高清不卡一区二区| 中文字幕欧美一| 欧美日韩在线直播| 精品亚洲porn| 中文字幕一区二区三区四区 | 精品成人一区二区三区| 日韩成人一区二区三区在线观看| www精品美女久久久tv| av一二三不卡影片| 天天亚洲美女在线视频| 精品少妇一区二区三区日产乱码| 激情欧美一区二区| 中文字幕色av一区二区三区| 欧美性一级生活| 国产综合色视频| 亚洲乱码中文字幕| 精品国产欧美一区二区| 91片黄在线观看| 日本欧美一区二区| 亚洲国产高清aⅴ视频| 欧美影视一区在线| 国产91露脸合集magnet| 亚洲成av人影院| 欧美国产欧美亚州国产日韩mv天天看完整| 95精品视频在线| 捆绑变态av一区二区三区| 亚洲丝袜精品丝袜在线| 精品欧美黑人一区二区三区| 一本色道久久综合亚洲91| 精品一区二区日韩| 亚洲成人午夜影院| 亚洲欧洲成人自拍| 久久香蕉国产线看观看99| av在线不卡观看免费观看| 免费一区二区视频| 一区二区视频免费在线观看| 日本一区二区三级电影在线观看 | 久久精品这里都是精品| 欧美男女性生活在线直播观看| 国产传媒欧美日韩成人| 夜夜亚洲天天久久| 国产精品国产a级| 久久精品视频在线免费观看| 91精品在线麻豆| 欧美无砖专区一中文字| 99精品在线免费| 国产一区二区三区国产| 麻豆精品一区二区综合av| 午夜激情一区二区| 亚洲久草在线视频| 亚洲视频一二三| 欧美国产1区2区| 久久久亚洲精华液精华液精华液 | 中文字幕在线观看一区| 精品福利av导航| 精品精品欲导航| 在线观看日韩电影| 成人app在线观看| 美女视频一区在线观看| 免费在线看成人av| 久久超级碰视频| 国产综合久久久久久鬼色| 免费高清在线一区| 蜜臀久久99精品久久久久宅男| 亚洲国产日韩综合久久精品| 亚洲香肠在线观看| 香蕉加勒比综合久久| 午夜伊人狠狠久久| 天天爽夜夜爽夜夜爽精品视频| 性感美女极品91精品| 日本不卡一区二区三区| 日本不卡中文字幕| 极品少妇xxxx精品少妇偷拍| 国产一区二区导航在线播放| 国产在线国偷精品产拍免费yy| 美国av一区二区| 久久99久久精品| 免费成人在线观看| 国产久卡久卡久卡久卡视频精品| 国产激情一区二区三区桃花岛亚洲| 国产宾馆实践打屁股91| 成年人网站91| 欧美性大战久久| 欧美一个色资源| 久久久www成人免费无遮挡大片| 日本一区二区三区dvd视频在线| 亚洲丝袜美腿综合| 调教+趴+乳夹+国产+精品| 青青草国产精品97视觉盛宴| 国产精品18久久久久久久久| 国产美女视频91| 丁香五精品蜜臀久久久久99网站 | 亚洲欧美电影一区二区| 舔着乳尖日韩一区| 成人综合婷婷国产精品久久| 色综合网色综合| 91精品国产色综合久久| 欧美成人精品福利| 国产精品久久久久久久久久久免费看 | 午夜日韩在线电影| 成人综合在线观看| 亚洲精品一区二区三区99| 一区二区三区美女视频| 国产91对白在线观看九色| 欧美一区二区三区免费在线看| 中文字幕亚洲不卡| 国产成人综合在线播放| 这里只有精品免费| 一区二区三区在线观看视频| 春色校园综合激情亚洲| 久久亚洲捆绑美女| 久久99热这里只有精品| 欧美男男青年gay1069videost| 亚洲欧洲99久久| 久久se精品一区二区| 欧美性色aⅴ视频一区日韩精品| 国产精品国产三级国产| 成人一区在线看| 国产亚洲一区二区在线观看| 精品一区免费av| 日韩欧美二区三区| 日韩中文字幕av电影| 欧美日韩激情一区二区| 亚洲午夜成aⅴ人片| 91福利精品视频| 亚洲久本草在线中文字幕| 不卡av免费在线观看|