⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.6.20-rc1-at91.patch.gz

📁 内容包括2.6.14内核到2.6.23内核的at91内核补丁(没有2.6.19的)
💻 GZ
📖 第 1 页 / 共 5 页
字号:
diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/configs/at91sam9260ek_defconfig linux-2.6/arch/arm/configs/at91sam9260ek_defconfig--- linux-2.6.20-rc1.orig/arch/arm/configs/at91sam9260ek_defconfig	Fri Dec 15 08:35:47 2006+++ linux-2.6/arch/arm/configs/at91sam9260ek_defconfig	Fri Dec 15 08:57:38 2006@@ -923,7 +923,6 @@ # CONFIG_HEADERS_CHECK is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_DEBUG_USER=y-# CONFIG_DEBUG_WAITQ is not set # CONFIG_DEBUG_ERRORS is not set CONFIG_DEBUG_LL=y # CONFIG_DEBUG_ICEDCC is not setdiff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/configs/at91sam9261ek_defconfig linux-2.6/arch/arm/configs/at91sam9261ek_defconfig--- linux-2.6.20-rc1.orig/arch/arm/configs/at91sam9261ek_defconfig	Fri Dec 15 08:35:47 2006+++ linux-2.6/arch/arm/configs/at91sam9261ek_defconfig	Fri Dec 15 08:57:49 2006@@ -1079,7 +1079,6 @@ # CONFIG_HEADERS_CHECK is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_DEBUG_USER=y-# CONFIG_DEBUG_WAITQ is not set # CONFIG_DEBUG_ERRORS is not set CONFIG_DEBUG_LL=y # CONFIG_DEBUG_ICEDCC is not setdiff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/Kconfig linux-2.6/arch/arm/mach-at91rm9200/Kconfig--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/Kconfig	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/Kconfig	Fri Dec 15 08:59:15 2006@@ -143,6 +143,13 @@ 	  Select this if you need to program one or more of the PCK0..PCK3 	  programmable clock outputs. +config AT91_SLOW_CLOCK+	bool "Suspend-to-RAM uses slow clock mode (EXPERIMENTAL)"+	depends on PM && EXPERIMENTAL+	help+	  Select this if you wish to put the CPU into slow clock mode+	  while in the "Suspend to RAM" state, to save more power.+ endmenu  endifdiff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/Makefile linux-2.6/arch/arm/mach-at91rm9200/Makefile--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/Makefile	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/Makefile	Thu Nov 16 11:45:54 2006@@ -8,6 +8,7 @@ obj-		:=  obj-$(CONFIG_PM)		+= pm.o+obj-$(CONFIG_AT91_SLOW_CLOCK)	+= pm_slowclock.o  # CPU-specific support obj-$(CONFIG_ARCH_AT91RM9200)	+= at91rm9200.o at91rm9200_time.o at91rm9200_devices.o@@ -41,7 +42,7 @@ obj-$(CONFIG_LEDS) += $(led-y)  # VGA support-#obj-$(CONFIG_FB_S1D13XXX)	+= ics1523.o+obj-$(CONFIG_FB_S1D13XXX)	+= ics1523.o   ifeq ($(CONFIG_PM_DEBUG),y)diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/at91rm9200_devices.c linux-2.6/arch/arm/mach-at91rm9200/at91rm9200_devices.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/at91rm9200_devices.c	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/at91rm9200_devices.c	Tue Dec 12 13:01:13 2006@@ -128,7 +128,7 @@  #if defined(CONFIG_ARM_AT91_ETHER) || defined(CONFIG_ARM_AT91_ETHER_MODULE) static u64 eth_dmamask = 0xffffffffUL;-static struct at91_eth_data eth_data;+static struct eth_platform_data eth_data;  static struct resource eth_resources[] = { 	[0] = {@@ -155,7 +155,7 @@ 	.num_resources	= ARRAY_SIZE(eth_resources), }; -void __init at91_add_device_eth(struct at91_eth_data *data)+void __init at91_add_device_eth(struct eth_platform_data *data) { 	if (!data) 		return;@@ -192,7 +192,7 @@ 	platform_device_register(&at91rm9200_eth_device); } #else-void __init at91_add_device_eth(struct at91_eth_data *data) {}+void __init at91_add_device_eth(struct eth_platform_data *data) {} #endif  @@ -272,7 +272,7 @@ 	at91_set_A_periph(AT91_PIN_PC12, 0);	/* NCS6/CFCE2 */  	/* nWAIT is _not_ a default setting */-	at91_set_A_periph(AT91_PIN_PC6, 1);	/*  nWAIT */+	at91_set_A_periph(AT91_PIN_PC6, 1);	/* nWAIT */  	cf_data = *data; 	platform_device_register(&at91rm9200_cf_device);@@ -602,6 +602,32 @@ #endif  +#if defined(CONFIG_NEW_LEDS)++static struct platform_device at91_leds = {+	.name		= "at91_leds",+	.id		= -1,+};++void __init at91_gpio_leds(struct at91_gpio_led *leds, int nr)+{+	if (!nr)+		return;++	at91_leds.dev.platform_data = leds;++	for ( ; nr; nr--, leds++) {+		leds->index = nr;	/* first record stores number of leds */+		at91_set_gpio_output(leds->gpio, (leds->flags & 1) == 0);+	}++	platform_device_register(&at91_leds);+}+#else+void __init at91_gpio_leds(struct at91_gpio_led *leds, int nr) {}+#endif++ /* --------------------------------------------------------------------  *  UART  * -------------------------------------------------------------------- */diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/at91sam9260_devices.c linux-2.6/arch/arm/mach-at91rm9200/at91sam9260_devices.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/at91sam9260_devices.c	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/at91sam9260_devices.c	Tue Dec 12 13:01:54 2006@@ -523,6 +523,32 @@ #endif  +#if defined(CONFIG_NEW_LEDS)++static struct platform_device at91_leds = {+	.name		= "at91_leds",+	.id		= -1,+};++void __init at91_gpio_leds(struct at91_gpio_led *leds, int nr)+{+	if (!nr)+		return;++	at91_leds.dev.platform_data = leds;++	for ( ; nr; nr--, leds++) {+		leds->index = nr;	/* first record stores number of leds */+		at91_set_gpio_output(leds->gpio, (leds->flags & 1) == 0);+	}++	platform_device_register(&at91_leds);+}+#else+void __init at91_gpio_leds(struct at91_gpio_led *leds, int nr) {}+#endif++ /* --------------------------------------------------------------------  *  UART  * -------------------------------------------------------------------- */diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/at91sam9261_devices.c linux-2.6/arch/arm/mach-at91rm9200/at91sam9261_devices.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/at91sam9261_devices.c	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/at91sam9261_devices.c	Sat Nov 25 11:14:00 2006@@ -521,6 +521,32 @@ #endif  +#if defined(CONFIG_NEW_LEDS)++static struct platform_device at91_leds = {+	.name		= "at91_leds",+	.id		= -1,+};++void __init at91_gpio_leds(struct at91_gpio_led *leds, int nr)+{+	if (!nr)+		return;++	at91_leds.dev.platform_data = leds;++	for ( ; nr; nr--, leds++) {+		leds->index = nr;	/* first record stores number of leds */+		at91_set_gpio_output(leds->gpio, (leds->flags & 1) == 0);+	}++	platform_device_register(&at91_leds);+}+#else+void __init at91_gpio_leds(struct at91_gpio_led *leds, int nr) {}+#endif++ /* --------------------------------------------------------------------  *  UART  * -------------------------------------------------------------------- */diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-1arm.c linux-2.6/arch/arm/mach-at91rm9200/board-1arm.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-1arm.c	Fri Dec 15 08:33:10 2006+++ linux-2.6/arch/arm/mach-at91rm9200/board-1arm.c	Thu Nov 23 15:50:12 2006@@ -64,7 +64,7 @@ 	at91rm9200_init_interrupts(NULL); } -static struct at91_eth_data __initdata onearm_eth_data = {+static struct eth_platform_data __initdata onearm_eth_data = { 	.phy_irq_pin	= AT91_PIN_PC4, 	.is_rmii	= 1, };diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-carmeva.c linux-2.6/arch/arm/mach-at91rm9200/board-carmeva.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-carmeva.c	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/board-carmeva.c	Thu Dec 14 14:51:06 2006@@ -65,7 +65,7 @@ 	at91rm9200_init_interrupts(NULL); } -static struct at91_eth_data __initdata carmeva_eth_data = {+static struct eth_platform_data __initdata carmeva_eth_data = { 	.phy_irq_pin	= AT91_PIN_PC4, 	.is_rmii	= 1, };diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-csb337.c linux-2.6/arch/arm/mach-at91rm9200/board-csb337.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-csb337.c	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/board-csb337.c	Thu Nov 23 15:50:12 2006@@ -68,7 +68,7 @@ 	at91rm9200_init_interrupts(NULL); } -static struct at91_eth_data __initdata csb337_eth_data = {+static struct eth_platform_data __initdata csb337_eth_data = { 	.phy_irq_pin	= AT91_PIN_PC2, 	.is_rmii	= 0, };@@ -112,6 +112,23 @@ 	}, }; +static struct at91_gpio_led csb337_leds[] = {+	{+		.name		= "led0",+		.gpio		= AT91_PIN_PB0,+		.trigger	= "heartbeat",+	},+	{+		.name		= "led1",+		.gpio		= AT91_PIN_PB1,+		.trigger	= "timer",+	},+	{+		.name		= "led2",+		.gpio		= AT91_PIN_PB2,+	}+};+ static void __init csb337_board_init(void) { 	/* Serial */@@ -131,6 +148,8 @@ 	at91_add_device_spi(csb337_spi_devices, ARRAY_SIZE(csb337_spi_devices)); 	/* MMC */ 	at91_add_device_mmc(&csb337_mmc_data);+	/* LEDS */+	at91_gpio_leds(csb337_leds, ARRAY_SIZE(csb337_leds)); }  MACHINE_START(CSB337, "Cogent CSB337")diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-csb637.c linux-2.6/arch/arm/mach-at91rm9200/board-csb637.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-csb637.c	Fri Dec 15 08:33:10 2006+++ linux-2.6/arch/arm/mach-at91rm9200/board-csb637.c	Thu Nov 23 15:50:12 2006@@ -67,7 +67,7 @@ 	at91rm9200_init_interrupts(NULL); } -static struct at91_eth_data __initdata csb637_eth_data = {+static struct eth_platform_data __initdata csb637_eth_data = { 	.phy_irq_pin	= AT91_PIN_PC0, 	.is_rmii	= 0, };diff -urN -x CVS linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-dk.c linux-2.6/arch/arm/mach-at91rm9200/board-dk.c--- linux-2.6.20-rc1.orig/arch/arm/mach-at91rm9200/board-dk.c	Fri Dec 15 08:35:48 2006+++ linux-2.6/arch/arm/mach-at91rm9200/board-dk.c	Tue Dec  5 09:43:26 2006@@ -73,7 +73,186 @@ 	at91rm9200_init_interrupts(NULL); } -static struct at91_eth_data __initdata dk_eth_data = {+#if defined(CONFIG_FB_S1D13XXX) || defined(CONFIG_FB_S1D13XXX_MODULE)+#include <video/s1d13xxxfb.h>+#include <asm/arch/ics1523.h>++/* EPSON S1D13806 FB */+#define AT91_FB_REG_BASE	0x30000000L+#define AT91_FB_REG_SIZE	0x200+#define AT91_FB_VMEM_BASE	0x30200000L+#define AT91_FB_VMEM_SIZE	0x140000L++static void __init dk_init_video(void)+{+	/* NWAIT Signal */+	at91_set_A_periph(AT91_PIN_PC6, 0);++	/* Initialization of the Static Memory Controller for Chip Select 2 */+	at91_sys_write(AT91_SMC_CSR(2), AT91_SMC_DBW_16			/* 16 bit */+				| AT91_SMC_WSEN | AT91_SMC_NWS_(4)	/* wait states */+				| AT91_SMC_TDF_(1)			/* float time */+	);++	AT91F_ICS1523_clockinit();+}++/* CRT:    (active)   640x480 60Hz (PCLK=CLKI=25.175MHz)+   Memory: Embedded SDRAM (MCLK=CLKI3=50.000MHz) (BUSCLK=60.000MHz) */+static const struct s1d13xxxfb_regval dk_s1dfb_initregs[] = {+	{S1DREG_MISC,			0x00},	/* Enable Memory/Register select bit */+	{S1DREG_COM_DISP_MODE,		0x00},	/* disable display output */+	{S1DREG_GPIO_CNF0,		0x00},+	{S1DREG_GPIO_CNF1,		0x00},+	{S1DREG_GPIO_CTL0,		0x08},+	{S1DREG_GPIO_CTL1,		0x00},+	{S1DREG_CLK_CNF,		0x01},	/* no divide, MCLK source is CLKI3 0x02*/+	{S1DREG_LCD_CLK_CNF,		0x00},+	{S1DREG_CRT_CLK_CNF,		0x00},+	{S1DREG_MPLUG_CLK_CNF,		0x00},+	{S1DREG_CPU2MEM_WST_SEL,	0x01},	/* 2*period(MCLK) - 4ns > period(BCLK) */+	{S1DREG_SDRAM_REF_RATE,		0x03},	/* 32768 <= MCLK <= 50000 (MHz) */+	{S1DREG_SDRAM_TC0,		0x00},	/* MCLK source freq (MHz): */+	{S1DREG_SDRAM_TC1,		0x01},	/* 42 <= MCLK <= 50 */+	{S1DREG_MEM_CNF,		0x80},	/* SDRAM Initialization - needed before mem access */+	{S1DREG_PANEL_TYPE,		0x25},	/* std TFT 16bit, 8bit SCP format 2, single passive LCD */+	{S1DREG_MOD_RATE,		0x00},	/* toggle every FPFRAME */+	{S1DREG_LCD_DISP_HWIDTH,	0x4F},	/* 680 pix */+	{S1DREG_LCD_NDISP_HPER,		0x12},	/* 152 pix */+	{S1DREG_TFT_FPLINE_START,	0x01},	/* 13 pix */+	{S1DREG_TFT_FPLINE_PWIDTH,	0x0B},	/* 96 pix */+	{S1DREG_LCD_DISP_VHEIGHT0,	0xDF},+	{S1DREG_LCD_DISP_VHEIGHT1,	0x01},	/* 480 lines */+	{S1DREG_LCD_NDISP_VPER,		0x2C},	/* 44 lines */+	{S1DREG_TFT_FPFRAME_START,	0x0A},	/* 10 lines */+	{S1DREG_TFT_FPFRAME_PWIDTH,	0x01},	/* 2 lines */+	{S1DREG_LCD_DISP_MODE,		0x05},  /* 16 bpp */+	{S1DREG_LCD_MISC,		0x00},	/* dithering enabled, dual panel buffer enabled */+	{S1DREG_LCD_DISP_START0,	0x00},+	{S1DREG_LCD_DISP_START1,	0xC8},+	{S1DREG_LCD_DISP_START2,	0x00},+	{S1DREG_LCD_MEM_OFF0,		0x80},+	{S1DREG_LCD_MEM_OFF1,		0x02},+	{S1DREG_LCD_PIX_PAN,		0x00},+	{S1DREG_LCD_DISP_FIFO_HTC,	0x3B},+	{S1DREG_LCD_DISP_FIFO_LTC,	0x3C},+	{S1DREG_CRT_DISP_HWIDTH,	0x4F},	/* 680 pix */+	{S1DREG_CRT_NDISP_HPER,		0x13},	/* 160 pix */+	{S1DREG_CRT_HRTC_START,		0x01},	/* 13 pix */+	{S1DREG_CRT_HRTC_PWIDTH,	0x0B},	/* 96 pix */+	{S1DREG_CRT_DISP_VHEIGHT0,	0xDF},+	{S1DREG_CRT_DISP_VHEIGHT1,	0x01},	/* 480 lines */+	{S1DREG_CRT_NDISP_VPER,		0x2B},	/* 44 lines */+	{S1DREG_CRT_VRTC_START,		0x09},	/* 10 lines */+	{S1DREG_CRT_VRTC_PWIDTH,	0x01},	/* 2 lines */+	{S1DREG_TV_OUT_CTL,		0x10},+	{S1DREG_CRT_DISP_MODE,		0x05},	/* 16 bpp */+	{S1DREG_CRT_DISP_START0,	0x00},+	{S1DREG_CRT_DISP_START1,	0x00},+	{S1DREG_CRT_DISP_START2,	0x00},+	{S1DREG_CRT_MEM_OFF0,		0x80},+	{S1DREG_CRT_MEM_OFF1,		0x02},+	{S1DREG_CRT_PIX_PAN,		0x00},+	{S1DREG_CRT_DISP_FIFO_HTC,	0x3B},+	{S1DREG_CRT_DISP_FIFO_LTC,	0x3C},+	{S1DREG_LCD_CUR_CTL,		0x00},	/* inactive */+	{S1DREG_LCD_CUR_START,		0x01},+	{S1DREG_LCD_CUR_XPOS0,		0x00},+	{S1DREG_LCD_CUR_XPOS1,		0x00},+	{S1DREG_LCD_CUR_YPOS0,		0x00},+	{S1DREG_LCD_CUR_YPOS1,		0x00},+	{S1DREG_LCD_CUR_BCTL0,		0x00},+	{S1DREG_LCD_CUR_GCTL0,		0x00},+	{S1DREG_LCD_CUR_RCTL0,		0x00},+	{S1DREG_LCD_CUR_BCTL1,		0x1F},+	{S1DREG_LCD_CUR_GCTL1,		0x3F},+	{S1DREG_LCD_CUR_RCTL1,		0x1F},+	{S1DREG_LCD_CUR_FIFO_HTC,	0x00},+	{S1DREG_CRT_CUR_CTL,		0x00},	/* inactive */+	{S1DREG_CRT_CUR_START,		0x01},+	{S1DREG_CRT_CUR_XPOS0,		0x00},+	{S1DREG_CRT_CUR_XPOS1,		0x00},+	{S1DREG_CRT_CUR_YPOS0,		0x00},+	{S1DREG_CRT_CUR_YPOS1,		0x00},+	{S1DREG_CRT_CUR_BCTL0,		0x00},+	{S1DREG_CRT_CUR_GCTL0,		0x00},+	{S1DREG_CRT_CUR_RCTL0,		0x00},+	{S1DREG_CRT_CUR_BCTL1,		0x1F},+	{S1DREG_CRT_CUR_GCTL1,		0x3F},+	{S1DREG_CRT_CUR_RCTL1,		0x1F},+	{S1DREG_CRT_CUR_FIFO_HTC,	0x00},+	{S1DREG_BBLT_CTL0,		0x00},+	{S1DREG_BBLT_CTL0,		0x00},+	{S1DREG_BBLT_CC_EXP,		0x00},+	{S1DREG_BBLT_OP,		0x00},+	{S1DREG_BBLT_SRC_START0,	0x00},+	{S1DREG_BBLT_SRC_START1,	0x00},+	{S1DREG_BBLT_SRC_START2,	0x00},+	{S1DREG_BBLT_DST_START0,	0x00},+	{S1DREG_BBLT_DST_START1,	0x00},+	{S1DREG_BBLT_DST_START2,	0x00},+	{S1DREG_BBLT_MEM_OFF0,		0x00},+	{S1DREG_BBLT_MEM_OFF1,		0x00},+	{S1DREG_BBLT_WIDTH0,		0x00},+	{S1DREG_BBLT_WIDTH1,		0x00},+	{S1DREG_BBLT_HEIGHT0,		0x00},+	{S1DREG_BBLT_HEIGHT1,		0x00},+	{S1DREG_BBLT_BGC0,		0x00},+	{S1DREG_BBLT_BGC1,		0x00},+	{S1DREG_BBLT_FGC0,		0x00},+	{S1DREG_BBLT_FGC1,		0x00},+	{S1DREG_LKUP_MODE,		0x00},	/* LCD LUT r | LCD and CRT/TV LUT w */+	{S1DREG_LKUP_ADDR,		0x00},+	{S1DREG_PS_CNF,			0x00},	/* Power Save disable */+	{S1DREG_PS_STATUS,		0x02},	/* LCD Panel down, mem up */+	{S1DREG_CPU2MEM_WDOGT,		0x00},+	{S1DREG_COM_DISP_MODE,		0x02},	/* enable CRT display output */+};++static struct s1d13xxxfb_pdata dk_s1dfb_pdata = {+	.initregs		= dk_s1dfb_initregs,+	.initregssize		= ARRAY_SIZE(dk_s1dfb_initregs),+	.platform_init_video	= dk_init_video,+};++static u64 s1dfb_dmamask = 0xffffffffUL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -