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

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

?? flexcop-dma.c

?? linux-2.6.15.6
?? C
字號:
/* * This file is part of linux driver the digital TV devices equipped with B2C2 FlexcopII(b)/III * * flexcop-dma.c - methods for configuring and controlling the DMA of the FlexCop. * * see flexcop.c for copyright information. */#include "flexcop.h"int flexcop_dma_allocate(struct pci_dev *pdev, struct flexcop_dma *dma, u32 size){	u8 *tcpu;	dma_addr_t tdma;	if (size % 2) {		err("dma buffersize has to be even.");		return -EINVAL;	}	if ((tcpu = pci_alloc_consistent(pdev, size, &tdma)) != NULL) {		dma->pdev = pdev;		dma->cpu_addr0 = tcpu;		dma->dma_addr0 = tdma;		dma->cpu_addr1 = tcpu + size/2;		dma->dma_addr1 = tdma + size/2;		dma->size = size/2;		return 0;	}	return -ENOMEM;}EXPORT_SYMBOL(flexcop_dma_allocate);void flexcop_dma_free(struct flexcop_dma *dma){	pci_free_consistent(dma->pdev, dma->size*2,dma->cpu_addr0, dma->dma_addr0);	memset(dma,0,sizeof(struct flexcop_dma));}EXPORT_SYMBOL(flexcop_dma_free);int flexcop_dma_config(struct flexcop_device *fc,		struct flexcop_dma *dma,		flexcop_dma_index_t dma_idx){	flexcop_ibi_value v0x0,v0x4,v0xc;	v0x0.raw = v0x4.raw = v0xc.raw = 0;	v0x0.dma_0x0.dma_address0        = dma->dma_addr0 >> 2;	v0xc.dma_0xc.dma_address1        = dma->dma_addr1 >> 2;	v0x4.dma_0x4_write.dma_addr_size = dma->size / 4;	if ((dma_idx & FC_DMA_1) == dma_idx) {		fc->write_ibi_reg(fc,dma1_000,v0x0);		fc->write_ibi_reg(fc,dma1_004,v0x4);		fc->write_ibi_reg(fc,dma1_00c,v0xc);	} else if ((dma_idx & FC_DMA_2) == dma_idx) {		fc->write_ibi_reg(fc,dma2_010,v0x0);		fc->write_ibi_reg(fc,dma2_014,v0x4);		fc->write_ibi_reg(fc,dma2_01c,v0xc);	} else {		err("either DMA1 or DMA2 can be configured at the within one flexcop_dma_config call.");		return -EINVAL;	}	return 0;}EXPORT_SYMBOL(flexcop_dma_config);/* start the DMA transfers, but not the DMA IRQs */int flexcop_dma_xfer_control(struct flexcop_device *fc,		flexcop_dma_index_t dma_idx,		flexcop_dma_addr_index_t index,		int onoff){	flexcop_ibi_value v0x0,v0xc;	flexcop_ibi_register r0x0,r0xc;	if ((dma_idx & FC_DMA_1) == dma_idx) {		r0x0 = dma1_000;		r0xc = dma1_00c;	} else if ((dma_idx & FC_DMA_2) == dma_idx) {		r0x0 = dma2_010;		r0xc = dma2_01c;	} else {		err("either transfer DMA1 or DMA2 can be started within one flexcop_dma_xfer_control call.");		return -EINVAL;	}	v0x0 = fc->read_ibi_reg(fc,r0x0);	v0xc = fc->read_ibi_reg(fc,r0xc);	deb_rdump("reg: %03x: %x\n",r0x0,v0x0.raw);	deb_rdump("reg: %03x: %x\n",r0xc,v0xc.raw);	if (index & FC_DMA_SUBADDR_0)		v0x0.dma_0x0.dma_0start = onoff;	if (index & FC_DMA_SUBADDR_1)		v0xc.dma_0xc.dma_1start = onoff;	fc->write_ibi_reg(fc,r0x0,v0x0);	fc->write_ibi_reg(fc,r0xc,v0xc);	deb_rdump("reg: %03x: %x\n",r0x0,v0x0.raw);	deb_rdump("reg: %03x: %x\n",r0xc,v0xc.raw);	return 0;}EXPORT_SYMBOL(flexcop_dma_xfer_control);static int flexcop_dma_remap(struct flexcop_device *fc,		flexcop_dma_index_t dma_idx,		int onoff){	flexcop_ibi_register r = (dma_idx & FC_DMA_1) ? dma1_00c : dma2_01c;	flexcop_ibi_value v = fc->read_ibi_reg(fc,r);	deb_info("%s\n",__FUNCTION__);	v.dma_0xc.remap_enable = onoff;	fc->write_ibi_reg(fc,r,v);	return 0;}int flexcop_dma_control_size_irq(struct flexcop_device *fc,		flexcop_dma_index_t no,		int onoff){	flexcop_ibi_value v = fc->read_ibi_reg(fc,ctrl_208);	if (no & FC_DMA_1)		v.ctrl_208.DMA1_IRQ_Enable_sig = onoff;	if (no & FC_DMA_2)		v.ctrl_208.DMA2_IRQ_Enable_sig = onoff;	fc->write_ibi_reg(fc,ctrl_208,v);	return 0;}EXPORT_SYMBOL(flexcop_dma_control_size_irq);int flexcop_dma_control_timer_irq(struct flexcop_device *fc,		flexcop_dma_index_t no,		int onoff){	flexcop_ibi_value v = fc->read_ibi_reg(fc,ctrl_208);	if (no & FC_DMA_1)		v.ctrl_208.DMA1_Timer_Enable_sig = onoff;	if (no & FC_DMA_2)		v.ctrl_208.DMA2_Timer_Enable_sig = onoff;	fc->write_ibi_reg(fc,ctrl_208,v);	return 0;}EXPORT_SYMBOL(flexcop_dma_control_timer_irq);/* 1 cycles = 1.97 msec */int flexcop_dma_config_timer(struct flexcop_device *fc,		flexcop_dma_index_t dma_idx,		u8 cycles){	flexcop_ibi_register r = (dma_idx & FC_DMA_1) ? dma1_004 : dma2_014;	flexcop_ibi_value v = fc->read_ibi_reg(fc,r);	flexcop_dma_remap(fc,dma_idx,0);	deb_info("%s\n",__FUNCTION__);	v.dma_0x4_write.dmatimer = cycles;	fc->write_ibi_reg(fc,r,v);	return 0;}EXPORT_SYMBOL(flexcop_dma_config_timer);/* packet IRQ does not exist in FCII or FCIIb - according to data book and tests */int flexcop_dma_control_packet_irq(struct flexcop_device *fc,		flexcop_dma_index_t no,		int onoff){	flexcop_ibi_value v = fc->read_ibi_reg(fc,ctrl_208);	deb_rdump("reg: %03x: %x\n",ctrl_208,v.raw);	if (no & FC_DMA_1)		v.ctrl_208.DMA1_Size_IRQ_Enable_sig = onoff;	if (no & FC_DMA_2)		v.ctrl_208.DMA2_Size_IRQ_Enable_sig = onoff;	fc->write_ibi_reg(fc,ctrl_208,v);	deb_rdump("reg: %03x: %x\n",ctrl_208,v.raw);	return 0;}EXPORT_SYMBOL(flexcop_dma_control_packet_irq);int flexcop_dma_config_packet_count(struct flexcop_device *fc,		flexcop_dma_index_t dma_idx,		u8 packets){	flexcop_ibi_register r = (dma_idx & FC_DMA_1) ? dma1_004 : dma2_014;	flexcop_ibi_value v = fc->read_ibi_reg(fc,r);	flexcop_dma_remap(fc,dma_idx,1);	v.dma_0x4_remap.DMA_maxpackets = packets;	fc->write_ibi_reg(fc,r,v);	return 0;}EXPORT_SYMBOL(flexcop_dma_config_packet_count);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲已满18点击进入久久| 欧美一级夜夜爽| 捆绑变态av一区二区三区| 亚洲精品免费电影| 亚洲综合免费观看高清完整版在线| 国产精品国产三级国产aⅴ中文 | 国产精品香蕉一区二区三区| 久久99精品久久久久久国产越南| 国产美女视频一区| 精品在线免费视频| 国产在线播精品第三| 国产主播一区二区三区| 国内精品免费**视频| 国产在线不卡一区| 成人精品视频一区| 色综合久久久网| 欧美色精品在线视频| 欧美一卡2卡3卡4卡| 欧美videofree性高清杂交| 久久综合久久鬼色中文字| 欧美韩国日本综合| 亚洲国产精品麻豆| 免费在线观看一区二区三区| 国产麻豆精品视频| 91在线免费视频观看| 精品视频1区2区| 精品国产一区二区三区四区四 | 亚洲欧美色图小说| 午夜欧美电影在线观看| 久久精品国产成人一区二区三区| 国产精一品亚洲二区在线视频| a亚洲天堂av| 欧美精品乱码久久久久久按摩| 日韩免费福利电影在线观看| 国产精品久久久久久久久免费丝袜| 亚洲三级视频在线观看| 日本在线不卡一区| 91在线观看高清| 中文字幕日韩av资源站| 日韩二区三区在线观看| 风流少妇一区二区| 欧美一区二区视频在线观看2020| 日本一区二区综合亚洲| 天天综合色天天综合| 国产成人精品午夜视频免费| 欧美美女喷水视频| 18欧美乱大交hd1984| 日本亚洲免费观看| 91免费观看视频在线| 亚洲精品一区二区精华| 亚洲va韩国va欧美va| 成人av高清在线| 精品入口麻豆88视频| 亚洲精选视频免费看| 国产精品一区二区久久精品爱涩 | 日韩国产欧美三级| 成人的网站免费观看| 欧美精品一区二区久久久 | 欧美在线综合视频| 国产香蕉久久精品综合网| 欧美96一区二区免费视频| 91亚洲国产成人精品一区二三| 精品国产乱码久久久久久蜜臀 | 97久久人人超碰| 久久综合色8888| 蜜臀av性久久久久av蜜臀妖精| 色综合久久久久网| 国产精品成人免费| 成人一级片在线观看| 国产视频一区二区在线| 国产一区二区精品久久| 精品国产一区二区三区av性色| 天天操天天色综合| 欧美色国产精品| 天堂成人免费av电影一区| 欧美在线啊v一区| 亚洲国产一区视频| 欧美精品自拍偷拍| 日韩**一区毛片| 国产一区二区三区电影在线观看| 高清不卡一区二区| 欧美精品在线观看一区二区| 亚洲国产精品久久一线不卡| 亚洲精品欧美激情| 欧美久久免费观看| eeuss影院一区二区三区| 久久国产三级精品| 亚洲高清免费一级二级三级| 中文字幕成人av| 欧美一区二区美女| 欧美综合色免费| 91在线码无精品| 成人综合婷婷国产精品久久| 青青草91视频| 午夜视频久久久久久| 综合久久一区二区三区| 久久欧美中文字幕| 日韩女优视频免费观看| 欧美日韩精品系列| 欧美视频三区在线播放| 99久久99久久精品国产片果冻| 久久国产剧场电影| 美女视频黄频大全不卡视频在线播放| 亚洲另类中文字| 亚洲欧美在线高清| 久久精品免费在线观看| 日韩欧美在线一区二区三区| 欧美裸体bbwbbwbbw| 欧美在线短视频| 在线视频你懂得一区| 色网站国产精品| 91捆绑美女网站| 色婷婷一区二区三区四区| 97久久精品人人澡人人爽| 不卡的av网站| eeuss鲁一区二区三区| 精品粉嫩超白一线天av| 午夜精品123| 制服丝袜中文字幕一区| 91福利在线观看| 欧美亚洲综合在线| 久久色成人在线| 日韩精品一区二区三区在线观看| 在线观看亚洲a| 欧美日韩精品专区| 欧美一卡二卡在线| 久久综合久久综合久久| 欧美激情自拍偷拍| 亚洲日本一区二区三区| 一区二区三区精品视频| 亚洲一区成人在线| 日本亚洲三级在线| 国产一区二区三区av电影| 丁香亚洲综合激情啪啪综合| 91美女片黄在线观看| 欧美亚男人的天堂| 日韩美女主播在线视频一区二区三区| 精品国产一区二区亚洲人成毛片| 国产精品视频在线看| 一区二区三区久久| 国产一区二区中文字幕| 成人影视亚洲图片在线| 欧美三级一区二区| 精品国产一二三区| 中文字幕一区二区在线播放| 亚洲国产精品自拍| 国产精品99久久不卡二区| 一本久久a久久免费精品不卡| 91精品福利在线一区二区三区| 久久久国产精华| 亚洲成人动漫在线观看| 国产一区二区伦理片| 欧美视频自拍偷拍| 久久久久成人黄色影片| 午夜精品aaa| 不卡高清视频专区| 欧美电视剧在线看免费| 亚洲美女视频在线| 国产一区二区三区国产| 欧美图区在线视频| 久久久不卡网国产精品二区| 亚洲愉拍自拍另类高清精品| 国产一区91精品张津瑜| 欧美日韩一级黄| 国产精品福利一区| 美女一区二区在线观看| 色999日韩国产欧美一区二区| 精品成人私密视频| 日韩中文字幕不卡| 97久久久精品综合88久久| 国产丝袜美腿一区二区三区| 免费在线观看精品| 欧美日韩一区二区三区视频| 国产精品女主播在线观看| 久久激情五月激情| 欧美日本国产一区| 亚洲天堂免费看| 成人综合婷婷国产精品久久 | 精品中文av资源站在线观看| 色偷偷一区二区三区| 国产精品久久久久久亚洲伦| 精品一区二区三区在线播放| 欧美日本不卡视频| 亚洲图片欧美视频| 在线免费观看不卡av| 亚洲欧美一区二区三区国产精品| 国产激情视频一区二区在线观看 | 激情五月激情综合网| 欧美日韩中文另类| 亚洲一区二区成人在线观看| 在线中文字幕不卡| 亚洲精品日韩一| 91国模大尺度私拍在线视频| 18成人在线观看| 91麻豆免费观看| 亚洲精品老司机| 一本久久a久久精品亚洲| 亚洲精品国产一区二区精华液 | 自拍视频在线观看一区二区| 风间由美中文字幕在线看视频国产欧美|