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

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

?? fs4534.patch

?? patches for linux-2.6.
?? PATCH
?? 第 1 頁 / 共 3 頁
字號:
+//	call any other SIO routine after calling this routine.
+//	
+//----------------------------------------------------------------------
+void SIO_shutdown(void)
+{
+	if (g_initialized)
+	{
+		DPRINTF("\n");
+
+		// set the clock and data lines to a harmless state
+		SIOLL_output_clock(1);
+		SIOLL_output_data(1);
+
+		g_initialized = 0;
+	}
+
+	SIOLL_shutdown_smbus();
+}
+
+
+int SIO_read(unsigned char address, unsigned int reg, unsigned long *p_value, unsigned int bytes)
+{
+	int restart_count = 0;
+	unsigned int data;
+		  
+	//printf("SIO_READ, addr: %X, reg: %X\n", address, reg);
+	if (!p_value)
+		return ERR_INVALID_PARAMETER;
+
+	while (restart_count++ < 5)
+	{
+		*p_value = 0x0D0A;
+
+		// set the access pointer register.
+		// The address is shifted left by one to make room for Read/Write bit 
+		send_start();
+		send_data((char)((address << 1) | SIOWRITE));
+		if (!receive_ack())
+		{
+			DPRINTF("NACK received after component address.\n");
+			send_stop();
+			OS_mdelay(10);
+			continue;
+		}
+		send_data((unsigned char)(reg & 0xFF));
+		send_nack();
+		
+		if (bytes >= 1)
+		{
+			// read the first data byte.
+			send_start();
+			send_data((char)((address << 1) | SIOREAD));
+			if (!receive_ack())
+			{
+				DPRINTF("NACK received after register.\n");
+				send_stop();
+				OS_mdelay(10);
+				continue;
+			}
+			*p_value = receive_data();
+		}
+
+		if (bytes >= 2)
+		{
+			// read the second byte.
+			send_ack();
+			data = receive_data();
+			*p_value |= (data << 8);
+		}	
+
+		if (bytes >= 3)
+		{
+			// read the third byte.
+			send_ack();
+			data = receive_data();
+			*p_value |= (data << 16);
+		}	
+
+		if (bytes >= 4)
+		{
+			// read the fourth byte.
+			send_ack();
+			data = receive_data();
+			*p_value |= (data << 24);
+		}	
+
+		if (bytes > 4)
+		{
+			DPRINTF("requested more than 4 bytes!\n");
+		}
+
+		// done.
+		send_nack();
+		send_stop();
+
+//		TRACE(("SIO_read(0x%x,0x%x,0x%lx,%u)\n",address,reg,*p_value,bytes))
+		
+		return 0;
+	}
+
+	DPRINTF("(0x%x) failed, too many NACKs.\n",reg);
+
+	return ERR_SIO_READ_FAILED;
+}
+
+int SIO_read_current_offset(unsigned char address, unsigned long *p_value, unsigned int bytes)
+{
+	int restart_count = 0;
+	unsigned int data;
+	
+	if (!p_value)
+		return ERR_INVALID_PARAMETER;
+
+	while (restart_count++ < 5)
+	{
+		*p_value = 0x0D0A;
+
+		// The address is shifted left by one to make room for Read/Write bit 
+		
+		if (bytes >= 1)
+		{
+			// read the first data byte.
+			send_start();
+			send_data((char)((address << 1) | SIOREAD));
+			if (!receive_ack())
+			{
+				DPRINTF("NACK received after register.\n");
+				send_stop();
+				OS_mdelay(10);
+				continue;
+			}
+			*p_value = receive_data();
+		}
+
+		if (bytes >= 2)
+		{
+			// read the second byte.
+			send_ack();
+			data = receive_data();
+			*p_value |= (data << 8);
+		}	
+
+		if (bytes >= 3)
+		{
+			// read the third byte.
+			send_ack();
+			data = receive_data();
+			*p_value |= (data << 16);
+		}	
+
+		if (bytes >= 4)
+		{
+			// read the fourth byte.
+			send_ack();
+			data = receive_data();
+			*p_value |= (data << 24);
+		}	
+
+		if (bytes > 4)
+		{
+			DPRINTF("requested more than 4 bytes!\n");
+		}
+
+		// done.
+		send_nack();
+		send_stop();
+
+		return 0;
+	}
+
+	DPRINTF("failed, too many NACKs.\n");
+
+	return ERR_SIO_READ_FAILED;
+}
+
+int SIO_write(unsigned char address, unsigned int reg, unsigned long value, unsigned int bytes)
+{
+	int restart_count = 0;
+
+	while (restart_count++ < 5)
+	{
+		// set the access pointer register.
+		// The address is shifted left by one to make room for Read/Write bit 
+		send_start();
+		send_data((char)((address << 1) | SIOWRITE));
+		if (!receive_ack())
+		{
+			DPRINTF("NACK received after component address.\n");
+			send_stop();
+			OS_mdelay(10);
+			continue;
+		}
+		send_data((unsigned char)reg);
+		if (!receive_ack())
+		{
+			DPRINTF("NACK received after register.\n");
+			send_stop();
+			OS_mdelay(10);
+			continue;
+		}
+
+		if (bytes >= 1)
+		{
+			// write the first byte.
+			send_data((unsigned char)value);
+			if (!receive_ack())
+			{
+				DPRINTF("NACK received after first data byte.\n");
+				send_stop();
+				OS_mdelay(10);
+				continue;
+			}
+		}
+
+		if (bytes >= 2)
+		{
+			// write the second byte.
+			send_data((unsigned char)(value >> 8));
+			if (!receive_ack())
+			{
+				DPRINTF("NACK received after second data byte.\n");
+				send_stop();
+				OS_mdelay(10);
+				continue;
+			}
+		}
+
+		if (bytes >= 3)
+		{
+			// write the third byte.
+			send_data((unsigned char)(value >> 16));
+			if (!receive_ack())
+			{
+				DPRINTF("NACK received after second data byte.\n");
+				send_stop();
+				OS_mdelay(10);
+				continue;
+			}
+		}
+
+		if (bytes >= 4)
+		{
+			// write the fourth byte.
+			send_data((unsigned char)(value >> 24));
+			if (!receive_ack())
+			{
+				DPRINTF("NACK received after second data byte.\n");
+				send_stop();
+				OS_mdelay(10);
+				continue;
+			}
+		}
+
+		if (bytes > 4)
+		{
+			DPRINTF("requested more than 4 bytes!\n");
+		}
+
+		// done.
+		send_stop();
+
+//		TRACE(("SIO_write(0x%x,0x%x,0x%lx,%u)\n",address,reg,value,bytes))
+
+		unsigned long data = 0;
+		SIO_read(address, reg, &data, bytes);
+		
+		if(data != value)
+		{
+			OS_printf("FOCUS Data integrity check failed!\n");	
+			OS_printf("FOCUS Reg 0x%02X = 0x%08X, Wrote: 0x%08X\n", reg, (uint32) data, (uint32) value);					
+			return ERR_SIO_WRITE_FAILED;
+		}
+		else
+		{
+			#ifdef _DEBUG
+				//OS_printf("FOCUS Register 0x%02X = 0x%08X\n", reg, (uint32) data);
+			#endif			
+		}
+		
+		//OS_mdelay(100);
+		return 0;
+	}
+
+	DPRINTF("(0x%x) failed, too many NACKs.\n",reg);
+
+	return ERR_SIO_WRITE_FAILED;
+}
+
diff -Naur linux26-cvs/drivers/video/focus/sio.h linux26-fs4553/drivers/video/focus/sio.h--- linux26-cvs/drivers/video/focus/sio.h	1969-12-31 18:00:00.000000000 -0600+++ linux26-fs4553/drivers/video/focus/sio.h	2005-08-09 14:40:13.000000000 -0500@@ -0,0 +1,21 @@+//	SIO.h
+
+// Copyright (c) 1999-2000, FOCUS Enhancements, Inc., All Rights Reserved.
+
+//	This file defines the high-level SIO interface.  It provides functions
+//	that can be used from other modules to read or write an SIO device.
+
+
+#ifndef	__SIO_H__
+#define	__SIO_H__
+
+int SIO_init(void);
+void SIO_shutdown(void);
+
+int SIO_read(unsigned char address, unsigned int reg, unsigned long *p_value, unsigned int bytes);
+int SIO_read_current_offset(unsigned char address, unsigned long *p_value, unsigned int bytes);
+
+int SIO_write(unsigned char address, unsigned int reg, unsigned long value, unsigned int bytes);
+
+#endif
+
diff -Naur linux26-cvs/drivers/video/focus/sioll_au1xxx.c linux26-fs4553/drivers/video/focus/sioll_au1xxx.c--- linux26-cvs/drivers/video/focus/sioll_au1xxx.c	1969-12-31 18:00:00.000000000 -0600+++ linux26-fs4553/drivers/video/focus/sioll_au1xxx.c	2005-08-09 14:40:13.000000000 -0500@@ -0,0 +1,100 @@+#include "os.h"
+#include "sioll.h"
+
+#if defined(AU1200)
+	#define GPIO_DATA	18
+	#define GPIO_CLOCK	25
+#elif defined(AU1100)
+	//#define GPIO_DATA	22
+	//#define GPIO_CLOCK	4
+	#define GPIO_DATA	4
+	#define GPIO_CLOCK	1
+#endif
+
+int SIOLL_init_focus(void)
+{	
+	#if defined(PB1100) | defined(DB1200)
+		bcsr->resets |= BCSR_RESETS_TV;
+		au_sync();
+		bcsr->resets &= ~BCSR_RESETS_PCS0MUX;
+		au_sync();
+
+	#elif defined(FICMMP)
+		OS_set_config_bits(FICMMP_CONFIG_TVOUTPWREN);	//Enable Focus power
+		OS_clear_config_bits(FICMMP_CONFIG_TVODATAOUT);	//Enable data buffers
+		//Reset Focus part
+		OS_gpio_write(FICMMP_FOCUS_RST, 0);
+		OS_mdelay(100);
+		OS_gpio_write(FICMMP_FOCUS_RST, 1);
+		OS_mdelay(100);
+	#endif
+			
+	#if defined(AU1200)
+		OS_gpio_tristate(3);	//Set GP3 to input for external lcd clock
+	#endif
+	
+	return 0;
+}
+
+void SIOLL_shutdown_focus(void)
+{
+	#if defined(FICMMP)
+		OS_gpio_tristate(FICMMP_FOCUS_RST);						//Put Focus part in to reset (pull down)
+		OS_set_config_bits(FICMMP_CONFIG_TVODATAOUT);	//Disable data buffers
+		OS_clear_config_bits(FICMMP_CONFIG_TVOUTPWREN);	//Disable Focus power
+	#endif	
+}
+
+int SIOLL_init_smbus(void)
+{	
+	#if defined(AU1200)
+		sys->pinfunc |= SYS_PINFUNC_P0B;	//Enable GPIO25 & GPIO18 instead of PSC0
+	#endif
+	
+	OS_gpio_set_inputs();
+
+	return 0;
+}
+
+void SIOLL_shutdown_smbus(void)
+{
+	#if defined(AU1200)
+		sys->pinfunc &= ~SYS_PINFUNC_P0B;	//Enable PSC0
+	#endif
+}
+
+void SIOLL_output_clock(int value)
+{
+	OS_gpio_write(GPIO_CLOCK, value);
+	OS_udelay(5);		//These pullups are pretty weak, allow time to reach 3.3V
+	//msdelay(1);
+}
+
+void SIOLL_output_data(int value)
+{
+	if(value)
+		OS_gpio_tristate(GPIO_DATA);		//Let the pullup drive the logic '1'
+	else
+		OS_gpio_write(GPIO_DATA, value);
+	
+	OS_udelay(5);		//These pullups are pretty weak, allow time to reach 3.3V
+}
+
+int SIOLL_input_data(void)
+{
+	return OS_gpio_read(GPIO_DATA);
+}
+
+void SIOLL_set_data_for_output(void)
+{
+	//This functionality is accomplished when a write occurs
+}
+
+void SIOLL_set_data_for_input(void)
+{
+	OS_gpio_tristate(GPIO_DATA);
+	OS_udelay(5);
+	//gpio_input_enable(GPIO_DATA);
+}
+
+
diff -Naur linux26-cvs/drivers/video/focus/sioll.h linux26-fs4553/drivers/video/focus/sioll.h--- linux26-cvs/drivers/video/focus/sioll.h	1969-12-31 18:00:00.000000000 -0600+++ linux26-fs4553/drivers/video/focus/sioll.h	2005-08-09 14:40:13.000000000 -0500@@ -0,0 +1,21 @@+
+
+#ifndef SIOLL_H
+#define SIOLL_H
+
+int SIOLL_init_focus(void);
+int SIOLL_init_smbus(void);
+void SIOLL_shutdown_focus(void);
+void SIOLL_shutdown_smbus(void);
+void SIOLL_output_clock(int value);
+void SIOLL_set_data_for_output(void);
+void SIOLL_output_data(int value);
+int SIOLL_input_data(void);
+void SIOLL_set_data_for_input(void);
+
+#define ERR_INVALID_PARAMETER	1
+#define ERR_SIO_READ_FAILED		2
+#define ERR_SIO_WRITE_FAILED	3
+
+
+#endif //SIOLL_H
diff -Naur linux26-cvs/drivers/video/Kconfig linux26-fs4553/drivers/video/Kconfig--- linux26-cvs/drivers/video/Kconfig	2005-08-12 13:39:21.739347776 -0500+++ linux26-fs4553/drivers/video/Kconfig	2005-08-09 14:40:13.000000000 -0500@@ -959,6 +959,10 @@ 	bool "Au1200 LCD Driver" 	depends on FB && MIPS && SOC_AU1200 +config FOCUS_ENHANCEMENTS+	bool "Focus Enhancements FS453/454/455/456 NTSC-PAL Encoder"+	depends on FB_AU1200+ config FB_SBUS 	bool "SBUS and UPA framebuffers" 	depends on FB && (SPARC32 || SPARC64)diff -Naur linux26-cvs/drivers/video/Makefile linux26-fs4553/drivers/video/Makefile--- linux26-cvs/drivers/video/Makefile	2005-08-12 13:39:21.739347776 -0500+++ linux26-fs4553/drivers/video/Makefile	2005-08-09 14:40:13.000000000 -0500@@ -98,7 +98,7 @@ obj-$(CONFIG_FB_TX3912)		  += tx3912fb.o  cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_AU1100)		  += au1100fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_AU1200)		  += au1200fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o-+obj-$(CONFIG_FOCUS_ENHANCEMENTS) += focus/  # Platform or fallback drivers go here obj-$(CONFIG_FB_VESA)             += vesafb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.odiff -Naur linux26-cvs/include/asm-mips/mach-au1x00/au1xxx_gpio.h linux26-fs4553/include/asm-mips/mach-au1x00/au1xxx_gpio.h--- linux26-cvs/include/asm-mips/mach-au1x00/au1xxx_gpio.h	1969-12-31 18:00:00.000000000 -0600+++ linux26-fs4553/include/asm-mips/mach-au1x00/au1xxx_gpio.h	2005-08-09 14:40:37.000000000 -0500@@ -0,0 +1,20 @@+#ifndef __AU1XXX_GPIO_H
+#define __AU1XXX_GPIO_H
+
+void au1xxx_gpio1_set_inputs(void);
+void au1xxx_gpio_tristate(int signal);
+void au1xxx_gpio_write(int signal, int value);
+int  au1xxx_gpio_read(int signal);
+
+typedef volatile struct
+{
+	u32 dir;
+	u32 reserved;
+	u32 output;
+	u32 pinstate;
+	u32 inten;
+	u32 enable;
+
+} AU1X00_GPIO2;
+
+#endif //__AU1XXX_GPIO_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费丝袜| 日韩中文字幕1| 午夜一区二区三区视频| 国产成人在线视频网址| 777色狠狠一区二区三区| 国产精品麻豆欧美日韩ww| 日本不卡一区二区三区| 一本大道av伊人久久综合| 国产日韩欧美麻豆| 精品一区免费av| 在线播放国产精品二区一二区四区| 国产精品欧美久久久久一区二区| 日av在线不卡| 69av一区二区三区| 亚洲成人免费影院| 色婷婷综合久久久久中文一区二区| 久久精品视频一区二区| 精品中文字幕一区二区| 91精品国产入口在线| 亚洲一区二区视频在线观看| www.日韩在线| 国产精品乱码久久久久久| 国内成人自拍视频| 日韩午夜在线影院| 青青草97国产精品免费观看无弹窗版| 色诱视频网站一区| 一区二区三区日本| 欧美制服丝袜第一页| 亚洲图片欧美综合| 欧美色电影在线| 亚洲成人动漫在线观看| 欧美视频在线播放| 亚洲成人激情av| 日韩一级视频免费观看在线| 秋霞成人午夜伦在线观看| 日韩一区二区精品在线观看| 久久国产精品色婷婷| 精品sm在线观看| 国产一区二区三区国产| 国产日韩成人精品| jlzzjlzz欧美大全| 亚洲狠狠丁香婷婷综合久久久| 欧美中文字幕久久| 麻豆精品一区二区av白丝在线| 日韩网站在线看片你懂的| 国产精品综合网| 国产精品高潮呻吟| 欧美日韩精品欧美日韩精品一| 日日噜噜夜夜狠狠视频欧美人 | 裸体健美xxxx欧美裸体表演| 日韩一区二区三区av| 国产成人免费在线观看| 亚洲三级理论片| 在线电影欧美成精品| 久久成人免费网站| 中文字幕不卡三区| 欧美羞羞免费网站| 久久超级碰视频| 一区在线观看免费| 欧美日韩在线免费视频| 奇米影视7777精品一区二区| 国产亚洲短视频| 欧洲一区二区三区免费视频| 免费亚洲电影在线| 中文字幕一区二区三区视频| 欧美午夜不卡视频| 国产91丝袜在线观看| 亚洲一区在线观看网站| 欧美mv和日韩mv的网站| 91色.com| 国产乱子伦视频一区二区三区| 18欧美亚洲精品| 精品福利av导航| 91丨九色porny丨蝌蚪| 久久精品国产在热久久| 一级中文字幕一区二区| 日韩免费看网站| 欧美午夜精品理论片a级按摩| 久久不见久久见中文字幕免费| 亚洲啪啪综合av一区二区三区| 欧美一卡二卡三卡| 欧美怡红院视频| 国产sm精品调教视频网站| 丝袜美腿一区二区三区| 亚洲色图制服丝袜| 久久久久久久久99精品| 欧美精品自拍偷拍| 一本久久精品一区二区| 成人少妇影院yyyy| 激情综合五月婷婷| 日韩黄色一级片| 亚洲美女屁股眼交| 中文字幕高清一区| 久久久91精品国产一区二区三区| 欧美肥胖老妇做爰| 欧美自拍偷拍一区| 一本到不卡精品视频在线观看| 高清在线成人网| 国产精品自拍av| 国产综合色视频| 激情文学综合网| 开心九九激情九九欧美日韩精美视频电影| 亚洲在线观看免费视频| 亚洲色图一区二区| 中文字幕字幕中文在线中不卡视频| 国产视频911| 欧美精品一区二区三| 欧美v日韩v国产v| 欧美变态口味重另类| 精品日韩一区二区| 精品国产一区二区在线观看| 精品av综合导航| 国产女人18水真多18精品一级做| 精品粉嫩超白一线天av| 久久久久久久免费视频了| 久久这里只有精品6| 久久久亚洲精品一区二区三区| 久久亚洲精精品中文字幕早川悠里| 久久伊99综合婷婷久久伊| 久久综合丝袜日本网| 久久精品一区二区三区不卡| 久久午夜色播影院免费高清| 久久久久成人黄色影片| 国产人成一区二区三区影院| 亚洲国产精品99久久久久久久久| 欧美韩日一区二区三区| 国产精品第五页| 亚洲影视在线播放| 婷婷激情综合网| 久88久久88久久久| 成人av电影在线| 欧美在线观看禁18| 欧美一区二区免费观在线| 日韩精品专区在线| 中文在线资源观看网站视频免费不卡 | 成人福利视频在线看| 91视视频在线观看入口直接观看www| 色悠悠亚洲一区二区| 欧美视频在线一区二区三区| 日韩三级伦理片妻子的秘密按摩| 久久久久久一级片| 亚洲女爱视频在线| 日本va欧美va精品| 国产成a人亚洲| 欧美日韩的一区二区| 久久综合久久综合久久| 亚洲精品国产视频| 日本欧美大码aⅴ在线播放| 国产乱码精品一区二区三区av | 国产99久久久国产精品| 色94色欧美sute亚洲线路一久 | 国产精品美女久久久久久 | 欧美日韩免费观看一区三区| 欧美一卡二卡三卡| 国产精品免费丝袜| 丝袜亚洲另类丝袜在线| 成人av电影观看| 欧美大度的电影原声| 亚洲免费在线看| 精品亚洲aⅴ乱码一区二区三区| 色狠狠桃花综合| 国产欧美一区二区精品秋霞影院 | 国产精品久久久久7777按摩| 午夜激情久久久| 成人免费视频一区二区| 欧美一区二区免费观在线| **性色生活片久久毛片| 久久99精品国产麻豆不卡| 欧美天堂一区二区三区| 国产精品美女久久久久久2018| 老司机免费视频一区二区| 91成人免费在线视频| 欧美国产精品专区| 精品系列免费在线观看| 欧美一区二区三区的| 亚洲图片欧美一区| 日本精品一区二区三区四区的功能| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲第一在线综合网站| 成人爱爱电影网址| 久久精品视频一区二区| 国内精品免费**视频| 欧美男人的天堂一二区| 亚洲精品欧美在线| a在线欧美一区| 久久久久久久电影| 国内精品国产成人国产三级粉色| 欧美性色综合网| 亚洲免费视频成人| av福利精品导航| 国产精品短视频| 不卡一区二区在线| 亚洲欧洲精品一区二区三区| 成人的网站免费观看| 欧美激情一区二区三区| 国产成人午夜精品5599| 国产精品日韩成人| av不卡免费在线观看| 欧美激情中文不卡| 菠萝蜜视频在线观看一区|