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

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

?? davincifb.c

?? 這是我自已改的適合RGB888的視頻驅動
?? C
?? 第 1 頁 / 共 5 頁
字號:
		dispc_reg_out(VENC_VSTART,0x15);		dispc_reg_out(VENC_VSTARTA,0x15);
				dispc_reg_out(VENC_HINT,1350);   //1100@@@@@@@@@@@@@@@@@@@@@@@@@@@@		dispc_reg_out(VENC_VINT,1150);  //850   @@@@@@@@@@@@@@@@@@@@@@@@@@@		dispc_reg_out(VENC_VSPLS,20);		dispc_reg_out(VENC_HSPLS,30);

		/*設置為并行RGB輸出,standed模式(PAL、NTSC)時序*/
		dispc_reg_out(VENC_VMOD, 0x2013); //0x2013設置為非標準模式時序,設置為2003,小屏幕即可輸出		dispc_reg_out(VENC_DCLKCTL,0x801);  //0x800, 		dispc_reg_out(VENC_DCLKPTN0,0x3);		dispc_reg_out(VENC_DCLKPTN0A,0x3);		dispc_reg_out(VENC_OSDCLK0,0x3);		dispc_reg_out(VENC_OSDCLK1,0xf);		
		
		/*設置VIDCTL寄存器*/
		dispc_reg_out(VENC_VIDCTL, 0x2000);
		/*設置SYNCCTL寄存器*/
		dispc_reg_out(VENC_SYNCCTL, 0x3);
		
		/*設置LCDOUT寄存器*/
		dispc_reg_out(VENC_LCDOUT, 0x01); //0x1使能LCD_OE的輸出				//dispc_reg_out(VENC_VDPRO, 0x2b70); //shezhi VDPRO		
	}
	else
	{
		dispc_reg_out(VENC_VMOD, 0);
	}

}static inline void fix_default_var(struct dm_win_info *w,			u32 xres, u32 yres, u32 xpos, u32 ypos, int n_buf) //設定fb_var_screeninfo的默認值{	struct fb_var_screeninfo *v = &w->info.var;		v->xres = xres;	v->yres = yres;	v->xres_virtual = v->xres;	v->yres_virtual = v->yres * n_buf;	x_pos(w) = xpos;	y_pos(w) = ypos;}			    static void dm64xxfb_cleanup(void);    /*     *  Initialization     */int __init dm64xxfb_init(void)   //初始化 fb{
int i;
	printk(" \n--->5\n--->\n---->\n------>\nNow Enter davinci dm64xxfb_init()!\n");
		struct fb_info *info;	DBGENTER;	if (dmparams.windows == 0)		return 0;	/* user disabled all windows through bootargs */			dm.mmio_base_phys = OSD_REG_BASE;
	dm.mmio_size = OSD_REG_SIZE;		/* request the mem regions */#ifdef REVISIT		if (!request_mem_region(dm.mmio_base_phys, dm.mmio_size, DRIVER)) {		printk(KERN_ERR DRIVER ": cannot reserve MMIO region\n");		RETURN(-ENODEV);	}	/* map the regions */	dm.mmio_base =		(unsigned long) ioremap(dm.mmio_base_phys, dm.mmio_size);	if (!dm.mmio_base) {		printk(KERN_ERR DRIVER ": cannot map MMIO\n");		goto release_mmio;	}#endif 	/* initialize the vsync wait queue */	init_waitqueue_head(&dm.vsync_wait);	dm.timeout = HZ/5;   
		if ((dmparams.output == NTSC) && (dmparams.format == COMPOSITE))		dm.output_device_config = dm64xxfb_ntsc_composite_config;	else if ((dmparams.output == NTSC) && (dmparams.format == SVIDEO))		dm.output_device_config = dm64xxfb_ntsc_svideo_config;  	else if ((dmparams.output == NTSC) && (dmparams.format == COMPONENT))		dm.output_device_config = dm64xxfb_ntsc_component_config;	else if ((dmparams.output == PAL) && (dmparams.format == COMPOSITE))		dm.output_device_config = dm64xxfb_pal_composite_config;	else if ((dmparams.output == PAL) && (dmparams.format == SVIDEO))		dm.output_device_config = dm64xxfb_pal_svideo_config;	else if ((dmparams.output == PAL) && (dmparams.format == COMPONENT))		dm.output_device_config = dm64xxfb_pal_component_config;	else if(dmparams.output == LCDS)
	{
		dm.output_device_config = dm64xxfb_lcd_config;
		printk("Now Enter LCD display mode!\n");      
	}
	else {		printk(KERN_WARNING "Unsupported output device!\n");//在這里添加初始化LCD輸出的代碼,照著上面的例子寫		dm.output_device_config = NULL;	}
		printk("Setting Up Clocks for DM420 OSD\n");	/* Initialize the VPSS Clock Control register */	dispc_reg_out(VPSS_CLKCTL, 0x19);   //*****0x18  ,0x19 clk frequence is54M Hz //設置VPSS的時鐘控制,若設為0x18則開放DAC的時鐘	dispc_reg_merge(PLLCTL,0xff,0);  
dispc_reg_out(PLLDIV1,0x0000);	dispc_reg_out(PLLDIV1,0x8002);dispc_reg_merge(PLLCTL,0x00,0);  //這幾句是先關閉PLL2,然后設置PLLDIV1為2,然后打開PLL2,打開和關閉的語法有問題,可是結果是正確的,可能有其他的地方修改了此關閉與啟動...
printk("(((((((((((EER=%x\n",dispc_reg_in(EER));printk("(((((((((((EERH=%x\n",dispc_reg_in(EERH));printk("(((((((((((EECR=%x\n",dispc_reg_in(EECR));printk("(((((((((((EECRH=%x\n",dispc_reg_in(EECRH));printk("(((((((((((EESR=%x\n",dispc_reg_in(EESR));printk("(((((((((((EESRH=%x\n",dispc_reg_in(EESRH));/*printk("&&&&&&&&SDRCR=%x\n",dispc_reg_in(DDR_SDRCR));printk("&&&&&&&&SDBCR=%x\n",dispc_reg_in(DDR_SDBCR));printk("&&&&&&&&SDRSTAT=%x\n",dispc_reg_in(DDR_SDRSTAT));printk("&&&&&&&&DDRPHYCR=%x\n",dispc_reg_in(DDR_DDRPHYCR));asm(mov PLLCTL,0);/*for(i=0;i<100000;i++)if(i%10000==0)printk("++++++++++\n");dispc_reg_merge(DDR_SDRCR,0xffffffff,1<<31);dispc_reg_merge(DDR_SDRCR,0xffffffff,1<<30);dispc_reg_merge(DDR_SDRSTAT,0,1<<2);dispc_reg_merge(DDR_DDRPHYCR,0xff,1<<4);dispc_reg_merge(PLLCTL,0xff,0);dispc_reg_out(PLLM,0x0000);dispc_reg_out(PLLM,0x800b);dispc_reg_out(PLLDIV1,0x0000);dispc_reg_out(PLLDIV1,0x8005);dispc_reg_out(PLLDIV2,0x0000);dispc_reg_out(PLLDIV2,0x8000);dispc_reg_merge(PLLCTL,0xff,1<<4);for(i=0;i<2000;i++);dispc_reg_merge(PLLCTL,0x00,0);dispc_reg_merge(DDR_DDRPHYCR,0x00,1<<4);dispc_reg_merge(DDR_DDRPHYCR,0xff,1<<5);dispc_reg_merge(DDR_SDRSTAT,0xff,1<<2);for(i=0;i<1000;i++);dispc_reg_merge(DDR_SDBCR,0xffff,1<<15);dispc_reg_merge(DDR_SDRCR,0x00000000,1<<30);dispc_reg_merge(DDR_SDRCR,0x00000000,1<<31);for(i=0;i<1000;i++);*/	/* Set Base Pixel X and Base Pixel Y */	dispc_reg_out(OSD_BASEPX, BASEX);				//設置了圖像參考的點	dispc_reg_out(OSD_BASEPY, BASEY);	/* Reset OSD registers to default. */	dispc_reg_out(OSD_MODE, 0);	dispc_reg_out(OSD_OSDWIN0MD, 0);//REVISIT:  should we reset the other window modes too?		/* Set blue background color */	set_bg_color(0, 162);        /* Field Inversion Workaround */        dispc_reg_out(OSD_MODE, 0x200);			//翻轉場信號//	printk("-------------- VID0 -----------------\n");	if (!dmparams.windows & (1 << VID0)) {
		printk(KERN_WARNING "No video/osd windows will be enabled "
				    "because Video0 is disabled\n");
		return 0;	/* background will still be shown */		    
	}
	/* Setup VID0 framebuffer */	
	if (!mem_alloc(&dm.vid0, VID0_FB_PHY, VID0_FB_SIZE, VID0_FBNAME)) {
		dm.vid0->dm = &dm;
		fix_default_var(dm.vid0, 
				dmparams.vid0_xres, dmparams.vid0_yres,
				dmparams.vid0_xpos, dmparams.vid0_ypos,
				TRIPLE_BUF);
		info = init_fb_info(dm.vid0, &vid0_default_var, VID0_FBNAME);
		if (dm64xxfb_check_var(&info->var, info)) {
			printk(KERN_ERR VID0_FBNAME 
				": invalid default video mode\n");
			goto exit;
		}
		memset((void *)dm.vid0->fb_base, 0xb4, dm.vid0->fb_size);
	} else 
		goto exit;		//	printk("-------------- OSD0 -----------------\n");	/* Setup OSD0 framebuffer */	if ((dmparams.windows & (1 << OSD0)) &&	    (!mem_alloc(&dm.osd0, OSD0_FB_PHY, OSD0_FB_SIZE, OSD0_FBNAME))) {               printk("-------------- OSD0 -----------------\n");		dm.osd0->dm = &dm;		fix_default_var(dm.osd0,				dmparams.osd0_xres, dmparams.osd0_yres,				dmparams.osd0_xpos, dmparams.osd0_ypos,				DOUBLE_BUF);		info = init_fb_info(dm.osd0, &osd0_default_var, OSD0_FBNAME); 		if (dm64xxfb_check_var(&info->var, info)) {			printk(KERN_ERR OSD0_FBNAME 				": invalid default video mode\n");			mem_release(dm.osd0);		}		else 			memset((void *)dm.osd0->fb_base, 0, dm.osd0->fb_size);	}		//	printk("-------------- OSD1 -----------------\n");	/* Setup OSD1 framebuffer */	if ((dmparams.windows & (1 << OSD1)) &&	    (!mem_alloc(&dm.osd1, OSD1_FB_PHY, OSD1_FB_SIZE, OSD1_FBNAME))) {		dm.osd1->dm = &dm;		fix_default_var(dm.osd1,				dmparams.osd1_xres, dmparams.osd1_yres,				dmparams.osd1_xpos, dmparams.osd1_ypos,				DOUBLE_BUF);		info = init_fb_info(dm.osd1, &osd1_default_var, OSD1_FBNAME);		if (dm64xxfb_check_var(&info->var, info)) {			printk(KERN_ERR OSD1_FBNAME 				": invalid default video mode\n");			mem_release(dm.osd1);		}		else			/* Set blend factor to show OSD windows */			memset((void *)dm.osd1->fb_base, 0xff,dm.osd1->fb_size);	}//	printk("-------------- VID1 -----------------\n");       //setup VID1的FB,并根據dmparams中的值初始化此fb的var	/* Setup VID1 framebuffer */	if ((dmparams.windows & (1 << VID1)) &&	    (!mem_alloc(&dm.vid1, VID1_FB_PHY, VID1_FB_SIZE, VID1_FBNAME))) {		dm.vid1->dm = &dm;		fix_default_var(dm.vid1,				dmparams.vid1_xres, dmparams.vid1_yres,				dmparams.vid1_xpos, dmparams.vid1_ypos,				TRIPLE_BUF);		info = init_fb_info(dm.vid1, &vid1_default_var, VID1_FBNAME);		if (dm64xxfb_check_var(&info->var, info)) {			printk(KERN_ERR VID1_FBNAME 				": invalid default video mode\n");			mem_release(dm.vid1);		}		else			memset((void *)dm.vid1->fb_base, 0x88,dm.vid1->fb_size);	}printk("222222(((((((((((EER=%x\n",dispc_reg_in(EER));printk("(((((((((((EERH=%x\n",dispc_reg_in(EERH));printk("(((((((((((EECR=%x\n",dispc_reg_in(EECR));printk("(((((((((((EECRH=%x\n",dispc_reg_in(EECRH));printk("(((((((((((EESR=%x\n",dispc_reg_in(EESR));printk("(((((((((((EESRH=%x\n",dispc_reg_in(EESRH));	/* Register OSD0 framebuffer */	if (dm.osd0) {		info = &dm.osd0->info;		if (register_framebuffer(info) < 0) {			printk(KERN_ERR OSD0_FBNAME 				"Unable to register OSD0 framebuffer\n");			mem_release(dm.osd0);		} else {			printk(KERN_INFO "fb%d: %s frame buffer device\n", 				info->node, info->fix.id);			dm64xxfb_set_par(info);		}	}		/* Register VID0 framebuffer */	info = &dm.vid0->info;	if (register_framebuffer(info) < 0) {		printk(KERN_ERR VID0_FBNAME 			"Unable to register VID0 framebuffer\n");		goto exit;		} else {		printk(KERN_INFO "fb%d: %s frame buffer device\n", 			info->node, info->fix.id);		dm64xxfb_set_par(info);	}		/* Register OSD1 framebuffer */	if (dm.osd1) {		info = &dm.osd1->info;		if (register_framebuffer(info) < 0) {			printk(KERN_ERR OSD1_FBNAME 				"Unable to register OSD1 framebuffer\n");			mem_release(dm.osd1);		} else {			printk(KERN_INFO "fb%d: %s frame buffer device\n", 				info->node, info->fix.id);			dm64xxfb_set_par(info);		}	}			/* Register VID1 framebuffer */	if (dm.vid1) {		info = &dm.vid1->info;		if (register_framebuffer(info) < 0) {			mem_release(dm.vid1);			printk(KERN_ERR VID1_FBNAME 				"Unable to register VID1 framebuffer\n");			mem_release(dm.vid1);		} else {			printk(KERN_INFO "fb%d: %s frame buffer device\n", 				info->node, info->fix.id);			dm64xxfb_set_par(info);		}	}	        /* install our interrupt service routine */	if (request_irq(IRQ_VENCINT, dm64xxfb_isr, SA_SHIRQ, DRIVER, &dm))	{		printk(KERN_ERR DRIVER			": could not install interrupt service routine\n");		goto exit;	}	/* Turn ON the output device */	dm.output_device_config(1);printk("33333(((((((EER=%x\n",dispc_reg_in(EER));printk("(((((((((((EERH=%x\n",dispc_reg_in(EERH));printk("(((((((((((EECR=%x\n",dispc_reg_in(EECR));printk("(((((((((((EECRH=%x\n",dispc_reg_in(EECRH));printk("(((((((((((EESR=%x\n",dispc_reg_in(EESR));printk("(((((((((((EESRH=%x\n",dispc_reg_in(EESRH));	RETURN(0);exit:		dm64xxfb_cleanup();	RETURN(-ENODEV);	unmap_mmio:	iounmap((void*)dm.mmio_base);release_mmio:	release_mem_region(dm.mmio_base_phys, dm.mmio_size);	RETURN(-ENODEV);}    /*     *  Cleanup     */static void dm64xxfb_cleanup(void){	DBGENTER;		free_irq(IRQ_VENCINT, &dm);		/* Cleanup all framebuffers */	if (dm.osd0) {		unregister_framebuffer(&dm.osd0->info);		mem_release(dm.osd0);	}	if (dm.osd1) {		unregister_framebuffer(&dm.osd1->info);		mem_release(dm.osd1);	}	if (dm.vid0) {		unregister_framebuffer(&dm.vid0->info);		mem_release(dm.vid0);	}	if (dm.vid1) {		unregister_framebuffer(&dm.vid1->info);		mem_release(dm.vid1);	}	/* Turn OFF the output device */	dm.output_device_config(0);#ifdef REVISIT		if(dm.mmio_base)		iounmap((void*)dm.mmio_base);	release_mem_region(dm.mmio_base_phys, dm.mmio_size);#endif	DBGEXIT;}/* ------------------------------------------------------------------------- */    /*     *  Frame buffer operations     */static struct fb_ops dm64xxfb_ops = {	.owner		= THIS_MODULE,	.fb_check_var	= dm64xxfb_check_var,	.fb_set_par	= dm64xxfb_set_par,	.fb_setcolreg	= dm64xxfb_setcolreg,	.fb_blank	= dm64xxfb_blank,	.fb_parect	= cfb_fillrect,	.fb_con_display	= dm64xxfb_pan_display,
	.fb_fillpyarea	= cfb_copyarea,	.fb_imageblit	= cfb_imageblit,	.fb_cursor	= soft_cursor,	.fb_rotate	= NULL,	.fb_sync	= NULL,	.fb_ioctl	= dm64xxfb_ioctl,};/* ------------------------------------------------------------------------- */    /*     *  Modularization     */module_init(dm64xxfb_init);//入口module_exit(dm64xxfb_cleanup);//在module.h中定義的幾個宏
MODULE_DESCRIPTION("Framebuffer driver for TI DM644x DV-EVM Board");MODULE_AUTHOR("Texas Instruments");MODULE_LICENSE("GPL");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区蜜桃| 国产亚洲人成网站| 亚洲精品一区二区三区福利 | 青青草国产成人99久久| 亚洲乱码一区二区三区在线观看| 91精品国产麻豆国产自产在线| 成人美女在线视频| 免费美女久久99| 亚洲6080在线| 婷婷亚洲久悠悠色悠在线播放 | 国产成人av福利| 国产一区二区三区在线观看免费| 成人午夜私人影院| 日韩亚洲欧美综合| 亚洲va在线va天堂| 成人激情图片网| 久久综合色综合88| 日本91福利区| 91.com在线观看| 亚洲一卡二卡三卡四卡| aaa欧美色吧激情视频| 精品国产精品网麻豆系列| 亚洲第一在线综合网站| 欧美亚洲国产bt| 亚洲综合色自拍一区| 99re视频精品| 亚洲免费在线观看| 欧美一级久久久| 日韩av网站在线观看| 国产欧美精品一区二区色综合朱莉| 成av人片一区二区| 久久99精品久久久久久动态图| 亚洲人午夜精品天堂一二香蕉| 欧美日韩久久久| 国产福利一区在线| 不卡一卡二卡三乱码免费网站 | 欧美另类久久久品| 韩国av一区二区三区在线观看| 制服视频三区第一页精品| 国产乱码字幕精品高清av| 日韩伦理免费电影| 日韩三区在线观看| 麻豆成人久久精品二区三区小说| 日韩午夜在线观看视频| 91在线你懂得| 国产麻豆视频精品| 午夜精品一区二区三区免费视频| 91精品免费在线| 欧洲一区二区三区在线| 国模套图日韩精品一区二区 | 亚洲国产经典视频| 精品电影一区二区三区| 成人深夜视频在线观看| 91成人免费在线| 精品无码三级在线观看视频| 国产精品亚洲第一区在线暖暖韩国| hitomi一区二区三区精品| 9色porny自拍视频一区二区| 欧美一三区三区四区免费在线看| 国产欧美精品一区二区色综合 | 国产日韩亚洲欧美综合| 午夜视频在线观看一区二区三区 | 亚洲午夜在线视频| 麻豆成人av在线| 99久久99久久久精品齐齐| 日韩手机在线导航| 亚洲乱码日产精品bd| 国产成人免费xxxxxxxx| 欧美日韩中字一区| **欧美大码日韩| 高清av一区二区| 久久午夜羞羞影院免费观看| 日本va欧美va精品发布| 欧美日韩三级视频| 午夜精品久久久久久久| 亚洲免费av观看| 六月婷婷色综合| 9i看片成人免费高清| 欧美一级片免费看| 欧美日本高清视频在线观看| 欧美日韩美女一区二区| 日韩欧美一区二区视频| 亚洲精品国产成人久久av盗摄| 人妖欧美一区二区| 欧美在线你懂得| 亚洲美女屁股眼交| jizzjizzjizz欧美| 久久精品欧美一区二区三区不卡 | 日韩欧美一级片| 亚洲国产裸拍裸体视频在线观看乱了| 92国产精品观看| 在线视频亚洲一区| 亚洲免费视频中文字幕| 国产69精品一区二区亚洲孕妇| 欧美性大战久久久久久久| |精品福利一区二区三区| 国产a级毛片一区| 国产精品亚洲一区二区三区在线| 26uuu久久综合| 99久久精品国产一区二区三区| 国产女人18毛片水真多成人如厕| 亚洲国产成人91porn| 久久aⅴ国产欧美74aaa| 色综合久久88色综合天天6| 欧美人体做爰大胆视频| 蜜芽一区二区三区| 亚洲另类在线视频| 国产一区二区视频在线| 国产尤物一区二区在线| 丰满亚洲少妇av| 欧美不卡在线视频| 丝袜美腿亚洲色图| 午夜精品123| 91丨九色丨国产丨porny| 一区二区三国产精华液| 激情综合色丁香一区二区| 不卡av电影在线播放| 精品国产污网站| 国内精品第一页| 国产女人水真多18毛片18精品视频 | 综合欧美亚洲日本| 91国在线观看| 国产日韩欧美一区二区三区乱码 | 自拍视频在线观看一区二区| 国产成人丝袜美腿| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产日韩在线不卡| 91欧美一区二区| 一区二区三区欧美日韩| 欧美一激情一区二区三区| 国产成人精品一区二| 国产精品美女久久久久久久久久久 | 欧美精品在线一区二区| 青青草原综合久久大伊人精品 | 亚洲精品高清视频在线观看| 欧美一级淫片007| 国产高清不卡一区| 日本伊人精品一区二区三区观看方式 | 欧美性猛交xxxxxxxx| 午夜影院久久久| 欧美天堂一区二区三区| 精东粉嫩av免费一区二区三区| 日韩欧美高清dvd碟片| 色婷婷av久久久久久久| 五月婷婷综合网| 一区二区三区**美女毛片| 久久久亚洲高清| 欧美日韩一区在线| 欧美性做爰猛烈叫床潮| 国产欧美一区二区精品忘忧草 | 99精品国产热久久91蜜凸| 久久成人麻豆午夜电影| 久久精品噜噜噜成人av农村| 亚洲精品一二三区| 一区二区三区四区在线播放| 欧美国产精品中文字幕| 国产精品区一区二区三区| 久久综合色综合88| 久久新电视剧免费观看| 亚洲精品乱码久久久久久 | 91在线观看视频| aaa亚洲精品一二三区| eeuss鲁片一区二区三区 | 亚洲欧美成人一区二区三区| 成人欧美一区二区三区视频网页| 亚洲综合在线第一页| 黄页网站大全一区二区| 粉嫩久久99精品久久久久久夜| 99精品视频在线观看| 天天亚洲美女在线视频| 欧美挠脚心视频网站| 日韩一区二区在线观看| 国产精品色婷婷| 亚洲国产一区二区a毛片| 日本sm残虐另类| 成人综合婷婷国产精品久久 | 99re这里只有精品视频首页| 欧美日韩国产区一| 国产日韩高清在线| 激情文学综合网| 欧美亚洲动漫精品| 亚洲欧美在线aaa| 国产乱淫av一区二区三区| 欧美日韩国产综合视频在线观看 | 日韩视频一区二区| 亚洲免费成人av| 国产精品资源在线观看| 欧美日韩一区高清| 一区二区高清在线| 91香蕉视频mp4| 亚洲欧美偷拍三级| 日本韩国一区二区| 亚洲一卡二卡三卡四卡| 欧美日韩国产片| 男男gaygay亚洲| 久久久久国产精品厨房| 成人国产精品免费观看动漫| 久久久亚洲国产美女国产盗摄 | 韩国精品在线观看| 中文字幕国产一区|