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

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

?? dma-g2.c

?? 底層驅動開發
?? C
字號:
/* * arch/sh/drivers/dma/dma-g2.c * * G2 bus DMA support * * Copyright (C) 2003, 2004  Paul Mundt * * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. */#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/interrupt.h>#include <asm/mach/sysasic.h>#include <asm/mach/dma.h>#include <asm/dma.h>struct g2_channel {	unsigned long g2_addr;		/* G2 bus address */	unsigned long root_addr;	/* Root bus (SH-4) address */	unsigned long size;		/* Size (in bytes), 32-byte aligned */	unsigned long direction;	/* Transfer direction */	unsigned long ctrl;		/* Transfer control */	unsigned long chan_enable;	/* Channel enable */	unsigned long xfer_enable;	/* Transfer enable */	unsigned long xfer_stat;	/* Transfer status */} __attribute__ ((aligned(32)));struct g2_status {	unsigned long g2_addr;	unsigned long root_addr;	unsigned long size;	unsigned long status;} __attribute__ ((aligned(16)));struct g2_dma_info {	struct g2_channel channel[G2_NR_DMA_CHANNELS];	unsigned long pad1[G2_NR_DMA_CHANNELS];	unsigned long wait_state;	unsigned long pad2[10];	unsigned long magic;	struct g2_status status[G2_NR_DMA_CHANNELS];} __attribute__ ((aligned(256)));static volatile struct g2_dma_info *g2_dma = (volatile struct g2_dma_info *)0xa05f7800;static irqreturn_t g2_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs){	/* FIXME: Do some meaningful completion work here.. */	return IRQ_HANDLED;}static struct irqaction g2_dma_irq = {	.name		= "g2 DMA handler",	.handler	= g2_dma_interrupt,	.flags		= SA_INTERRUPT,};static int g2_enable_dma(struct dma_channel *chan){	unsigned int chan_nr = chan->chan;	g2_dma->channel[chan_nr].chan_enable = 1;	g2_dma->channel[chan_nr].xfer_enable = 1;	return 0;}static int g2_disable_dma(struct dma_channel *chan){	unsigned int chan_nr = chan->chan;	g2_dma->channel[chan_nr].chan_enable = 0;	g2_dma->channel[chan_nr].xfer_enable = 0;	return 0;}static int g2_xfer_dma(struct dma_channel *chan){	unsigned int chan_nr = chan->chan;	if (chan->sar & 31) {		printk("g2dma: unaligned source 0x%lx\n", chan->sar);		return -EINVAL;	}	if (chan->dar & 31) {		printk("g2dma: unaligned dest 0x%lx\n", chan->dar);		return -EINVAL;	}	/* Align the count */	if (chan->count & 31)		chan->count = (chan->count + (32 - 1)) & ~(32 - 1);	/* Fixup destination */	chan->dar += 0xa0800000;	/* Fixup direction */	chan->mode = !chan->mode;	flush_icache_range((unsigned long)chan->sar, chan->count);	g2_disable_dma(chan);	g2_dma->channel[chan_nr].g2_addr   = chan->dar & 0x1fffffe0;	g2_dma->channel[chan_nr].root_addr = chan->sar & 0x1fffffe0;	g2_dma->channel[chan_nr].size	   = (chan->count & ~31) | 0x80000000;	g2_dma->channel[chan_nr].direction = chan->mode;	/*	 * bit 0 - ???	 * bit 1 - if set, generate a hardware event on transfer completion	 * bit 2 - ??? something to do with suspend?	 */	g2_dma->channel[chan_nr].ctrl	= 5; /* ?? */	g2_enable_dma(chan);	/* debug cruft */	pr_debug("count, sar, dar, mode, ctrl, chan, xfer: %ld, 0x%08lx, "		 "0x%08lx, %ld, %ld, %ld, %ld\n",		 g2_dma->channel[chan_nr].size,		 g2_dma->channel[chan_nr].root_addr,		 g2_dma->channel[chan_nr].g2_addr,		 g2_dma->channel[chan_nr].direction,		 g2_dma->channel[chan_nr].ctrl,		 g2_dma->channel[chan_nr].chan_enable,		 g2_dma->channel[chan_nr].xfer_enable);	return 0;}static struct dma_ops g2_dma_ops = {	.xfer		= g2_xfer_dma,};static struct dma_info g2_dma_info = {	.name		= "G2 DMA",	.nr_channels	= 4,	.ops		= &g2_dma_ops,	.flags		= DMAC_CHANNELS_TEI_CAPABLE,};static int __init g2_dma_init(void){	setup_irq(HW_EVENT_G2_DMA, &g2_dma_irq);	/* Magic */	g2_dma->wait_state	= 27;	g2_dma->magic		= 0x4659404f;	return register_dmac(&g2_dma_info);}static void __exit g2_dma_exit(void){	free_irq(HW_EVENT_G2_DMA, 0);}subsys_initcall(g2_dma_init);module_exit(g2_dma_exit);MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>");MODULE_DESCRIPTION("G2 bus DMA driver");MODULE_LICENSE("GPL");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久88色综合天天免费| 日本韩国视频一区二区| 亚洲欧美偷拍另类a∨色屁股| 91精品国产高清一区二区三区蜜臀| 色综合天天综合色综合av| 白白色亚洲国产精品| av电影在线观看一区| eeuss鲁一区二区三区| 99热99精品| 色美美综合视频| 欧美色综合久久| 777午夜精品视频在线播放| 欧美精选在线播放| 日韩精品专区在线影院观看| 精品捆绑美女sm三区| 国产视频一区二区在线| 国产亚洲精品资源在线26u| 亚洲国产高清不卡| 伊人色综合久久天天人手人婷| 亚洲成av人综合在线观看| 日韩不卡一二三区| 国产一区二区三区四区在线观看| 国产一二三精品| 99v久久综合狠狠综合久久| 欧美午夜不卡在线观看免费| 日韩精品一区二区三区老鸭窝| 精品国一区二区三区| 亚洲欧美在线另类| 视频在线在亚洲| 国产风韵犹存在线视精品| 色一情一乱一乱一91av| 日韩精品一区二区三区四区 | 日韩黄色在线观看| 国产麻豆欧美日韩一区| 色噜噜久久综合| 日韩免费观看高清完整版| 国产精品天天摸av网| 丝袜亚洲另类欧美| 粉嫩av一区二区三区| 欧美视频完全免费看| 久久毛片高清国产| 亚洲综合男人的天堂| 国产精品一区二区无线| 欧美中文一区二区三区| 久久久777精品电影网影网| 亚洲午夜久久久久久久久久久 | 亚洲影视资源网| 成人av午夜电影| 久久久精品蜜桃| 欧美一区日韩一区| 综合久久国产九一剧情麻豆| 日本成人在线不卡视频| 91久久精品国产91性色tv| 精品少妇一区二区三区在线播放| 最新久久zyz资源站| 国产在线一区二区综合免费视频| 在线观看91精品国产入口| 国产欧美日韩不卡免费| 日韩成人一级片| 欧美亚洲国产一区二区三区va | 国产精品亚洲成人| 欧美日韩在线播放一区| 亚洲欧美欧美一区二区三区| 久久99精品久久久久婷婷| 日本一不卡视频| 国产福利一区二区三区在线视频| 欧美成人一区二区三区片免费 | 欧美一区三区四区| 亚洲一区二区三区四区的| 91影视在线播放| 国产精品久久久久久久久晋中 | 一区二区三区四区国产精品| 国产成人在线看| 久久久久久9999| 国产剧情一区二区三区| 26uuu亚洲综合色| 久久国产视频网| 欧美xxx久久| 国产精品欧美久久久久无广告| 91麻豆精品国产91久久久资源速度| 一本久道久久综合中文字幕| 国产欧美精品一区二区三区四区| 精品在线你懂的| 精品黑人一区二区三区久久| 九一九一国产精品| 国产欧美精品一区二区色综合朱莉| 国产一区二区剧情av在线| 日本一区二区三级电影在线观看 | 国产一区二区三区国产| 欧美xxxxxxxx| 国产超碰在线一区| 亚洲欧美一区二区三区国产精品 | 一个色综合网站| 91高清在线观看| 91精品国产综合久久精品性色 | 国产成人av电影免费在线观看| 欧美电影免费观看高清完整版在| 美日韩一级片在线观看| 欧美草草影院在线视频| 粉嫩13p一区二区三区| 国产欧美一区二区精品婷婷| 91麻豆.com| 亚洲在线视频网站| 日韩视频在线永久播放| 成人性色生活片| 亚洲福利视频一区二区| 亚洲精品一区二区三区四区高清| 福利一区二区在线| 偷拍亚洲欧洲综合| 国产欧美精品日韩区二区麻豆天美 | 久久久久国产成人精品亚洲午夜| 成人91在线观看| 麻豆一区二区三区| 中文字幕亚洲在| 亚洲图片欧美一区| 欧美日韩久久久一区| 99精品国产99久久久久久白柏| 91麻豆产精品久久久久久 | 一区二区三区成人在线视频 | 韩国精品在线观看| 亚洲女与黑人做爰| 精品国产乱码久久久久久牛牛| 91美女福利视频| 国产一区二区免费看| 一区二区三区 在线观看视频| 久久综合中文字幕| 51午夜精品国产| 91小宝寻花一区二区三区| 韩国v欧美v日本v亚洲v| 午夜精品福利一区二区蜜股av| 中文欧美字幕免费| 日韩一区二区精品| 在线观看亚洲成人| 国产成人啪免费观看软件| √…a在线天堂一区| 国产黄色精品视频| 国产精品夜夜爽| 午夜精品久久久| 一区二区三区在线视频免费| 久久久国产综合精品女国产盗摄| 欧美私人免费视频| 99久久99久久综合| 国产福利电影一区二区三区| 亚洲一区日韩精品中文字幕| 亚洲欧洲色图综合| 国产精品国模大尺度视频| 国产欧美精品区一区二区三区 | 日本va欧美va欧美va精品| 亚洲欧洲中文日韩久久av乱码| 中文字幕在线不卡一区| 亚洲国产精品t66y| 欧美国产1区2区| 久久久影视传媒| 8x福利精品第一导航| 欧美酷刑日本凌虐凌虐| 69av一区二区三区| 亚洲免费电影在线| 亚洲二区视频在线| 1区2区3区精品视频| 欧美色图一区二区三区| 91视频免费看| 色就色 综合激情| 欧美丝袜丝交足nylons| 在线91免费看| 久久午夜色播影院免费高清| 91精品啪在线观看国产60岁| 欧美电影免费观看高清完整版| 精品久久久久久久人人人人传媒| 欧美精品一区二区久久婷婷| 久久日一线二线三线suv| 欧美激情在线观看视频免费| 综合久久久久久| 天堂精品中文字幕在线| 久久精品99久久久| av一区二区三区四区| 欧美视频一区二区三区在线观看 | 欧美伊人精品成人久久综合97| 欧美日韩国产不卡| 精品久久免费看| 自拍偷拍欧美激情| 亚洲一区二区三区四区在线免费观看| 极品销魂美女一区二区三区| 午夜欧美视频在线观看| 又紧又大又爽精品一区二区| 国内精品在线播放| 91丨九色丨尤物| 欧美日韩在线综合| 日本欧美韩国一区三区| 国产剧情在线观看一区二区| 色哟哟亚洲精品| 精品国产凹凸成av人网站| 亚洲人成在线播放网站岛国| 午夜欧美电影在线观看| 成人精品电影在线观看| 91精品国产综合久久福利软件 | 精品国内片67194| 亚洲乱码精品一二三四区日韩在线| 日产国产欧美视频一区精品| 99精品欧美一区二区蜜桃免费| 欧美一区二区三区喷汁尤物|