Add 2.6.27.7 patches for AVR32

This commit is contained in:
Ulf Samuelsson 2008-12-20 22:19:38 +00:00
parent 80b526fd3c
commit c923379e8a
7 changed files with 26968 additions and 0 deletions

View File

@ -2,6 +2,7 @@ choice
prompt "Add AVR32 specific patches"
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_avr32
default BR2_ARCH_AVR32_2_6_27_6 if BR2_LINUX_2_6_27_6
default BR2_ARCH_AVR32_2_6_25_10 if BR2_LINUX_2_6_25
default BR2_ARCH_AVR32_2_6_24 if BR2_LINUX_2_6_24
default BR2_ARCH_AVR32_2_6_23 if BR2_LINUX_2_6_23
@ -13,6 +14,11 @@ choice
help
Select a patch to add to the Linux kernel
config BR2_ARCH_AVR32_2_6_27_6
bool "2.6.27.6"
help
Apply the avr32 linux-2.6.27.6 patches
config BR2_ARCH_AVR32_2_6_25_10
bool "2.6.25.10"
help
@ -54,6 +60,7 @@ config BR2_KERNEL_ARCH_PATCH_VERSION
string
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_avr32
default "2.6.27.6" if BR2_ARCH_AVR32_2_6_27_6
default "2.6.25.10" if BR2_ARCH_AVR32_2_6_25_10
default "2.6.24" if BR2_ARCH_AVR32_2_6_24
default "2.6.22.10" if BR2_ARCH_AVR32_2_6_22_10

View File

@ -0,0 +1,27 @@
From 474d77e07d5adfe7976b6f3ed131660867489778 Mon Sep 17 00:00:00 2001
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Date: Wed, 26 Nov 2008 11:38:35 +0100
Subject: [PATCH 1/3] avr32: remove .note.gnu.build-id section when making vmlinux.bin
This patch will remove the section .note.gnu.build-id added in binutils
2.18 from the vmlinux.bin binary. Not removing this section results in a
huge multiple gigabyte binary and likewize large uImage.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile
index 219720a..1848bf0 100644
--- a/arch/avr32/boot/images/Makefile
+++ b/arch/avr32/boot/images/Makefile
@@ -10,7 +10,7 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh
extra-y := vmlinux.bin vmlinux.gz
-OBJCOPYFLAGS_vmlinux.bin := -O binary
+OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id
$(obj)/vmlinux.bin: vmlinux FORCE
$(call if_changed,objcopy)
--
1.5.6.3

View File

@ -0,0 +1,23 @@
From f26e2224d46430ac4f6c0ddeb518f5766ba62b16 Mon Sep 17 00:00:00 2001
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Date: Wed, 26 Nov 2008 14:10:45 +0100
Subject: [PATCH 2/3] atmel_mpopfb: remove define DEBUG to disable debug output
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
diff --git a/drivers/video/atmel_mpopfb.c b/drivers/video/atmel_mpopfb.c
index 0a07f7b..3b4b668 100644
--- a/drivers/video/atmel_mpopfb.c
+++ b/drivers/video/atmel_mpopfb.c
@@ -8,8 +8,6 @@
* more details.
*/
-#define DEBUG
-
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/dma-mapping.h>
--
1.5.6.3

View File

@ -0,0 +1,59 @@
From 86fd2e3e74a191ae43122ac18f62f5163c577d4b Mon Sep 17 00:00:00 2001
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Date: Wed, 26 Nov 2008 14:11:59 +0100
Subject: [PATCH 3/3] atmel_mpopfb: add signal to disable line caching and set correct output
This patch adds a signal to disable line caching, due to an errata in
silicon revision A. It also sets the output from MPOP to BGR to match
big endian framebuffer memory.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
diff --git a/drivers/video/atmel_mpopfb.c b/drivers/video/atmel_mpopfb.c
index 3b4b668..350303b 100644
--- a/drivers/video/atmel_mpopfb.c
+++ b/drivers/video/atmel_mpopfb.c
@@ -313,6 +313,10 @@ static int atmel_mpopfb_check_var(struct fb_var_screeninfo *var,
static void atmel_mpopfb_start(struct atmel_mpopfb_info *sinfo)
{
if (!sinfo->running) {
+ unsigned int line_cache_disable =
+ sinfo->baseimg_info.line_cache_disable ?
+ ATMEL_MPOP_CR_CACHEDIS_MASK : 0;
+
dev_dbg(sinfo->info->device, " * Starting MPOP.\n");
/* Enable all error interrupts. */
@@ -323,9 +327,9 @@ static void atmel_mpopfb_start(struct atmel_mpopfb_info *sinfo)
* reading from the slave interface it will start
* generating a frame.
*/
- mpop_writel(sinfo, ATMEL_MPOP_CR,
- ATMEL_MPOP_CR_EN_MASK
- /*| ATMEL_MPOP_CR_OUT_BGR_MASK */ );
+ mpop_writel(sinfo, ATMEL_MPOP_CR, ATMEL_MPOP_CR_EN_MASK
+ | line_cache_disable
+ | ATMEL_MPOP_CR_OUT_BGR_MASK);
sinfo->running = 1;
}
diff --git a/include/linux/atmel_mpopfb.h b/include/linux/atmel_mpopfb.h
index cd12e16..d0f2505 100644
--- a/include/linux/atmel_mpopfb.h
+++ b/include/linux/atmel_mpopfb.h
@@ -42,9 +42,11 @@ struct atmel_mpopfb_baseimg_info {
unsigned xsize;
unsigned ysize;
- /* Signal that we should flip the video. */
+ /* Signal for flipping the video. */
int flip;
+ /* Signal for disabling the line cache. */
+ int line_cache_disable;
};
enum atmel_mpopfb_overlay_type {
--
1.5.6.3

View File

@ -0,0 +1,35 @@
Index: linux-2.6.27.6/arch/avr32/include/asm/byteorder.h
===================================================================
--- linux-2.6.27.6.orig/arch/avr32/include/asm/byteorder.h 2008-11-28 16:47:15.000000000 +0100
+++ linux-2.6.27.6/arch/avr32/include/asm/byteorder.h 2008-11-28 16:47:31.000000000 +0100
@@ -7,8 +7,9 @@
#include <asm/types.h>
#include <linux/compiler.h>
-#define __BIG_ENDIAN
+#define __BIG_ENDIAN 4321
#define __SWAB_64_THRU_32__
+#define __BYTEORDER_HAS_U64__
#ifdef __CHECKER__
extern unsigned long __builtin_bswap_32(unsigned long x);
@@ -33,5 +34,5 @@
#define __arch_swab32 __arch_swab32
#endif
-#include <linux/byteorder.h>
+#include <linux/byteorder/big_endian.h>
#endif /* __ASM_AVR32_BYTEORDER_H */
Index: linux-2.6.27.6/arch/avr32/mach-at32ap/include/mach/io.h
===================================================================
--- linux-2.6.27.6.orig/arch/avr32/mach-at32ap/include/mach/io.h 2008-11-28 16:47:58.000000000 +0100
+++ linux-2.6.27.6/arch/avr32/mach-at32ap/include/mach/io.h 2008-11-28 16:48:15.000000000 +0100
@@ -1,7 +1,7 @@
#ifndef __ASM_AVR32_ARCH_AT32AP_IO_H
#define __ASM_AVR32_ARCH_AT32AP_IO_H
-#include <linux/swab.h>
+#include <linux/byteorder/swabb.h>
#if defined(CONFIG_AP700X_32_BIT_SMC)
# define __swizzle_addr_b(addr) (addr ^ 3UL)

View File

@ -0,0 +1,31 @@
--- a/arch/avr32/boards/atstk1000/atstk1002.c
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -99,6 +99,7 @@ static struct mtd_partition *nand_part_i
static struct atmel_nand_data atstk1006_nand_data __initdata = {
.cle = 21,
.ale = 22,
+ .det_pin = GPIO_PIN_NONE,
.rdy_pin = GPIO_PIN_PB(30),
.enable_pin = GPIO_PIN_PB(29),
.partition_info = nand_part_info,
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -1969,13 +1969,14 @@ at32_add_device_nand(unsigned int id, st
goto fail;
hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, HMATRIX_EBI_NAND_ENABLE);
- if (data->enable_pin)
+
+ if (gpio_is_valid(data->enable_pin))
at32_select_gpio(data->enable_pin,
AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
- if (data->rdy_pin)
- at32_select_gpio(data->rdy_pin, 0);
- if (data->det_pin)
+ if (gpio_is_valid(data->det_pin))
at32_select_gpio(data->det_pin, 0);
+ if (gpio_is_valid(data->rdy_pin))
+ at32_select_gpio(data->rdy_pin, 0);
platform_device_add(pdev);
return pdev;